cd88aa7e211a665e843d78cec7d9fd9809ba78e0
[gcc.git] / gcc / ChangeLog
1 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
2
3 PR tree-opt/28937
4 * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
5 (canonicalize_induction_variables): Likewise.
6 (tree_unroll_loops_completely): Likewise.
7 (tree_ssa_prefetch_arrays): Likewise.
8 (remove_empty_loops): Likewise.
9 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
10 TODO_cleanup_cfg instead of directly calling
11 cleanup_tree_cfg_loop.
12 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
13 Likewise.
14 (tree_unroll_loops_completely): Likewise.
15 (remove_empty_loops): Likewise.
16 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
17 * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
18 of tree_ssa_unswitch_loops.
19 (tree_ssa_loop_ivcanon): Use the return value of
20 canonicalize_induction_variables.
21 (tree_ssa_empty_loop): Use the return value of
22 remove_empty_loops.
23 (tree_complete_unroll): Use the return value of
24 tree_unroll_loops_completely.
25 (tree_ssa_loop_prefetch): Use the return value of
26 tree_ssa_prefetch_arrays.
27 * passes.c (execute_todo): Before Cleanup CFG, set
28 updating_used_alone and after cleanup CFG, call
29 recalculate_used_alone.
30
31 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
32
33 PR tree-opt/28952
34 * tree-vect-transform.c (vectorizable_condition): Move the check
35 for the type after the check for simple condition.
36
37 2006-09-05 J"orn Rennecke <joern.rennecke@st.com>
38 Kaz Kojima <kkojima@gcc.gnu.org>
39
40 PR target/28764
41 * mode-switching.c (optimize_mode_switching): Make the destination
42 block of an abnormal edge have no anticipatable mode. Don't
43 insert mode switching code at the end of the source block of
44 an abnormal edge.
45
46 2006-09-05 Paolo Bonzini <bonzini@gnu.org>
47
48 PR rtl-optimization/26847
49 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
50 (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
51 (simplify_plus_minus): Count n_constants while filling ops. Replace
52 qsort with insertion sort. Before going through the array to simplify
53 pairs, sort it. Delay early exit until after the first sort, exiting
54 only if no swaps occurred. Simplify pairs in reversed order, without
55 special-casing the first iteration. Pack ops after simplifying pairs.
56
57 2006-09-05 Anatoly Sokolov <aesok@post.ru>
58
59 * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
60 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
61 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
62 (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
63
64 2006-09-05 Richard Guenther <rguenther@suse.de>
65
66 PR tree-optimization/28900
67 * tree-if-conv.c (find_phi_replacement_condition): Gimplify
68 compound conditional before creating COND_EXPR condition.
69
70 2006-09-05 Richard Guenther <rguenther@suse.de>
71
72 PR tree-optimization/28905
73 * tree-vrp.c (fix_equivalence_set): Manually implement
74 !value_ranges_intersect_p to also handle symbolic ranges.
75
76 2006-09-05 Richard Guenther <rguenther@suse.de>
77
78 PR middle-end/28935
79 * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
80 of a COND_EXPR.
81
82 2006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr>
83
84 PR rtl-optimization/27616
85 * cse.c (table_size): New static variable.
86 (new_basic_block): Initialize it to 0.
87 (remove_from_table): Decrement it.
88 (insert): Increment it.
89 (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
90 (fold_rtx_mem): Enforce a cap on the recursion depth. Call
91 fold_rtx_mem_1 if under the cap.
92 (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
93 the lookup of the equivalent expression and test for equality of the
94 first operand of the equivalent expression before in turn looking up
95 an equivalent constant for the second operand.
96
97 2006-09-02 Geoffrey Keating <geoffk@apple.com>
98
99 Revert this change:
100 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
101 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
102 pointer, instead of assuming it is possible to derive the
103 correct args size from a call insn.
104
105 2006-09-02 Jakub Jelinek <jakub@redhat.com>
106
107 PR middle-end/27567
108 * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
109 (fold_builtin_mempcpy): Rename to...
110 (fold_builtin_memory_op): ... this. Optimize one element copy
111 into an assignment.
112 (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
113 functions.
114 (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
115 (expand_builtin_memcpy, expand_builtin_mempcpy,
116 expand_builtin_memmove): Likewise. Use fold_builtin_memory_op.
117 (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
118 BUILT_IN_BCOPY. Use fold_builtin_memory_op for
119 BUILT_IN_MEM{CPY,PCPY,MOVE}.
120
121 2006-09-01 DJ Delorie <dj@redhat.com>
122
123 * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
124 (stzx_16): Likewise.
125 ("stzx_24_<mode>"): Likewise.
126 ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
127 ("cmp<mode>_op"): New.
128 (cmp<mode>): Change to expander; just save operands.
129 (b<code>_op): New.
130 (b<code>): Change to expander, emit compare here.
131 (s<code>_op): Change to use split and expander.
132 (s<code>_24_op): Likewise.
133 (s<code>_<mode>): New.
134 (s<code>_<mode>_24): New.
135 (movqicc_<code>_<mode): New.
136 (movhicc_<code>_<mode>): New.
137 (s<code>): New.
138 (s<code>_24): New.
139 * config/m32c/m32c.c (compare_op0, compare_op1): New.
140 (m32c_pend_compare): New.
141 (m32c_unpend_compare): New.
142 (m32c_expand_scc): New.
143 (m32c_expand_movcc): Emit the compare also.
144 * config/m32c/predicates.md (mra_nopp_operand): New.
145
146 2006-09-01 J"orn Rennecke <joern.rennecke@st.com>
147 Richard Guenther <rguenther@suse.de>
148 Adam Nemet <anemet@caviumnetworks.com>
149
150 PR middle-end/27226
151 * builtins.c (get_pointer_alignment): Handle more forms
152 of base addresses that can be used to derive more precise
153 information about alignment.
154
155 2006-09-01 Jason Merrill <jason@redhat.com>
156
157 PR c++/28899
158 * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
159 want_value.
160
161 * gimplify.c (voidify_wrapper_expr): Handle null type.
162
163 2006-09-01 Josh Conner <jconner@apple.com>
164
165 PR c++/25505
166 * tree-nrv.c (dest_safe_for_nrv_p): New function.
167 (execute_return_slot_opt): Use it.
168
169 2006-08-31 Josh Conner <jconner@apple.com>
170
171 PR c++/25505
172 * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
173 returning aggregates.
174
175 2006-08-31 Zdenek Dvorak <dvorakz@suse.cz>
176
177 PR tree-optimization/28839
178 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
179 blocks in that phi arguments appear.
180
181 2006-08-31 Roger Sayle <roger@eyesopen.com>
182
183 PR other/22313
184 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
185 NULL, otherwise use an advance_loc4 to adjust relative to the
186 current label.
187 (output_cfi) <DW_CFA_set_loc>: Update the current label.
188 (dwarf2out_switch_text_section): Reset the current label to avoid
189 using advance_loc4 over section boundaries.
190
191 2006-08-31 Andreas Krebbel <krebbel1@de.ibm.com>
192
193 PR target/24367
194 * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
195 r12 + SYMBOLIC_CONST.
196
197 2006-08-30 Richard Guenther <rguenther@suse.de>
198
199 * Makefile.in (see.o): Add $(EXPR_H) dependency.
200
201 2006-08-30 Zdenek Dvorak <dvorakz@suse.cz>
202
203 PR rtl-optimization/27735
204 * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
205 Add new argument to keep track of whether an irreducible region
206 was affected. All callers changed.
207 (fix_irreducible_loops): Removed.
208 (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
209 flags were invalidated.
210
211 2006-08-29 H.J. Lu <hongjiu.lu@intel.com>
212
213 * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
214 instead of SF operands.
215 (*fop_df_comm_sse): Likewise.
216 (*fop_df_comm_i387): Likewise.
217 (*fop_df_1_mixed): Likewise.
218 (*fop_df_1_sse): Likewise.
219
220 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
221 J"orn Rennecke <joern.rennecke@st.com>
222
223 PR tree-optimization/17506
224 * tree-ssa.c (warn_uninit): If warning about a location outside of
225 the current function, note where the variable was declared.
226
227 2006-08-28 Zdenek Dvorak <dvorakz@suse.cz>
228
229 PR tree-optimization/28411
230 * double-int.c (double_int_div): Use double_int_divmod.
231 (double_int_divmod, double_int_sdivmod, double_int_udivmod,
232 double_int_mod, double_int_smod, double_int_umod): New functions.
233 * double-int.h (double_int_divmod, double_int_sdivmod,
234 double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
235 Declare.
236 * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
237 in double_int.
238 (get_computation_aff, get_computation_cost_at): Handle double_int
239 return type of constant_multiple_of.
240
241 2006-08-28 Kazu Hirata <kazu@codesourcery.com>
242
243 PR middle-end/26632
244 * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
245 an implicit conversion.
246
247 2006-08-28 Prafulla Thakare <prafullat@kpitcummins.com>
248
249 * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
250
251 2006-08-27 Roger Sayle <roger@eyesopen.com>
252
253 * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
254 x87 instructions.
255
256 2006-08-27 Kazu Hirata <kazu@codesourcery.com>
257
258 * config/i386/crtfastmath.c: Fix a comment typo.
259
260 2006-08-26 Roger Sayle <roger@eyesopen.com>
261
262 * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
263 temporary visit flags on CASE_LABEL_EXPRs.
264 * c-common.c (match_case_to_enum): Add function comment. Avoid
265 O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
266 (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and
267 CASE_HIGH_SEEN for enumerated types. If the switch expression is
268 a constant, only warn if that constant value isn't handled.
269
270 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
271
272 PR c++/24009
273 * input.h (restore_input_file_stack): Declare.
274 (INPUT_FILE_STACK_BITS): Define.
275 * toplev.c (fs_p, input_file_stack_history,
276 input_file_stack_restored, restore_input_file_stack): New.
277 (push_srcloc, pop_srcloc): Check for input_file_stack_tick
278 overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack.
279 (pop_srcloc): Don't free old state of stack.
280
281 2006-08-26 David Edelsohn <edelsohn@gnu.org>
282
283 PR target/27544
284 * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
285 (PowerPC Type Attributes): New.
286
287 2006-08-26 Bob Wilson <bob.wilson@acm.org>
288
289 * config/xtensa/xtensa.c (function_arg_boundary): New.
290 (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
291 STACK_BOUNDARY.
292 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
293 function_arg_boundary function that limits alignment to STACK_BOUNDARY.
294
295 2006-08-26 Jakub Jelinek <jakub@redhat.com>
296
297 PR middle-end/28683
298 * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
299 3 following insns.
300
301 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
302
303 * flow.c (verify_wide_reg): Use internal_error for consistency failure.
304 (verify_local_live_at_start): Likewise.
305
306 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
307
308 PR c/27893
309 * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
310 omp_add_variable): Treat sizes as variable whenever not
311 INTEGER_CST.
312
313 2006-08-26 Richard Guenther <rguenther@suse.de>
314
315 PR middle-end/28814
316 * fold-const.c (fold_binary): Fold temporary to correct
317 type before constructing new comparison.
318
319 2006-08-25 Fariborz Jahanian <fjahanian@apple.com>
320
321 PR c/28418
322 * c-gimplify.c (gimplify_compound_literal_expr): Don't add
323 variable again if DECL_SEEN_IN_BIND_EXPR_P.
324
325 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
326
327 PR c/28299
328 * c-decl.c (start_function): Don't try to process prototype
329 information from old declaration that isn't a function.
330
331 2006-08-25 Jan Hubicka <jh@suse.cz>
332
333 PR target/28621
334 * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
335
336 2006-08-25 Alan Modra <amodra@bigpond.net.au>
337
338 PR target/27075
339 * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
340 for 8 byte objects.
341
342 2006-08-25 J"orn Rennecke <joern.rennecke@st.com>
343
344 PR tree-optimization/16876
345 * c-typeck.c (c_convert_parm_for_inlining): Don't take early
346 exit if PARM doesn't match VALUE.
347
348 2006-08-25 Bob Wilson <bob.wilson@acm.org>
349
350 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
351 literal_prefix directive.
352 (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
353 * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
354 * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
355
356 2006-08-25 David Edelsohn <edelsohn@gnu.org>
357
358 PR target/28753
359 * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
360 predicate to general_operand. Add 0->y and I->r alternatives.
361
362 2006-08-25 Kazu Hirata <kazu@codesourcery.com>
363
364 * doc/tm.texi: Fix a typo.
365 * predict.c: Fix comment typos.
366
367 2006-08-25 Nick Clifton <nickc@redhat.com>
368
369 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
370 assertions of "cpu" and "machine".
371
372 2006-08-24 Andrew Pinski <pinskia@physics.uc.edu>
373
374 PR tree-opt/28807
375 * tree-ssa-operands.c (access_can_touch_variable): Don't say
376 the access through a base which has an alias set of 0 cannot
377 touch the variable.
378
379 2006-08-24 Bill Wendling <wendling@apple.com>
380
381 * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
382
383 2006-08-24 Jan Hubicka <jh@suse.cz>
384
385 * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
386
387 2006-08-24 Jan Hubicka <jh@suse.cz>
388
389 PR debug/26881
390 * cgraph.c: Fix comments.
391 (cgraph_varpool_mark_needed_node): Mark only variables not already
392 output to file.
393 * cgraphunit.c: Update comments; include gt-cgraphunit.h
394 (cgraph_varpool_assembled_nodes_queue): New static variable.
395 (cgraph_varpool_assemble_decl): Record output decls for debug out code.
396 (cgraph_varpool_output_debug_info): New function.
397 (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
398 * Makefile.in: Add gt-cgraphunit.h
399
400 2006-08-24 Jan Hubicka <jh@suse.cz>
401
402 * predict.c (probability_reliable_p): New predicate.
403 (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
404 (predict_loops): Do not predict loop exit with less than 2%
405 probability.
406 * basic-block.h (edge_probability_reliable_p,
407 br_prob_note_reliable_p): Declare.
408 * ia64.h (ia64_print_operand): Do not disable on-chip branch
409 prediction when static predictor is not reliable.
410 * rs6000.c (output_cbranch): Likewise.
411
412 2006-08-23 Stuart Hastings <stuart@apple.com>
413
414 PR 28825
415 * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
416 ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
417
418 2006-08-21 Geoffrey Keating <geoffk@apple.com>
419
420 PR debug/28692
421 * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
422 complex values, nor for generic vector values.
423
424 2006-08-22 Richard Guenther <rguenther@suse.de>
425
426 PR middle-end/28776
427 * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
428 parameter. Convert arguments to arithmetic expression to the
429 chrecs type.
430 (analyze_scalar_evolution_1): Adjust caller.
431
432 2006-08-22 Jan Hubicka <jh@suse.cz>
433
434 Patch by Paolo Bonzini
435 * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
436 my previous patch.
437
438 2006-08-22 Daniel Berlin <dberlin@dberlin.org>
439
440 PR tree-optimization/28003
441 * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
442 before grouping aliases.
443
444 2006-08-22 Roger Sayle <roger@eyesopen.com>
445
446 * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
447 if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
448
449 2006-08-21 Jason Merrill <jason@redhat.com>
450
451 PR c++/27115
452 * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
453 wrapper. Loop to handle nested wrappers.
454 (gimplify_bind_expr): Remove temp parameter.
455 (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
456 and STATEMENT_LIST on the rhs.
457 (gimplify_statement_list): Voidify the STATEMENT_LIST.
458 (gimplify_expr): Pass pre_p to gimplify_statement_list.
459 (gimplify_target_expr): Remove special BIND_EXPR handling.
460
461 2006-08-21 J"orn Rennecke <joern.rennecke@st.com>
462
463 * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
464 #if !__SHMEDIA__ .
465
466 2006-08-21 Olivier Hainque <hainque@adacore.com>
467
468 * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
469 Arrange for the temporary captures of components overlapping the lhs
470 to happen before the lhs is possibly cleared.
471
472 2006-08-21 Mark Shinwell <shinwell@codesourcery.com>
473
474 * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
475 necessary places to pass the correct "number of registers" values
476 to _Unwind_VRS_Pop.
477
478 2006-08-20 Jan Hubicka <jh@suse.cz>
479
480 * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
481 (create_name_tags): Instead of quadratic checking use hashtable.
482 * bitmap.h: Include hashtab.h.
483 (bitmap_hash): Declare.
484 * bitmap.c (bitmap_hash): New function.
485
486 2006-08-20 Jan Hubicka <jh@suse.cz>
487
488 PR rtl-optimization/28071
489 * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
490 twice.
491 * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
492 * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
493 (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
494 cgraph_decide_inlining_incrementally): Update use of
495 cgraph_check_inline_limits.
496 * cgraph.c (edge_hash, edge_eq): New function.
497 (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
498 cgraph_edge_remove_caller, cgraph_node_remove_callees,
499 cgraph_remove_node): Maintain call site hash.
500 * cgraph.h (struct cgraph_node): Add call_site_hash.
501 (cgraph_set_call_stmt): New function.
502
503 2006-08-20 Jan Hubicka <jh@suse.cz>
504
505 PR rtl-optimization/28071
506 * reload1.c (reg_has_output_reload): Turn into regset.
507 (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
508 choose_reload_regs, emit_reload_insns): Update to new
509 reg_has_output_reload.
510
511 2006-08-20 Jan Hubicka <jh@suse.cz>
512
513 PR middle-end/28779
514 * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
515 function body sizes.
516 * cgraphunit.c (cgraph_analyze_function): Don't do so.
517
518 2006-08-20 Danny Smith <dannysmith@users.sourceforge.net>
519
520 PR target/28648 c:
521 * tree.c (handle_dll_attribute): Return early if not a
522 var or function decl.
523
524 2006-08-18 Joseph Myers <joseph@codesourcery.com>
525
526 PR target/27565
527 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
528 alignment of SPE vector types.
529
530 2006-08-18 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
531
532 * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
533
534 2006-08-17 Jakub Jelinek <jakub@redhat.com>
535
536 PR c/28744
537 * cgraph.h (struct cgraph_node): Remove externally_visible
538 bitfield.
539 * cgraphunit.c (process_function_and_variable_attributes): Set
540 local.externally_visible rather than externally_visible.
541
542 PR c/28744
543 * c-common.c (handle_externally_visible_attribute): First look
544 at TREE_CODE and only if it is function or var decl, check for
545 non-public objects. Don't warn for DECL_EXTERNAL.
546 * cgraphunit.c (process_function_and_variable_attributes): Warn
547 if externally_visible attribute is used on non-public object.
548
549 2006-08-17 Jan Hubicka <jh@suse.cz>
550
551 PR tree-optimization/27865
552 * reload1.c (forget_marked_reloads): New function.
553 (forget_old_reloads_1): When data are passed, just mark the registers
554 for later removal.
555 (reload_as_needed): Use the new mechanizm.
556
557 2006-08-17 Alexandre Oliva <aoliva@redhat.com>
558
559 PR target/28146
560 * reload.h (reg_equiv_alt_mem_list): New declaration.
561 * reload1.c (reg_equiv_alt_mem_list): New definition.
562 (reload): Initialize it and release it.
563 (delete_output_reload): Use it.
564 * reload.c (push_reg_equiv_alt_mem): New function.
565 (find_reloads_toplev): Call it.
566 (find_reloads_address, find_reloads_address_1): Likewise.
567 (find_reloads_subreg_address): Likewise.
568
569 2006-08-17 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
570
571 PR rtl-optimization/28489
572 * sched-ebb.c (begin_schedule_ready): Create basic block
573 at the right place.
574 (advance_target_bb): Skip empty blocks.
575 * haifa-sched.c (bb_note): Make global.
576 * sched-int.h (bb_note): Add prototype.
577
578 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
579
580 PR tree-optimization/27865
581 * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
582 for pointer types.
583 * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
584 fold_used_pointer, pointer_used_p): New functions.
585 (analyze_scalar_evolution_1): Use fold_used_pointer.
586 * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
587 * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
588 for pointers.
589
590 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
591
592 PR c++/28573
593 * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
594 or the INTEGER_CST. Fail on a CALL_EXPR.
595 (fold_offsetof): Pass new argument to fold_offsetof_1.
596 * c-parser.c (c_parser_postfix_expression): Don't include a NULL
597 operand into an INDIRECT_REF.
598 * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
599
600 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
601
602 PR gcov/profile/26570
603 * value-prof.c (static_values): Removed.
604 (tree_find_values_to_profile): Do not set static_values.
605 (find_values_to_profile): Do not free static_values.
606 * profile.c (instrument_values): Do not free the values.
607 (branch_prob): Free the values.
608
609 2006-08-16 Naveen.H.S <naveenh@kpitcummins.com>
610
611 * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
612
613 2006-08-16 Joseph S. Myers <joseph@codesourcery.com>
614
615 PR c/27697
616 * c-typeck.c (build_component_ref): Combine qualifiers of
617 structure or union and field.
618
619 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
620
621 PR rtl-optimization/28071
622 * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
623 * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
624 * tree-into-ssa.c (struct dom_dfsnum): New.
625 (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
626 functions.
627 (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
628 compute_global_livein.
629 (prepare_block_for_update, prepare_use_sites_for): Mark the uses
630 in phi nodes in the correct blocks.
631
632 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
633
634 PR tree-optimization/28364
635 * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
636 correctly.
637 (fold_affine_expr): New function.
638 (may_eliminate_iv): Use fold_affine_expr.
639
640 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
641
642 PR c/27489
643 * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
644 Clean up.
645
646 2006-08-16 Mike Stump <mrs@apple.com>
647
648 * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
649 * doc/cppopts.texi (-MD): Likewise.
650
651 2006-08-15 Danny Smith <dannysmith@users.sourceforge.net>
652
653 PR c/28287
654 * c-common.c (handle_weak_attribute): Ignore and warn if
655 not a FUNCTION_ or VAR_DECL.
656
657 2006-07-15 Mike Stump <mrs@apple.com>
658
659 PR c/28280
660 * c-parser.c (c_parser_typeof_specifier): Don't use
661 c_finish_expr_stmt, open code desired semantics instead.
662
663 2006-08-15 Nick Clifton <nickc@redhat.com>
664
665 * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
666 fragment to tmake_file only if threads are enabled.
667 * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
668 * config/i386/t-gthr-win32: New file. ... here.
669
670 2006-08-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
671
672 PR c/28649
673 * c-parser.c (c_parser_compound_statement_nostart): Reset
674 parser->error after each statement.
675
676 2006-08-15 Jakub Jelinek <jakub@redhat.com>
677
678 PR middle-end/28713
679 * omp-low.c (lower_omp_parallel): Convert t to
680 receiver_decl's type.
681 (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
682 source before comparison.
683
684 PR middle-end/28724
685 * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
686 to itype in assignment to oldival2.
687
688 2006-07-14 Andrew Pinski <pinksia@physics.uc.edu>
689
690 PR c/27490
691 PR c/27489
692 * c-typeck.c (build_compound_expr): If the second expression
693 is an error mark, then just return an error mark instead of
694 creating a COMPOUND_EXPR.
695
696 2006-07-14 Mike Stump <mrs@apple.com>
697
698 * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
699
700 2006-08-14 Kazu Hirata <kazu@codesourcery.com>
701
702 * c-decl.c, var-tracking.c: Fix comment typos.
703
704 2006-08-14 Richard Sandiford <richard@codesourcery.com>
705
706 PR rtl-optimization/28634
707 * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
708 for floating-point modes unless flag_unsafe_math_optimizations.
709
710 2006-08-13 Alexandre Oliva <aoliva@redhat.com>
711 Andrew Pinski <pinskia@physics.uc.edu>
712
713 PR c/27184
714 * tree.c (build_array_type): Unify array types with
715 unspecified index_type.
716 * c-decl.c (grokdeclarator): Make sure we do not modify a
717 unified incomplete array type.
718 * c-typeck.c (store_init_value): Create distinct type before
719 filling in the index type in an initializer from a compound
720 literal.
721
722 * c-decl.c (grokdeclarator): Remove code where we copy the
723 array type over.
724
725 2006-08-13 Andrew Pinski <pinskia@physics.uc.edu>
726
727 * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
728 into account for TODO_dump_cgraph.
729 (TODO_update_ssa_no_phi): Likewise.
730 (TODO_update_ssa_full_phi): Likewise.
731 (TODO_update_ssa_only_virtuals): Likewise.
732 (TODO_remove_unused_locals): Likewise.
733 (TODO_set_props): Likewise.
734 (TODO_update_stmt_usage): Likewise.
735
736 2006-08-13 Dirk Mueller <dmueller@suse.de>
737
738 * c-common.c (strict_aliasing_warning): Fix formatting.
739
740 2006-08-13 Matthias Klose <doko@debian.org>
741
742 * doc/invoke.texi: Fix spelling errors.
743
744 2006-08-11 Eric Botcazou <ebotcazou@libertysurf.fr>
745
746 PR rtl-optimization/23454
747 * reorg.c (relax_delay_slots): Update comment.
748
749 2006-08-11 Richard Guenther <rguenther@suse.de>
750
751 PR middle-end/28651
752 * simplify-rtx.c (simplify_const_relational_operation):
753 Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
754 codes.
755
756 2006-08-10 Eric Botcazou <ebotcazou@adacore.com>
757
758 * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
759 TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
760
761 2006-08-10 Paul Brook <paul@codesourcery.com>
762
763 * final.c (final_scan_insn): Clear current_insn_predicate before
764 outputting inline asm.
765
766 2006-08-10 Dorit Nuzman <dorit@il.ibm.com>
767
768 PR tree-optimization/26197
769 * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
770 get_ref_base_and_extent and overlap_subvar to add only relevant
771 subvars as may-aliases.
772 (add_may_alias_for_new_tag): New function, factored out of
773 new_type_alias.
774 * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
775 with additional argument.
776 * tree-flow.h (new_type_alias): Takes additional argument.
777
778 2006-08-09 Nathan Sidwell <nathan@codesourcery.com>
779
780 * gcov.c (no_data_file): New flag.
781 (read_count_file): Set it if data file not present. Assume counts
782 zero if not found.
783 (output_lines): Don't name the data file, if there wasn't one.
784
785 2006-08-09 Eric Botcazou <ebotcazou@adacore.com>
786
787 * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
788 (rs6000_generate_compare): Tweak comments.
789 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
790
791 2006-08-09 Alexandre Oliva <aoliva@redhat.com>
792
793 * var-tracking.c (enum micro_operation_type): Add MO_COPY.
794 (var_debug_decl): New function.
795 (var_reg_set): Follow debug decl link. Add location even if
796 reg is already known to hold some other variable.
797 (var_mem_set): Follow debug decl link.
798 (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
799 decl link. Delete other known locations of the variable part
800 if requested.
801 (var_reg_delete, var_mem_delete): Delete other known locations
802 of the variable part if requested.
803 (same_variable_part_p): New function.
804 (add_stores): Select MO_COPY when appropriate.
805 (vt_initialize): Handle it.
806 (compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete
807 known locations for MO_SET and MO_CLOBBER.
808 (find_variable_location_part): New function.
809 (set_variable_part, delete_variable_part): Use it.
810 (clobber_variable_part): New function.
811 * dwarf2out.c (dwarf2out_var_location): Do not follow debug
812 decl link.
813
814 2006-08-07 Victor Kaplansky <victork@il.ibm.com>
815
816 PR tree-optimization/26969
817 * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
818 with an empty list of PHIs.
819
820 2006-08-06 Paolo Bonzini <bonzini@gnu.org>
821
822 PR target/27827
823
824 * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
825 instructions.
826
827 2006-08-06 Andreas Schwab <schwab@suse.de>
828
829 * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
830 string. Whitespace and comment fixup.
831
832 2006-08-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
833
834 PR c/28502
835 * c-decl.c (validate_proto_after_old_defn): Return false on invalid
836 argument.
837
838 PR c/27721
839 * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
840
841 PR c/28136
842 * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
843
844 2006-08-04 Jan Hubicka <jh@suse.cz>
845
846 PR target/26655
847 PR target/28270
848 * reload.c (push_reload): Patch out the mismatching instruction;
849 return early.
850 (find_reload): Bail out if the instruction was patched out.
851
852 2006-08-04 Jan Hubicka <jh@suse.cz>
853
854 PR tree-optimization/24888
855 * tree-inline.c (expand_call_inline): Do not re-record variables.
856 (declare_inline_vars): Add variable to unexpanded_var_list.
857
858 2006-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
859 Roger Sayle <roger@eyesopen.com>
860
861 PR rtl-optimization/26244
862 * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
863 inner_const are negative or greater than or equal to the bitsize of
864 MODE. If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
865 Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
866 Simplify complicated if statement. For ASHIFT and LSHIFTRT, return
867 CONST0_RTX (mode) when the new shift count is greater than or equal to
868 to the bitsize of the object being shifted and XEXP (y, 0) has no side
869 effects.
870
871 2006-08-04 Kazu Hirata <kazu@codesourcery.com>
872
873 * tree-cfg.c: Fix a comment typo.
874
875 2006-08-03 Mark Mitchell <mark@codesourcery.com>
876
877 PR c++/28148
878 * varasm.c (output_constant): Give the front end another chance to
879 expand constants, after stripping NOPs.
880
881 2006-08-03 Jan Hubicka <jh@suse.cz>
882
883 * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
884 implementation.
885
886 2006-08-03 Dorit Nuzman <dorit@il.ibm.com>
887
888 PR tree-optimization/27770
889 * tree-vectorizer.h (get_vectype_for_scalar_type): Function
890 declaration removed (moved to tree-flow.h).
891 (vect_can_force_dr_alignment_p): Likewise.
892 * tree-flow.h (get_vectype_for_scalar_type): New function declaration
893 (moved from tree-vectorizer.h).
894 (vect_can_force_dr_alignment_p): Likewise.
895 * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
896 from outside the vectorizer - in particular from cgraph stage.
897 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
898 the alignment of global arrays when -fsection-anchors is enabled.
899 * cgraphunit.c (cgraph_increase_alignment): New function.
900 (cgraph_optimize): Call cgraph_increase_alignment.
901
902 2006-08-03 David Edelsohn <edelsohn@gnu.org>
903
904 PR target/27566
905 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
906 not reload a SPE symbol_ref into a lo_sum address.
907
908 2006-08-02 Daniel Jacobowitz <dan@codesourcery.com>
909
910 PR debug/28063
911 * dwarf2out.c (prune_unused_types_prune): Move call to
912 prune_unused_types_update_strings to cover the parent DIE also.
913
914 2006-08-02 Jan Hubicka <jh@suse.cz>
915
916 PR gcov/profile/28480
917 * tree-cfg.c (change_bb_for_stmt): New function.
918 (tree_merge_blocks, tree_split_blocks): Use it.
919
920 2006-08-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
921
922 PR c++/28250
923 PR c++/28257
924 PR c++/28259
925 PR c++/28267
926 * toplev.c (compile_file): Return early on errorcount or sorrycount.
927 * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
928 (cgraph_optimize): Likewise.
929
930 2006-08-01 Stuart Hastings <stuart@apple.com>
931
932 * rtl.h (UINTVAL) New.
933 * config/rs6000/rs6000.c (SMALL_INT) Use it.
934 * testsuite/gcc.dg/20060801-1.c: New.
935
936 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
937
938 PR debug/23336
939 * c-typeck.c (build_external_type): Mark used enum types.
940 * dwarf2out.c (dwarf2out_abstract_function): Save and restore
941 cfun also.
942 (gen_subprogram_die): Whitespace fix.
943
944 2006-08-01 Jan Hubicka <jh@suse.cz>
945
946 * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
947 bitmap when not needed.
948 * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
949 bitmaps.
950
951 2006-08-01 Dirk Mueller <dmueller@suse.de>
952
953 * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
954
955 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
956
957 * Makefile.in: Revert part of previous patch:
958 Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
959 and REGS_H.
960
961 2006-07-30 Eric Christopher <echristo@apple.com>
962
963 PR target/27543
964 * doc/extend.texi (i386 Variable Attributes): Add anchor.
965 (PowerPC Variable Attributes): New section.
966
967 2006-07-30 Atsushi Nemoto <anemo@mba.ocn.ne.jp>
968
969 PR target/28126 (partial fix)
970 * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
971
972 2006-07-28 Jan Hubicka <jh@suse.cz>
973
974 PR rtl-optimization/28071
975 * cfgrtl.c (rtl_delete_block): Free regsets.
976 * flow.c (allocate_bb_life_data): Re-use regsets if available.
977
978 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
979
980 * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
981 and variables used in dependencies.
982
983 2006-07-27 Arjan van de Ven <arjan@linux.intel.com>
984
985 * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
986 %fs for -mcmodel=kernel.
987 (stack_tls_protect_test_di): Likewise.
988
989 2006-07-27 Carlos O'Donell <carlos@codesourcery.com>
990
991 * Makefile.in: Use mkinstalldirs.
992
993 2006-07-27 H.J. Lu <hongjiu.lu@intel.com>
994
995 PR driver/28437
996 * opts-common.c (prune_options): Skip joined switches.
997
998 2006-07-27 Jan Hubicka <jh@suse.cz>
999
1000 PR rtl-optimization/28071
1001 * cselib.c (cselib_process_insn): Don't remove useless values too
1002 often for very large hashtables.
1003
1004 2006-07-27 Jan Hubicka <jh@suse.cz>
1005
1006 PR rtl-optimization/28071
1007 * global.c (greg_obstack): New obstack.
1008 (allocate_bb_info): Use it.
1009 (free_bb_info): Likewise.
1010 (modify_reg_pav): Likewise.
1011
1012 2006-07-27 Roger Sayle <roger@eyesopen.com>
1013
1014 * builtins.c (fold_fixed_mathfn): When long and long long are the
1015 same size, canonicalize llceil*, llfloor*, llround* and llrint*
1016 functions to their lceil*, lfloor*, lround* and lrint* forms.
1017
1018 2006-07-27 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1019
1020 PR gcc/28508
1021 * config/m32r/m32r.md (branch_insn): Reduce pc range for short
1022 branch.
1023 (rev_branch_insn): Likewise.
1024
1025 2006-07-27 Jan Hubicka <jh@suse.cz>
1026
1027 PR rtl-optimization/28071
1028 * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
1029 (reg_set_in_bb, max_reg_computed): New static variables.
1030 (regmove_optimize): Free the new array.
1031 (fixup_match_1): Update call of reg_is_remote_constant_p.
1032
1033 2006-07-26 Jan Hubicka <jh@suse.cz>
1034
1035 PR tree-optimization/27882
1036 * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
1037 and decl fields.
1038 * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
1039 next pointer
1040 (cgraph_analyze_compilation_unit): Likewise.
1041 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1042 * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
1043 (cgraph_early_inlinine): Make order garbage collected.
1044 * Makefile.in (gt-ipa-inline): New garbagecollected file.
1045
1046 2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
1047
1048 * dbxout.c (output_types_sort): Add a comment.
1049 (output_used_types): Free the VEC.
1050
1051 2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
1052
1053 * function.c (reorder_fix_fragments): Delete.
1054 (reorder_blocks): Don't call it.
1055 (reorder_blocks_1): Put all subblocks under the origin block.
1056
1057 2006-07-26 Zdenek Dvorak <dvorakz@suse.cz>
1058
1059 PR rtl-optimization/27907
1060 * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
1061 FLOAT_TRUNCATE.
1062
1063 2006-07-25 Roger Sayle <roger@eyesopen.com>
1064
1065 PR middle-end/28473
1066 * convert.c (convert_to_integer): When transforming (T)foo(x) into
1067 bar(x) check that bar's result type can represent all the values of T.
1068
1069 2006-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1070
1071 * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
1072
1073 2006-07-25 Nick Clifton <nickc@redhat.com>
1074
1075 * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
1076 size_lookup[] array.
1077 (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
1078 (ggc_pch_count_object): Likewise.
1079 (ggc_pch_alloc_object): Likewise.
1080 (ggc_pch_write_object): Likewise.
1081 (init_ggc): Do not attempt to initialize entries in the
1082 size_lookup[] array for objects whose size is greater than than
1083 the length of the array.
1084
1085 2006-07-25 Daniel Jacobowitz <dan@codesourcery.com>
1086
1087 * dbxout.c (output_used_types_helper): Push queued types
1088 on a VEC.
1089 (output_types_sort): New.
1090 (output_used_types): Collect used types on a VEC and sort them
1091 before emission.
1092
1093 2006-07-24 Richard Guenther <rguenther@suse.de>
1094
1095 PR middle-end/28463
1096 * cgraph.c (cgraph_remove_node): Do not check if dumps
1097 are enabled.
1098 * cgraphunit.c (cgraph_optimize): Likewise.
1099
1100 2006-07-24 Jan Hubicka <jh@suse.cz>
1101
1102 PR rtl-optimization/28071
1103 * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
1104 * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
1105 splitting before first stmt.
1106
1107 2006-07-24 Jan Hubicka <jh@suse.cz>
1108
1109 PR rtl-optimization/28071
1110 * ipa-inline.c (update_caller_keys): Remove edges that
1111 are no longer inline candidates.
1112
1113 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
1114
1115 PR debug/27473
1116 * dbxout.c (output_used_types_helper, output_used_types): New.
1117 (dbxout_symbol): Call output_used_types.
1118
1119 2006-07-23 Jan Hubicka <jh@suse.cz>
1120
1121 PR c/25795
1122 PR c++/27369
1123 * cgraph.c (cgraph_varpool_nodes): Export.
1124 (decide_is_variable_needed): Ignored "used" attribute in
1125 unit-at-a-time mode.
1126 * cgraph.h (cgraph_varpool_nodes): Declare.
1127 * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
1128 unit-at-a-time mode.
1129
1130 2006-07-23 Roger Sayle <roger@eyesopen.com>
1131
1132 PR target/28247
1133 * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
1134 mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of
1135 the __gthrw form of thr_keycreate.
1136 (__gthread_key_delete): Silence the unused argument warning.
1137
1138 2006-07-23 Steven Bosscher <steven@gcc.gnu.org>
1139
1140 PR debug/25468
1141 * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
1142 Cache the last found '\0' marker to avoid quadratic behavior.
1143
1144 2006-07-23 Jan Hubicka <jh@suse.cz>
1145
1146 * i386.md (subsi_3_zext): Fix output template.
1147
1148 2006-07-21 Mike Stump <mrs@apple.com>
1149
1150 * doc/invoke.texi (C++ Dialect Options): Note that
1151 -fvisibility-inlines-hidden doesn't affect explicitly
1152 instantiationed inline methods.
1153
1154 2006-07-20 Roger Sayle <roger@eyesopen.com>
1155
1156 * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
1157 if the target assembler is GNU binutils' gas.
1158 * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
1159 whether to pass GNU gas or native as command line options.
1160
1161 2006-07-20 Jason Merrill <jason@redhat.com>
1162
1163 * tree.c (remove_attribute): New fn.
1164 * tree.h: Declare it.
1165
1166 2006-07-20 Paul Brook <paul@codesourcery.com>
1167
1168 PR 27363
1169 * cse.c (cse_insn): Add destination addresses to hash table. Check if
1170 they are invalidated by this instruction.
1171
1172 2006-07-21 Danny Smith <dannysmith@users.sourceforge.net>
1173
1174 PR target/28427
1175 * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
1176
1177 2006-07-20 Eric Christopher <echristo@apple.com>
1178
1179 PR target/26877
1180 * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
1181
1182 2006-07-19 Eric Christopher <echristo@apple.com>
1183
1184 * config/t-slibgcc-darwin (stmp-lipo): Remove.
1185 Rewrite dependencies for libgcc_s.1.dylib.
1186
1187 2006-07-19 Jakub Jelinek <jakub@redhat.com>
1188
1189 * except.c (duplicate_eh_regions_1): Clear next_peer.
1190
1191 2006-07-17 Nathan Sidwell <nathan@codesourcery.com>
1192
1193 * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
1194 -mlongcall does not guarantee all calls will be long.
1195 * doc/extend.texi (long_call/short_call): Document that longcall
1196 does not guarantee a long call will be used.
1197 (longcall/shortcall): Likewise.
1198
1199 2006-07-18 Roger Sayle <roger@eyesopen.com>
1200
1201 PR middle-end/28283
1202 * expmed.c (expand_shift): Additionally check that the shift_cost
1203 is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
1204 before implementing a LSHIFT_EXPR as a sequence of additions.
1205 * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
1206 middle-end that DImode shifts need to be synthesized by expand.
1207
1208 2006-07-18 Diego Novillo <dnovillo@redhat.com>
1209
1210 PR 28410
1211 * tree-ssa-operands.c (access_can_touch_variable): Update
1212 comment.
1213 Return true if ALIAS is .GLOBAL_VAR.
1214
1215 2006-07-18 David Daney <ddaney@avtrex.com>
1216
1217 * gcc.c (display_help): Fix typo in help text.
1218
1219 2006-07-18 Olivier Hainque <hainque@adacore.com>
1220
1221 * tree.h (categorize_ctor_elements): Adjust prototype and add
1222 descriptive comment, both in accordance with the interface change
1223 described below.
1224 * varasm.c (constructor_static_from_elts_p): New function.
1225 Whether a constructor node is a valid static constant initializer
1226 if all its elements are.
1227 (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
1228 * output.h: Declare it.
1229 * expr.c (categorize_ctor_elements_1): Return whether the constructor
1230 is a valid constant initializer instead of computing the number of
1231 non-constant elements. Use constructor_static_from_elts_p for this
1232 purpose. Replace the head comment with an indication that this is a
1233 helper for categorize_ctor_elements.
1234 (categorize_ctor_elements): Same interface change as for the _1
1235 helper. Former head comment from this helper moved here, adjusted to
1236 account for the interface changes.
1237 (mostly_zeros_p): Adjust call to categorize_ctor_elements.
1238 (all_zeros_p): Likewise.
1239 * gimplify.c (gimplify_init_constructor): Decide whether we can make
1240 static versions of the constructor from the categorize_ctor_elements
1241 return value instead of the formerly computed number of non-constant
1242 elements.
1243
1244 2006-07-18 Paolo Bonzini <bonzini@gnu.org>
1245
1246 * configure: Regenerate.
1247 * Makefile.in (build_libsubdir): New configure substitution
1248 (build_libobjdir): New variable.
1249 (BUILD_LIBIBERTY): Use it.
1250
1251 2006-07-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1252
1253 PR c/28286
1254 * c-pragma.c (handle_pragma_pack): Handle invalid constants.
1255
1256 2006-07-18 Alexandre Oliva <aoliva@redhat.com>
1257
1258 PR c/26993
1259 * c-common.c (handle_weakref_attribute): Ignore attribute in
1260 the same conditions the alias attribute is ignored.
1261
1262 2006-07-17 Carlos O'Donell <carlos@codesourcery.com>
1263
1264 * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
1265 (dbxout_begin_prologue): Increment scope_labelno.
1266
1267 2006-07-17 Richard Henderson <rth@redhat.com>
1268
1269 PR 27889
1270 * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
1271 if needed.
1272
1273 2006-07-17 Roger Sayle <roger@eyesopen.com>
1274 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1275
1276 * config/i386/gmon-sol2.c: Silence compilation warnings by partially
1277 synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0
1278 blocks. #include "tconfig.h" and "tsystem.h" to prototype system
1279 functions such as sbrk, write, etc.. Add function prototypes.
1280 Convert function declarations from K&R to ISO C. Cast pointers
1281 to "long" and "unsigned long" instead of "int" and "unsigned int".
1282 Convert tokens following #endif into comments.
1283
1284 2006-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
1285
1286 * invoke.texi: Remove mention of f77; Reformat table for
1287 inline parameter options correctly; mention that -malign-double
1288 is default on x86-64 targets.
1289
1290 2006-07-17 Zdenek Dvorak <dvorakz@suse.cz>
1291
1292 * tree-chrec.c (avoid_arithmetics_in_type_p): New.
1293 (convert_affine_scev, chrec_convert_aggressive): Use
1294 avoid_arithmetics_in_type_p. Do not check for the subtypes
1295 separately.
1296
1297 2006-07-17 Richard Sandiford <richard@codesourcery.com>
1298
1299 PR middle-end/28403
1300 * optabs.c (expand_doubleword_shift): Wrap the call to
1301 do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
1302
1303 2006-07-17 Richard Sandiford <richard@codesourcery.com>
1304
1305 PR middle-end/28402
1306 * optabs.c (expand_binop): Pass next_methods rather than methods
1307 to expand_doubleword_shift.
1308
1309 2006-07-17 J"orn Rennecke <joern.rennecke@st.com>
1310
1311 PR other/28251
1312 * tree.h (dump_addr): Declare.
1313 * print-tree.c (dump_addr): New function.
1314 (print_node_brief, print_node): Use it.
1315 * print-rtl.c (print_rtx): Likewise.
1316 * common.opt (-fdump-noaddr): New option.
1317 * doc/invoke.texi (-fdump-noaddr): Document.
1318 * loop-unroll.c (si_info_hash): Make hash independent of addresses.
1319 (ve_info_hash): Likewise.
1320
1321 2006-07-13 Andrew Haley <aph@redhat.com>
1322
1323 PR tree-optimization/19505
1324 * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
1325 edge leaving this block, make sure that the destination of this
1326 block has only one predecessor.
1327
1328 2006-07-17 Richard Guenther <rguenther@suse.de>
1329
1330 PR tree-optimization/28238
1331 * tree-inline.c (copy_bb): Check if we produced valid
1332 gimple copying and substituting a stmt. If not, gimplify
1333 it.
1334
1335 2006-07-16 Eric Botcazou <ebotcazou@adacore.com>
1336
1337 * optabs.c (maybe_encapsulate_block): New function extracted from...
1338 (emit_libcall_block): ...here. Invoke it on the block of insns to
1339 maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
1340 (emit_no_conflict_block): Likewise.
1341
1342 2006-07-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1343
1344 * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
1345
1346 2006-07-15 Roger Sayle <roger@eyesopen.com>
1347
1348 * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
1349 a new NOP_EXPR case of the switch statement.
1350
1351 2006-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
1352
1353 PR middle-end/28160
1354 * stor-layout.c (place_field): Take the bit field with
1355 an excessive size into account in the ms-bitfiled case.
1356
1357 PR middle-end/28161
1358 * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
1359 the previous bit field.
1360
1361 2006-07-14 Eliot Dresselhaus <eliot@sonic.net>
1362
1363 PR target/27287
1364 * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
1365
1366 2006-07-14 Ulrich Weigand <uweigand@de.ibm.com>
1367
1368 * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
1369 signal frames correctly even when the signal was installed with
1370 sa_restorer set.
1371
1372 2006-07-14 Carlos O'Donell <carlos@codesourcery.com>
1373
1374 * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
1375 (dbxout_function_end): Use local label LFBB. Remove hook
1376 DBX_OUTPUT_NFUN.
1377 (dbxout_source_line): Use local label LFBB.
1378 (dbxout_block): Likewise.
1379 (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
1380 (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
1381 * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
1382 and DBX_OUTPUT_NFUN.
1383
1384 2006-07-13 Janis Johnson <janis187@us.ibm.com>
1385
1386 * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
1387
1388 2006-07-13 Jan Hubicka <jh@suse.cz>
1389
1390 * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
1391 align_variable.
1392 * output.h (align_variable): Declare.
1393 * varasm.c (align_variable): Export.
1394 * value-prof.c (tree_value_profile_transformations): Recompute iterator
1395 when basic block changed.
1396
1397 2006-07-13 Nick Clifton <nickc@redhat.com>
1398
1399 * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
1400 walking the LOG_LINKS chain.
1401
1402 2006-07-12 Geoffrey Keating <geoffk@apple.com>
1403
1404 * doc/invoke.texi (C++ Dialect Options): Explain difference
1405 between -fvisibility-inlines-hidden and setting hidden
1406 visibility explicitly.
1407
1408 2006-07-12 Eric Christopher <echristo@apple.com>
1409
1410 * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
1411 (stmp-lipo): Depend on libgcc.a.
1412
1413 2006-07-12 Kazu Hirata <kazu@codesourcery.com>
1414
1415 * tree.c: Fix a comment typo.
1416
1417 2006-07-12 Naveen.H.S <naveenh@kpitcummins.com>
1418
1419 * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
1420 dest.
1421 (umulhisi3_r): Likewise.
1422
1423 2006-07-12 Paolo Carlini <pcarlini@suse.de>
1424
1425 PR libstdc++/27878
1426 * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
1427 x < 19, vs wchar_t support.
1428
1429 2006-07-12 Nick Clifton <nickc@redhat.com>
1430
1431 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
1432 instead of -isa=sh4.
1433
1434 2006-07-12 Mike Stump <mrs@apple.com>
1435
1436 * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
1437
1438 2006-07-10 Eric Christopher <echristo@apple.com>
1439
1440 * config/t-slibgcc-darwin: Rewrite.
1441
1442 2006-07-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1443
1444 PR bootstrap/20437
1445 * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
1446 dependencies.
1447
1448 2006-07-08 Matthias Klose <doko@debian.org>
1449
1450 * doc/sourcebuild.texi: Fix typo.
1451
1452 2006-07-07 Mike Stump <mrs@apple.com>
1453
1454 * toplev.c (process_options): Don't give -ffunction-sections may
1455 affect debugging warning for Mach-O.
1456
1457 2006-07-07 James E Wilson <wilson@specifix.com>
1458
1459 * config/mips/mips.md (cpu): Add sb1a.
1460 * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
1461 addition to sb1. Adjust comments to clarify SB-1A differences from
1462 SB-1.
1463 (ir_sb1a_load): New. Modify bypasses to use it.
1464 (ir_sb1a_simple_alu): Likewise.
1465 * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
1466 (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
1467 (mips_issue_rate): Add PROCESSOR_SB1A.
1468 (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
1469 * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
1470 (TARGET_SB1): Add PROCESSOR_SB1A check.
1471 (TUNE_SB1): Likewise.
1472
1473 * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
1474 * config/mips/mips.c (mips_store_data_bypass_p): New.
1475 * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
1476 store_data_bypass_p.
1477
1478 2006-07-08 Paul Brook <paul@codesourcery.com>
1479
1480 PR target/27991
1481 * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
1482
1483 2006-07-07 Richard Guenther <rguenther@suse.de>
1484
1485 PR middle-end/28268
1486 * tree.h (build_one_cst): Declare.
1487 * tree.c (build_one_cst): New function.
1488 * tree-ssa-math-opts.c (get_constant_one): Remove.
1489 (insert_reciprocals): Use build_one_cst.
1490 * fold-const.c (fold_plusminus_mult): Likewise.
1491
1492 2006-07-07 Roger Sayle <roger@eyesopen.com>
1493
1494 * pointer-set.c (pointer_set_destroy): Correct whitespace.
1495 * cfgloopanal.c (dump_graph): Likewise.
1496 * dojump.c (discard_pending_stack_adjust): Likewise.
1497 * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
1498 Likewise.
1499 * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
1500 * function.c (finalize_block_changes): Likewise.
1501 * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
1502 * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
1503 * rtl.c (dump_rtx_statistics): Likewise.
1504 * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
1505 Likewise.
1506 * varray.c (dump_varray_statistics): Likewise.
1507 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1508 decode_decimal64, encode_decimal128, decode_decimal128,
1509 decimal_real_to_decimal): Likewise.
1510
1511 2006-07-07 Richard Guenther <rguenther@suse.de>
1512
1513 PR tree-optimization/28187
1514 * tree-vrp.c (vrp_operand_equal_p): New function.
1515 (vrp_bitmap_equal_p): Likewise.
1516 (update_value_range): Use them to compare old and new
1517 max and min values.
1518
1519 2006-07-06 Roger Sayle <roger@eyesopen.com>
1520
1521 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
1522 a default case to switch statement to silence compiler warnings.
1523
1524 2006-07-06 Roger Sayle <roger@eyesopen.com>
1525
1526 PR target/27968
1527 * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
1528 the configured assembler supports the x87's ffreep mnemonic.
1529 * configure: Regenerate.
1530 * config.in: Regenerate.
1531
1532 * config/i386/i386.c (output_387_ffreep): New function.
1533 (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
1534 (output_387_reg_move): Likewise.
1535
1536 2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
1537
1538 Port to hosts whose 'sort' and 'tail' implementations
1539 treat operands with leading '+' as file names, as POSIX
1540 has required since 2001. However, make sure the code still
1541 works on pre-POSIX hosts.
1542 * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
1543 which says you should use "tail -c +N" rather than "tail +Nc".
1544 Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
1545
1546 2006-07-06 Zdenek Dvorak <dvorakz@suse.cz>
1547
1548 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
1549 argument name.
1550
1551 2006-07-06 David Edelsohn <edelsohn@gnu.org>
1552
1553 PR target/28150
1554 * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
1555 PRE_{INC,DEC} of TFmode.
1556
1557 2006-07-06 David Edelsohn <edelsohn@gnu.org>
1558 Alan Modra <amodra@bigpond.net.au>
1559
1560 PR target/28170
1561 * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
1562 bounds. Simplify.
1563
1564 2006-07-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1565
1566 PR target/28285
1567 * config/alpha/predicates.md (alpha_swapped_comparison_operator):
1568 Remove duplicate gtu.
1569
1570 2006-07-05 Jason Merrill <jason@redhat.com>
1571
1572 PR c++/13983
1573 PR c++/17519
1574 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
1575 * c-common.c (handle_packed_attribute): So don't copy it here.
1576 * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
1577
1578 2006-07-05 Mike Stump <mrs@apple.com>
1579
1580 * doc/invoke.texi (Invoking G++): Clarify prose for g++.
1581
1582 2006-07-05 H.J. Lu <hongjiu.lu@intel.com>
1583
1584 PR target/26146
1585 * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
1586
1587 2006-07-05 Richard Guenther <rguenther@suse.de>
1588
1589 PR target/28158
1590 * config/i386/i386.md (*negdf2_1): Restrict pattern to
1591 TARGET_SSE2 targets if using SSE math.
1592 (*absdf2_1): Likewise.
1593
1594 2006-07-05 Richard Guenther <rguenther@suse.de>
1595
1596 PR tree-optimization/28162
1597 * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
1598 make sure to convert the operands to the correct type.
1599
1600 2006-07-04 Paolo Bonzini <bonzini@gnu.org>
1601
1602 PR tree-optimization/28218
1603
1604 * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
1605 to calculate and free the dominator information.
1606
1607 2006-07-04 Peter O'Gorman <peter@pogma.com>
1608
1609 * mklibgcc.in: chmod 644 before ranlib during install.
1610
1611 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
1612 J"orn Rennecke <joern.rennecke@st.com>
1613
1614 * configure.ac (.eh_frame data check): Use diff -b.
1615
1616 2006-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
1617
1618 PR bootstrap/18058
1619 * Makefile.in (BUILD_RTL): Add build/vec.o.
1620 (build/gencondmd.o): Filter out -fkeep-inline-functions.
1621 (build/genextract): Delete.
1622 (build/genautomata): Likewise.
1623
1624 2006-07-04 Alan Modra <amodra@bigpond.net.au>
1625
1626 PR target/28207
1627 * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
1628 128-bit IBM long doubles for ABI_V4.
1629
1630 2006-07-03 Eric Botcazou <ebotcazou@adacore.com>
1631
1632 * tree.c (range_in_array_bounds_p): New predicate.
1633 * tree.h (range_in_array_bounds_p): Declare it.
1634 * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
1635 return a less conservative answer.
1636 * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
1637 and flag 'is_group'.
1638 (IS_ELEMENT_FOR_GROUP): New macro.
1639 (FOR_EACH_ACTUAL_CHILD): Likewise.
1640 (next_child_for_group): New helper function.
1641 (can_completely_scalarize_p): Take into account groups.
1642 (sra_hash_tree): Handle RANGE_EXPR.
1643 (sra_elt_eq): Likewise.
1644 (lookup_element): Be prepared for handling groups.
1645 (is_valid_const_index): Delete.
1646 (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
1647 instead of is_valid_const_index.
1648 <ARRAY_RANGE_REF>: New case.
1649 (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
1650 is_valid_const_index.
1651 <ARRAY_RANGE_REF>: Do not unconditionally punt.
1652 (scan_dump): Dump info for groups too.
1653 (decide_instantiation_1): Likewise.
1654 (decide_block_copy): Assert that the element is not a group.
1655 Propagate decision to groups.
1656 (generate_one_element_ref): Handle RANGE_EXPR.
1657 (mark_no_warning): Iterate over actual childs.
1658 (generate_copy_inout): Likewise.
1659 (generate_element_copy): Likewise.
1660 (generate_element_zero): Likewise.
1661 (generate_element_init_1): Likewise.
1662 (dump_sra_elt_name): Handle RANGE_EXPR.
1663
1664 2006-07-03 Roger Sayle <roger@eyesopen.com>
1665
1666 PR tree-optimization/26251
1667 * tree-ssa-threadupdate.c (redirection_block_p): New function.
1668 (thread_block): When optimizing for size refuse to thread jumps
1669 that would require duplication of blocks other than redirection
1670 blocks.
1671
1672 2006-07-03 Paolo Bonzini <bonzini@gnu.org>
1673
1674 * configure.ac: Fix thinko in previous check-in.
1675 * configure: Regenerate.
1676
1677 2006-07-03 Paolo Bonzini <bonzini@gnu.org>
1678
1679 PR other/27063
1680 * configure.ac (for lang...): Simplify nesting of conditionals.
1681 Test subdir_requires for non-enabled languages. Move processing
1682 of lang_opt_files and lang_tree_fiels below that test.
1683 * configure: Regenerate.
1684 * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
1685
1686 2006-07-01 Martin Michlmayr <tbm@cyrius.com>
1687
1688 * doc/gcov.texi (Invoking Gcov): Add a missing word.
1689
1690 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
1691
1692 * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
1693 comment typos.
1694
1695 2006-06-29 Jason Merrill <jason@redhat.com>
1696
1697 PR c++/26905
1698 PR c++/26612
1699 PR c++/27000
1700 PR c++/26984
1701 PR c++/19134
1702 * tree.c (build_decl_stat): Don't hande #pragma visibility here.
1703 * c-common.c (c_determine_visibility): Handle it here.
1704 * c-decl.c (finish_decl): Call c_determine_visibility for
1705 functions, too.
1706 * flags.h (enum symbol_visibility): Sort from most to least visibility.
1707 * tree.h: Likewise.
1708 * varasm.c (default_assemble_visibility): Likewise.
1709 * c-common.c (handle_visibility_attribute): Complain about trying
1710 to give visibility to an already defined class, or trying to change
1711 declared visibility. Always attach the attribute.
1712
1713 PR c++/26905
1714 PR c++/21675
1715 PR c++/17470
1716 * attribs.c (decl_attributes): Ignore type-in-place attributes
1717 once the type has been defined.
1718
1719 2006-06-29 Roger Sayle <roger@eyesopen.com>
1720
1721 PR middle-end/27428
1722 * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
1723 to indicate the cpplib has issued an error message for us.
1724
1725 2006-06-29 Asher Langton <langton2@llnl.gov>
1726
1727 PR target/25765
1728 * config/i386/i386.c (ix86_output_function_epilogue): Don't
1729 insert a label at the end of an function under Mach-O.
1730
1731 2006-06-29 Eric Christopher <echristo@apple.com>
1732 Evan Cheng <evan.cheng@apple.com>
1733
1734 * predicates.md (vector_all_ones_operand): New.
1735 (nonimmediate_or_sse_const_operand): Ditto.
1736 * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
1737 * config/i386/i386.c (standard_sse_constant_opcode): Define.
1738 (standard_sse_mode_p): Ditto.
1739 (standard_sse_constant_p): Add case for -1 vector.
1740 (ix86_expand_vector_move): Try to use.
1741 * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
1742 Call standard_sse_constant_opcode.
1743 (*movv4sf_internal): Ditto.
1744 (*movv2df_internal): Ditto.
1745
1746 2006-06-29 Roger Sayle <roger@eyesopen.com>
1747
1748 * genpreds.c (write_match_code_switch): Correctly use XSTR instead
1749 of XEXP to extract the operands of a MATCH_CODE rtx.
1750
1751 2006-06-28 Andrew Pinski <pinskia@gmail.com>
1752
1753 * tree.c (tree_size): Do not waste tail padding in
1754 struct tree_string and make the size be the same as
1755 build_string will generate.
1756
1757 2006-06-28 Jason Merrill <jason@redhat.com>
1758
1759 PR c++/27768
1760 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
1761 may_aliases already in the tag's annotations to the bitmap.
1762
1763 2006-06-28 Roger Sayle <roger@eyesopen.com>
1764
1765 * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
1766
1767 2006-06-28 Roger Sayle <roger@eyesopen.com>
1768
1769 * genpreds.c (generate_switch_p): New function.
1770 (add_mode_tests): Push the new mode test down inside an AND expr
1771 if this allows the switch-suitable MATCH_CODE to be near the root.
1772 (write_match_code_switch): New function to write a MATCH_CODE as
1773 a switch statement.
1774 (write_predicate_stmts): New function to write a predicate RTX
1775 expression as a sequence of statements.
1776 (write_one_predicate_function): Use write_predicate_stmts.
1777 (write_tm_constrs_h): Likewise.
1778
1779 2006-06-26 Fred Fish <fnf@specifix.com>
1780
1781 * config/mips/t-sb1: New file.
1782 * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
1783 tmake_file list.
1784
1785 2006-06-26 DJ Delorie <dj@redhat.com>
1786
1787 * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
1788
1789 2006-06-26 Naveen H.S <naveenh@kpitcummins.com>
1790 Jayant Sonar <jayants@kpitcummins.com>
1791 Jaydeep Vipradas <jaydeepv@kpitcummins.com>
1792
1793 * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
1794 (subsi3, subsi3_1, subsi3_2): New.
1795 * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
1796 * config/m32c/mov.md (SI mov peephole): New.
1797 * config/m32c/m32.c (m32c_immd_dbl_mov): New.
1798 * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
1799
1800 2006-06-26 Olivier Hainque <hainque@adacore.com>
1801
1802 * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
1803 a CALL_EXPR target function declaration.
1804
1805 2006-06-26 Richard Guenther <rguenther@suse.de>
1806
1807 * tree.c (build_string): Do not waste tail padding in
1808 struct tree_string.
1809
1810 2006-06-26 Richard Guenther <rguenther@suse.de>
1811
1812 * ggc-page.c (init_ggc): Add missing element to size_lookup
1813 table.
1814
1815 Revert
1816 2006-06-23 Richard Guenther <rguenther@suse.de>
1817
1818 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
1819 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
1820 alignment requests instead. Add verification code.
1821 Add struct tree_function_decl and struct tree_binfo size to
1822 extra_order_size_table. Add missing element to size_lookup
1823 table.
1824
1825 2006-06-25 Eric Botcazou <ebotcazou@adacore.com>
1826
1827 PR middle-end/28151
1828 * fold-const.c (const_binop): Be prepared for self returning zero.
1829 Simplify code handling complex values.
1830
1831 2006-06-24 Olivier Hainque <hainque@adacore.com>
1832
1833 * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
1834 (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
1835 aggregate types.
1836
1837 2006-06-24 Olivier Hainque <hainque@adacore.com>
1838
1839 * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
1840 ARRAY_REF, so have the callback called for the low bound expression.
1841
1842 2006-06-23 Janis Johnson <janis187@us.ibm.com>
1843
1844 * tree.h (DECIMAL_FLOAT_TYPE_P): New.
1845 * c-typeck.c (c_common_type): Disallow operations on decimal float
1846 types and other float types.
1847 * convert.c (convert_to_real): Don't ignore conversions involving
1848 decimal float types.
1849
1850 2006-06-23 Olivier Hainque <hainque@adacore.com>
1851
1852 * tree.c (max_int_size_in_bytes): New function, inspired from
1853 code in function.c:assign_temp.
1854 * tree.h (max_int_size_in_bytes): Declare.
1855 * function.c (assign_temp): Use it.
1856 * gimplify.c (create_tmp_var): Relax the assertions on the type
1857 properties, not mandating constant size any more.
1858 (force_constant_size): New static function.
1859 (gimple_add_tmp_var): Use it, forcing variable size to a
1860 constant upper bound if it is not constant on entry.
1861
1862 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
1863
1864 PR target/27789
1865 * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
1866 for initialization and setting of one_only flag to ...
1867 (i386_pe_encode_section_info): ...here.
1868 (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
1869 Recheck that the symbol has not been defined.
1870
1871 2006-06-23 Richard Guenther <rguenther@suse.de>
1872
1873 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
1874 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
1875 alignment requests instead. Add verification code.
1876 Add struct tree_function_decl and struct tree_binfo size to
1877 extra_order_size_table. Add missing element to size_lookup
1878 table.
1879
1880 2006-06-22 Roger Sayle <roger@eyesopen.com>
1881 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1882
1883 PR middle-end/28131
1884 * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
1885 call to lang_hooks.types.type_for_mode returned NULL_TREE.
1886
1887 2006-06-23 Ben Elliston <bje@au.ibm.com>
1888
1889 * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
1890 negate dn -- manipulate it directly.
1891
1892 2006-06-22 Roger Sayle <roger@eyesopen.com>
1893 Steven Bosscher <stevenb.gcc@gmail.com>
1894
1895 PR target/27531
1896 * reload1.c (gen_reload): Call mark_jump_label on the new insns
1897 generated by gen_move_insn to add REG_LABEL notes if necessary.
1898
1899 2006-06-22 Bob Wilson <bob.wilson@acm.org>
1900
1901 * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
1902 (leaf_entry): Remove use of MIN_ESA.
1903
1904 2006-06-22 Zdenek Dvorak <dvorakz@suse.cz>
1905
1906 PR rtl-optimization/28121
1907 * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
1908 the entry edge.
1909
1910 2006-06-21 DJ Delorie <dj@redhat.com>
1911
1912 * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
1913 (TN-16C-A156A/E).
1914 (mulhisi3_r): Likewise.
1915
1916 2006-06-21 Richard Sandiford <richard@codesourcery.com>
1917
1918 PR middle-end/28034
1919 * coverage.c (coverage_counter_alloc): Leave the index type
1920 unspecified.
1921 (coverage_counter_alloc): Use null arguments for operands 2 and 3
1922 of the ARRAY_REF.
1923
1924 2006-06-21 Andrew Pinski <pinskia@physics.uc.edu>
1925
1926 * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
1927 section from the "Options for Code Generation Conventions".
1928
1929 2006-06-21 Richard Henderson <rth@redhat.com>
1930
1931 PR target/26347
1932 PR target/27082
1933 * config/alpha/predicates.md (small_symbolic_operand): Deny weak
1934 symbols.
1935 (global_symbolic_operand): Allow weak symbols, even if local_p.
1936
1937 2006-06-21 Eric Botcazou <ebotcazou@adacore.com>
1938
1939 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
1940 (find_interesting_uses_address): Punt if above function returns true.
1941
1942 2006-06-21 Richard Guenther <rguenther@suse.de>
1943
1944 * configure: Regenerated.
1945
1946 2006-06-21 Joseph Myers <joseph@codesourcery.com>
1947
1948 * config/mips/mips.c (function_arg): Where one part of a
1949 complex argument is in registers and the other part in the stack,
1950 return a REG not a PARALLEL.
1951
1952 2006-06-21 Mark Mitchell <mark@codesourcery.com>
1953
1954 * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
1955 when cross-compiling. Do not substitute libstdcxx_incdir.
1956 * configure: Regenerated.
1957
1958 2006-06-21 Jakub Jelinek <jakub@redhat.com>
1959
1960 * varasm.c (mergeable_string_section): Check for embedded NULs and
1961 NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
1962 rather than TREE_STRING_LENGTH bytes.
1963
1964 2006-06-21 Richard Guenther <rguenther@suse.de>
1965
1966 * ggc-page.c (extra_order_size_table): Add var_ann_d,
1967 tree_ssa_name, bitmap_element and phi_node with 4 arguments
1968 sizes.
1969
1970 2006-06-21 Richrad Guenther <rguenther@suse.de>
1971
1972 * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
1973 Limit iteration over the dominators.
1974
1975 2006-06-20 Roger Sayle <roger@eyesopen.com>
1976
1977 * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
1978 (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
1979
1980 2006-06-20 Richard Guenther <rguenther@suse.de>
1981 Michael Matz <matz@suse.de>
1982
1983 * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
1984 function.
1985 * alloc-pool.c (free_alloc_pool_if_empty): New function.
1986 * et-forest.h (et_free_pools): Prototype new function.
1987 * et-forest.c (et_free_tree_force): Free parent occurrence.
1988 (et_free_pools): New function.
1989 * dominance.c (free_dominance_info): Free et-forest alloc
1990 pools.
1991
1992 2006-06-20 Roger Sayle <roger@eyesopen.com>
1993
1994 * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
1995 integer modes, attempt to directly construct an integer constant.
1996
1997 * fold-const.c (native_encode_vector): Determine the size of each
1998 element from the vector type instead of the first vector element.
1999
2000 * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
2001 if all of its elements/components are constant.
2002 (build_constructor_from_list): Likewise.
2003
2004 2006-06-20 Zdenek Dvorak <dvorakz@suse.cz>
2005
2006 PR tree-optimization/27331
2007 * tree-data-ref.c (free_data_ref): New function.
2008 (create_data_ref): Fail if the data reference has unknown access
2009 function.
2010 (free_data_refs): Use free_data_ref.
2011
2012 2006-06-19 Andrew Pinski <pinskia@gmail.com>
2013
2014 PR middle-end/28075
2015 * tree-inline.c (setup_one_parameter): Strip useless
2016 type conversion before adding it to the IR.
2017 (declare_return_variable): Likewise.
2018
2019 2006-06-19 Martin Michlmayr <tbm@cyrius.com>
2020
2021 PR c/27149
2022 * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
2023
2024 2006-06-19 Mike Stump <mrs@apple.com>
2025
2026 * tree.c (variably_modified_type_p): VM arguments don't make the
2027 type a VM type.
2028
2029 2006-06-19 Richard Guenther <rguenther@suse.de>
2030
2031 * tree-ssa-pre.c (try_combine_conversion): Strip useless
2032 type conversions after folding.
2033
2034 2006-06-19 Richard Guenther <rguenther@suse.de>
2035
2036 * ggc-page.c (extra_order_size_tab): Add entries with
2037 size of struct function and basic_block.
2038 (size_lookup): Extend to cover sizes up to 511.
2039 (ggc_alloc_stat): Adjust user.
2040 (ggc_pch_count_object): Likewise.
2041 (ggc_pch_alloc_object): Likewise.
2042 (ggc_pch_write_object): Likewise.
2043
2044 2006-06-19 Zdenek Dvorak <dvorakz@suse.cz>
2045
2046 * tree-ssa-loop-niter.c (implies_ge_p): New function.
2047 (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
2048 correctly.
2049
2050 2006-06-19 Denis Chertykov <denisc@overta.ru>
2051
2052 * config/avr/libgcc.S : Correct my wrong previous commit.
2053
2054 2006-06-19 Roger Sayle <roger@eyesopen.com>
2055
2056 PR target/27861
2057 * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
2058 have stripped a SUBREG from the shift count, so we may need to
2059 convert_to_mode back to the type's mode before calling make_tree.
2060 Use new_amount instead of amount to avoid expanding a tree twice.
2061
2062 2006-06-19 Richard Guenther <rguenther@suse.de>
2063
2064 PR middle-end/28045
2065 * fold-const.c (operand_equal_p): Check if the argument types
2066 have the same precision before stripping NOPs.
2067
2068 2006-06-19 Daniel Berlin <dberlin@dberlin.org>
2069
2070 Fix PR tree-optimization/27341
2071 * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
2072 statement we get.
2073 * tree-complex.c (pass_lower_complex): Update SMT usage.
2074
2075 2006-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
2076
2077 * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
2078 Add a new alternative to the constraint strings. Add move of
2079 operand 1 to 3 to the splitter definition.
2080 ("doloop_si_long"): Second contraint alternative removed.
2081
2082 2006-06-08 Anatoly Sokolov <aesok@post.ru>
2083
2084 * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
2085 (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
2086 __AVR_HAVE_LPMX__.
2087 (AVR_HAVE_MOVW) Define.
2088 (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
2089 (ASM_SPEC): Add avr25.
2090 (LINK_SPEC): Add avr25.
2091 * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
2092 (base_arch_s): Add new member 'have_movw_lpmx'.
2093 (avr_arch_types): Init 'have_movw_lpmx'.
2094 (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
2095 attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
2096 attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
2097 (avr_override_options): Init 'avr_have_movw_lpmx_p'.
2098 (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
2099 AVR_HAVE_MOVW.
2100 (avr_file_start): Do not output '.arh' derective.
2101 * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
2102 (__do_copy_data): Use __AVR_HAVE_LPMX__.
2103 * config/avr/avr.md (mcu_enhanced): Delete.
2104 (mcu_have_movw): Define.
2105 (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
2106 (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
2107 * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
2108 (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
2109 attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
2110 attiny861 and at86rf401 devices.
2111
2112 2006-06-18 Jie Zhang <jie.zhang@analog.com>
2113
2114 * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
2115 of 4096.
2116
2117 2006-06-17 Karl Berry <karl@gnu.org>
2118
2119 * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
2120 doc/gccint.texi, doc/install.texi (@dircategory): Use
2121 "Software development" instead of "Programming", following
2122 the Free Software Directory.
2123
2124 2006-06-17 Alexandre Oliva <aoliva@redhat.com>
2125
2126 * config/i386/i386.c (legitimate_tls_address)
2127 <TARGET_GNU2_TLS>: Add tp after DTPOFF.
2128 * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
2129 (*tls_dynamic_gnu2_combine_64): Likewise.
2130
2131 2006-06-16 Richard Guenther <rguenther@suse.de>
2132
2133 PR middle-end/27116
2134 * fold-const.c (negate_expr_p): Do not introduce undefined
2135 overflow in negating INTEGER_CSTs.
2136 (fold_negate_expr): Rename from negate_expr. Revert last
2137 change for folding BIT_NOT_EXPR. Change semantics to
2138 return NULL_TREE for non-simplified negations. Do not
2139 strip type conversions and unify type handling.
2140 (negate_expr): New function, wrap around fold_negate_expr
2141 but ensure building a tree always. Strip type conversions
2142 here, fold to result type.
2143 (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
2144
2145 2006-06-16 Roger Sayle <roger@eyesopen.com>
2146
2147 PR middle-end/27802
2148 * reg-stack.c (subst_stack_regs): Handle noreturn function calls
2149 that (would) return their results in stack registers.
2150
2151 2006-06-16 Michael Matz <matz@suse.de>
2152 Richard Guenther <rguenther@suse.de>
2153
2154 * fold-const.c (fold_truthop): Only return new tree node if
2155 we canonicalized something.
2156
2157 2006-06-16 Richard Guenther <rguenther@suse.de>
2158
2159 * function.h (enum function_frequency): Move declaration
2160 out of struct function.
2161 (struct function): Move bool fields and the enum to the bitfield
2162 section. Reorder elements to avoid padding. Remove unused
2163 fields left over from the RTL inliner removal.
2164 * function.c (free_after_compilation): Do not zero removed fields.
2165 * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
2166 (ipa-type-escape.o): Likewise.
2167
2168 2006-06-16 Richard Guenther <rguenther@suse.de>
2169
2170 * cgraph.h (struct cgraph_local_info): Turn bool elements
2171 into a bitfield.
2172 (struct cgraph_node): Likewise.
2173 (struct cgraph_varpool_node): Likewise.
2174
2175 2006-06-15 Richard Guenther <rguenther@suse.de>
2176
2177 * fold-const.c (fold_truth_not_expr): Rename from
2178 invert_truthvalue. Give it fold_* semantics to avoid
2179 generating garbage.
2180 (invert_truthvalue): New function. Wrapper around
2181 fold_truth_not_expr.
2182 (optimize_minmax_comparison): Avoid creating garbage.
2183 (fold_unary): Use fold_truth_not_expr for folding
2184 TRUTH_NOT_EXPR.
2185 (fold_ternary): Replace uses of invert_truthvalue with
2186 fold_truth_not_expr where applicable.
2187 * tree.h (fold_truth_not_expr): Prototype.
2188
2189 2006-06-16 Richard Guenther <rguenther@suse.de>
2190
2191 PR tree-optimization/27781
2192 * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
2193 * ipa-pure-const.c (target.h): Include.
2194 (analyze_function): Do not analyze functions that do not
2195 bind locally.
2196
2197 2006-06-15 Andrew MacLeod <amacleod@redhat.com>
2198
2199 PR middle-end/27793
2200 * tree-dfa.c (referenced_vars_dup_list): Remove.
2201 (find_referenced_vars): Remove assert.
2202 (referenced_var_check_and_insert): Replace dup list with assert.
2203 * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
2204 * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
2205
2206 2006-06-15 Richard Guenther <rguenther@suse.de>
2207
2208 * tree-ssa-structalias.c (alias_get_name): Avoid creating
2209 extra unused identifiers if not dumping.
2210 (create_variable_info_for): Likewise.
2211
2212 2006-06-15 Zdenek Dvorak <dvorakz@suse.cz>
2213
2214 * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
2215 (derive_constant_upper_bound): Derive more precise upper bound in
2216 common cases. Return type changed to double_int.
2217 (record_estimate): Reflect the changed return type of
2218 derive_constant_upper_bound.
2219 * double-int.c (double_int_zext, double_int_sext): Fix.
2220
2221 2006-06-15 Paolo Bonzini <bonzini@gnu.org>
2222
2223 * configure.ac (CFLAGS): Get them from the toplevel or from the
2224 configure invocation.
2225 * configure: Regenerate.
2226 * Makefile.in (CFLAGS): Substitute value provided by configure.
2227
2228 2006-06-14 Mark Mitchell <mark@codesourcery.com>
2229
2230 PR c++/26559
2231 * c-common.h (c_finish_omp_atomic): Adjust declaration.
2232 * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
2233 rather than calling add_stmt on it.
2234 * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
2235
2236 2006-06-14 Andreas Krebbel <krebbel1@de.ibm.com>
2237
2238 PR middle-end/27959
2239 * reload1.c (reload): Remove registers returned by update_eliminables
2240 from used_spill_regs.
2241
2242 2006-06-13 DJ Delorie <dj@redhat.com>
2243
2244 * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
2245
2246 2006-06-13 Carlos O'Donell <carlos@codesourcery.com>
2247
2248 * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
2249 html__strip_dir, html__mkdir_p. Enhance install-html target.
2250 * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
2251 * configure: Regenerate.
2252
2253 2006-06-13 Fariborz Jahanian <fjahanian@apple.com>
2254
2255 * fold-const.c (fold_cond_expr_with_comparison): Check for
2256 Objective-C++ as language in deciding COND_EXPR transformation.
2257
2258 2006-06-06 J"orn Rennecke <joern.rennecke@st.com>
2259
2260 PR target/28014:
2261 * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
2262 * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
2263 * config/sh/lib1funcs.h (SL, SL1): Define.
2264 * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
2265 * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
2266 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
2267 (OBJS_Os_4_200): New variable.
2268 ($(T)libgcc-Os-4-200.a): Use it.
2269 * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
2270 when dividing 1 and/or by 0.
2271
2272 2006-06-13 Roger Sayle <roger@eyesopen.com>
2273
2274 * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
2275 before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
2276 * configure: Regenerate.
2277
2278 2006-06-13 Jie Zhang <jie.zhang@analog.com>
2279
2280 * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
2281 for real instruction.
2282
2283 2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2284
2285 PR middle-end/26807
2286 * haifa-sched.c (check_cfg): Handle special case.
2287
2288 2006-06-13 Eric Botcazou <ebotcazou@adacore.com>
2289
2290 PR debug/26754
2291 * gimplify.c (declare_tmp_vars): Rename into declare_vars.
2292 Add debug_info parameter. Chain the vars to the BLOCK instead
2293 of the BIND_EXPR if debug info are requested for them.
2294 (pop_gimplify_context): Adjust for above change.
2295 (gimple_add_tmp_var): Likewise.
2296 * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
2297 Add bool parameter.
2298 * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
2299 (convert_local_reference): Likewise.
2300 (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
2301 (finalize_nesting_tree_1): Request that debug info be emitted
2302 for debug_var_chain.
2303
2304 2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2305
2306 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
2307 for PR target/27863.
2308
2309 2006-06-13 Richard Guenther <rguenther@suse.de>
2310
2311 PR middle-end/27536
2312 * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
2313
2314 2006-06-13 Richard Guenther <rguenther@suse.de>
2315
2316 PR tree-optimization/27830
2317 * tree-inline.c (copy_body_r): For copying the operand
2318 of an ADDR_EXPR make sure to fold &* afterwards.
2319
2320 2006-06-12 Eric Botcazou <ebotcazou@adacore.com>
2321
2322 * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
2323 lvalues in the fb_none case with side-effects.
2324
2325 2006-06-12 Kazu Hirata <kazu@codesourcery.com>
2326
2327 * tree-flow.h: Remove the prototype for
2328 compute_phi_arg_on_exit.
2329 * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
2330 protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
2331 Remove.
2332
2333 2006-06-12 Mark Shinwell <shinwell@codesourcery.com>
2334
2335 * builtins.c (expand_builtin_return_addr): Only use
2336 frame_pointer_rtx when count == 0 and we are expanding
2337 __builtin_return_address.
2338
2339 2006-06-12 Fred Fish <fnf@specifix.com>
2340
2341 * config/mips/mips.c (mips_file_start): Create special section
2342 ".gcc_compiled_longXX" for o64 ABI as well as EABI.
2343
2344 2006-06-11 Eric Christopher <echristo@apple.com>
2345
2346 PR middle-end/27948
2347 * stor-layout.c (place_field): Remove check for
2348 remaining_in_alignment when aligning at the end of a run.
2349
2350 2006-06-11 Eric Christopher <echristo@apple.com>
2351
2352 PR 27542
2353 * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
2354 pragma.
2355
2356 2006-06-11 Roger Sayle <roger@eyesopen.com>
2357
2358 PR target/27858
2359 Revert incorrect fix for PR target/27158
2360 2006-05-08 Roger Sayle <roger@eyesopen.com>
2361 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
2362 of a reg_equiv_constant if the result is a legitimate constant.
2363
2364 2006-06-11 Roger Sayle <roger@eyesopen.com>
2365
2366 PR target/27158
2367 * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
2368 extract a CONST_VECTOR element and interpret it as an integer.
2369 (vspltis_constant): Use const_vector_elt_as_int instead of the
2370 macro CONST_VECTOR_ELT in order to handle FP vector modes.
2371 * config/rs6000/predicates.md (easy_vector_const): Consider
2372 floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
2373
2374 2006-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
2375
2376 PR middle-end/27942
2377 * stor-layout.c (update_alignment_for_field): Don't add extra
2378 alignment for packed non-bitfield fields in ms_bitfield_layout_p
2379 code.
2380
2381 2006-06-09 Ralf Corsepius <ralf.corsepius@rtems.org>
2382
2383 * config/mips/t-rtems: Add EL/EB multilib variants.
2384
2385 2006-06-09 Mike Stump <mrs@apple.com>
2386
2387 * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
2388
2389 2006-06-09 David Daney <ddaney@avtrex.com>
2390
2391 * doc/install.texi: Add binutils version recommendation for mips-*-*.
2392
2393 2006-06-09 Andreas Krebbel <krebbel1@de.ibm.com>
2394
2395 * reload.c (find_reloads): Unset force_reload for 'X' constraint.
2396
2397 2006-06-09 Richard Guenther <rguenther@suse.de>
2398
2399 PR tree-optimization/26998
2400 * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
2401 of signed types, only TYPE_MIN_VALUE is special, but for both,
2402 minimum and maximum value. Likewise VR_ANTI_RANGE is special
2403 in this case, as is -fwrapv.
2404
2405 2006-06-08 Mike Stump <mrs@apple.com>
2406
2407 PR target/26427
2408 * config/darwin.c (darwin_asm_output_anchor): Disable
2409 -fsection-anchors on darwin for now.
2410 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
2411 * rs6000/rs6000.c (optimization_options): Likewise.
2412
2413 2006-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2414
2415 PR target/27421
2416 * config/i386/i386.c (classify_argument): Skip fields with invalid
2417 types in unions.
2418
2419 2006-06-08 Steven Bosscher <steven@gcc.gnu.org>
2420
2421 * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
2422 (cse_insn): Likewise for the stack_pointer_rtx.
2423
2424 2006-06-08 Roger Sayle <roger@eyesopen.com>
2425
2426 * tree-ssa-dom.c (record_conditions): Only record "unordered"
2427 conditions from floating point comparisons.
2428
2429 2006-06-08 Paolo Bonzini <bonzini@gnu.org>
2430
2431 PR middle-end/27733
2432 * expmed.c (struct alg_hash_entry): Fix type of field T
2433 to match synth_mult argument.
2434 (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
2435
2436 2006-06-08 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2437
2438 PR target/27863
2439 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
2440 block boundaries.
2441
2442 2006-06-08 Richard Guenther <rguenther@suse.de>
2443
2444 PR middle-end/27116
2445 * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
2446 only, if overflow is defined and not trapping.
2447 (negate_expr): Likewise.
2448
2449 2006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
2450
2451 PR tree-optimization/27872
2452 * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
2453 flag on the new exit edge of the unrolled loop.
2454
2455 2006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
2456
2457 PR rtl-optimization/26449
2458 * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
2459
2460 2006-06-07 Andrew MacLeod <amacleod@redhat.com>
2461
2462 PR middle-end/27793
2463 * tree-dfa.c (referenced_vars_dup_list): New. List of duplicate
2464 referenced_variables with matching DECL_UID's.
2465 (find_referenced_vars): Make sure duplicate list is empty to start.
2466 (referenced_var_p): Remove.
2467 (referenced_var_check_and_insert): Renamed from referenced_var_insert.
2468 Check if var is in the list, and add if needed. Update the duplicate
2469 list if a different var is in the list with the same DECL_UID.
2470 (add_referenced_var): Call routine to check and insert.
2471 * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
2472 * tree-flow.h (referenced_vars_dup_list): External declaration.
2473
2474 2006-06-07 Fred Fish <fnf@specifix.com>
2475
2476 * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
2477 into single entry.
2478
2479 2006-06-07 Paolo Bonzini <bonzini@gnu.org>
2480
2481 PR target/27390
2482 * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
2483 the imaginary and real parts of a clobbered register.
2484 Emit insn to set the imaginary part.
2485
2486 2006-06-06 Peter Lemieszewski <lemie@us.ibm.com>
2487
2488 * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
2489 in lieu of unwind-dw2-fde.c.
2490
2491 2006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
2492
2493 * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
2494
2495 2006-06-06 Ulrich Weigand <uweigand@de.ibm.com>
2496
2497 PR target/27842
2498 * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
2499 ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
2500 ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
2501 V4SImode temporaries and operations instead.
2502
2503 2006-06-06 Joseph S. Myers <joseph@codesourcery.com>
2504
2505 * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
2506 dp-bit.c.
2507
2508 2006-06-06 Mike Stump <mrs@apple.com>
2509
2510 * Makefile.in: Rename to htmldir to build_htmldir to avoid
2511 installing during build.
2512
2513 2006-06-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2514
2515 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
2516 value to 0.
2517 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2518 * config/ia64/ia64.c (params.h): New header.
2519 (ia64_optimization_options): New function to adjust parameters.
2520 * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
2521 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
2522 * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
2523
2524 2006-06-05 Kazu Hirata <kazu@codesourcery.com>
2525
2526 * stor-layout.c (debug_rli): Fix a typo in a debug message.
2527
2528 2006-06-05 Steve Ellcey <sje@cup.hp.com>
2529
2530 PR target/27051
2531 * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
2532
2533 2006-06-05 Dorit Nuzman <dorit@il.ibm.com>
2534 Victor Kaplansky <victork@il.ibm.com>
2535
2536 PR tree-optimization/26360
2537 * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
2538 stmts.
2539
2540 2006-06-04 Roger Sayle <roger@eyesopen.com>
2541 Andrew Pinski <pinskia@physics.uc.edu>
2542
2543 PR middle-end/27382
2544 * c-common.c (c_common_truthvalue_conversion): Explicitly check
2545 for LABEL_DECL before calling DECL_WEAK.
2546
2547 PR c/27150
2548 * c-typeck.c (build_binary_op): Likewise, explicitly check for
2549 LABEL_DECL and PARM_DECL.
2550
2551 2006-06-05 Joseph S. Myers <joseph@codesourcery.com>
2552
2553 PR c/25161
2554 PR c/27020
2555 * c-decl.c (grokdeclarator): Disallow variably modified types at
2556 file scope. Avoid marking shared array type of constant size as
2557 VLA.
2558
2559 2006-06-04 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2560
2561 PR c++/27601
2562 * c-common.c (fold_offsetof_1): Handle static members.
2563
2564 2006-06-04 Eric Christopher <echristo@apple.com>
2565
2566 * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
2567 (debug_rli): Output value for remaining_in_alignment.
2568 (update_alignment_for_field): Unconditionalize
2569 ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
2570 extra alignment code.
2571 (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
2572 ms_bitfield_layout_p code. Rewrite handling of structure fields.
2573 * tree.h (record_layout_info_s): Remove prev_packed.
2574 * doc/extend.texi (ms_struct): Add documentation of format.
2575
2576 2006-06-04 Mark Shinwell <shinwell@codesourcery.com>
2577
2578 * tree.h: Declare folding_initializer.
2579 * builtins.c (fold_builtin_constant_p): Give definite answer
2580 if folding inside an initializer.
2581 * fold-const.c: Define folding_initializer.
2582 (START_FOLD_INIT): Save and then set folding_initializer.
2583 (END_FOLD_INIT): Restore folding_initializer.
2584
2585 2006-06-04 Richard Guenther <rguenther@suse.de>
2586
2587 PR tree-optimization/27039
2588 * fold-const.c (fold_comparison): Handle pointer comparison
2589 again for all comparison codes. Compare offsets in signed
2590 size type.
2591 (fold_binary): Move code from here.
2592
2593 2006-06-03 Roger Sayle <roger@eyesopen.com>
2594
2595 PR target/26223
2596 * config/i386/i386.c (construct_container): Split static issued_error
2597 flag into issued_sse_arg_error, issued_sse_ret_error and
2598 issued_x87_ret_error. Issue a daignostic if the x86-64 ABI
2599 requires the use of x87 registers and the user explicitly
2600 specified the -mno-80387 command line option.
2601
2602 2006-06-02 Geoffrey Keating <geoffk@apple.com>
2603
2604 * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
2605 HAVE_DECL_SIGALTSTACK.
2606 (MC_FLD): New.
2607 (segv_handler): Use MC_FLD.
2608 * configure.ac: Check for a sigaltstack declaration.
2609 Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
2610 * configure: Regenerate.
2611 * config.in: Regenerate.
2612
2613 2006-06-03 J"orn Rennecke <joern.rennecke@st.com>
2614
2615 PR other/27850
2616 * Makefile.in (stmp-fixinc): Fix typo.
2617
2618 2006-06-02 Roger Sayle <roger@eyesopen.com>
2619
2620 * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
2621 are type correct. Clean-up.
2622 <REALPART_EXPR>: Likewise. Optimize creal(~z) as creal(z).
2623 <IMAGPART_EXPR>: Likewise. Optimize cimag(~z) as -cimag(z).
2624
2625 2006-06-01 DJ Delorie <dj@redhat.com>
2626
2627 * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
2628 shift, as we've disabled the "switch" insn that needs it.
2629
2630 2006-06-01 Per Bothner <bothner@bothner.com>
2631
2632 Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
2633 * c-opts.c (finish_options): Use internal line 0 for <command-line>.
2634 * c-ppoutput.c (cb_define): Don't increment line 0.
2635
2636 2006-06-01 Pete Steinmetz <steinmtz@us.ibm.com>
2637
2638 * doc/invoke.texi: Add cpu_type power6.
2639 * config.gcc: Add cpu_type power6.
2640 * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
2641 to power5+ with Altivec.
2642 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
2643 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
2644
2645 2006-05-30 Anatoly Sokolov <aesok@post.ru>
2646
2647 * config/avr/avr.h (SET_ASM_OP): Define.
2648
2649 2006-06-01 Kazu Hirata <kazu@codesourcery.com>
2650
2651 * config/bfin/bfin.c: Fix comment typos.
2652
2653 2006-06-01 Paolo Bonzini <bonzini@gnu.org>
2654
2655 PR 25453
2656 * doc/install.texi: Document --enable-bootstrap and
2657 --disable-bootstrap.
2658
2659 2006-06-01 Paolo Bonzini <bonzini@gnu.org>
2660
2661 * doc/install.texi: Document that InfoZIP can replace jar.
2662
2663 2006-05-31 Roger Sayle <roger@eyesopen.com>
2664
2665 * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
2666 isn't available, directly generate the simpler x87 patterns without
2667 the (use (const_int 0)).
2668 * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
2669 implementation isn't available.
2670 (*negdf2_1): Likewise.
2671 (*negxf2_1): XF mode negation is always done using the x87.
2672 (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
2673
2674 2006-05-31 Roger Sayle <roger@eyesopen.com>
2675
2676 * builtins.c (fold_builtin_cabs): Delete prototype. Require an
2677 additional FNDECL argument. Optimize cabs(-z) and cabs(~z) as
2678 cabs(z).
2679 (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
2680
2681 2006-05-31 Jie Zhang <jie.zhang@analog.com>
2682
2683 * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
2684 * config/bfin/bfin.c (basic-block.h): Include.
2685 (struct machine_function): New.
2686 (bfin_init_machine_status): New.
2687 (override_options): Initialize init_machine_status.
2688 (bfin_hardware_loop): New.
2689 (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
2690 (DEF_VEC_P (loop_info)): New.
2691 (DEF_VEC_ALLOC_P (loop_info,heap)): New.
2692 (struct loop_info): New.
2693 (loop_info): New typedef.
2694 (struct loop_work): New.
2695 (loop_work): New typedef.
2696 (DEF_VEC_O (loop_work)): New.
2697 (DEF_VEC_ALLOC_O (loop_work,heap)): New.
2698 (bfin_dump_loops): New.
2699 (bfin_bb_in_loop): New.
2700 (bfin_scan_loop): New.
2701 (bfin_optimize_loop): New.
2702 (bfin_reorg_loops): New.
2703 (bfin_reorg): Use bfin_reorg_loops.
2704 * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
2705 loop registers.
2706 (I_REGNO_P): Simplify.
2707 (DP_REGNO_P, DPREG_P): New macros.
2708 (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
2709 REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
2710 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
2711 Add LT_REGS, LC_REGS, LB_REGS.
2712 (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
2713 'l' for LB_REGS.
2714 (REGNO_REG_CLASS): Deal with loop registers.
2715 * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
2716 letters.
2717 (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
2718 New constants for loop registers.
2719 (UNSPEC_LSETUP_END): New.
2720 (seq_insns): New define_attr. Set it for appropriate insns.
2721 (movsi_insn): Add alternatives for move from/to
2722 loop count registers.
2723 (doloop_end): New define_expand.
2724 (loop_end): New define_insn.
2725 (define_split for bad doloop_end): New.
2726 (lsetup_with_autoinit): New define_insn.
2727 (lsetup_without_autoinit): New define_insn.
2728 (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
2729 * config/bfin/predicates.md (lc_register_operand): New.
2730 (lt_register_operand): New.
2731 (lb_register_operand): New.
2732 (nondp_register_operand): New.
2733 (nondp_reg_or_memory_operand): New.
2734 * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
2735
2736 2006-05-31 Jie Zhang <jie.zhang@analog.com>
2737
2738 * config/bfin/bfin.c (bfin_delegitimize_address): New.
2739 (TARGET_DELEGITIMIZE_ADDRESS): Define.
2740
2741 2006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
2742
2743 * Makefile.in (CATALOGS): Add po/ prefix.
2744 * configure: Regenerated.
2745
2746 2006-05-31 Richard Earnshaw <richard.earnshaw@arm.com>
2747
2748 PR target/27829
2749 * arm.c (arm_print_operand case 'S'): Validate that the operand is
2750 a shift operand before calling shift_op. Avoid redundant call of
2751 shift_op.
2752
2753 2006-05-30 Naveen.H.S <naveenh@kpitcummins.com>
2754 DJ Delorie <dj@redhat.com>
2755
2756 * config/m32c/m32c.c (m32c_expand_insv): Check that the value
2757 we're inserting is a singlt-bit constant.
2758
2759 2006-05-30 Roger Sayle <roger@eyesopen.com>
2760
2761 * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
2762 width to HOST_WIDE_INT to avoid comparison warnings on some targets.
2763
2764 2006-05-30 Roger Sayle <roger@eyesopen.com>
2765
2766 PR tree-optimization/23452
2767 * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
2768 to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
2769 (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
2770 complex values and with -ffast-math for FP complex values.
2771
2772 2006-05-30 Kazu Hirata <kazu@codesourcery.com>
2773
2774 * c-common.h: Remove the prototype for yyparse.
2775 * rtl.h: Remove the prototype for init_loop.
2776
2777 2006-05-30 Andreas Krebbel <krebbel1@de.ibm.com>
2778
2779 * cse.c (validate_canon_reg, cse_insn): Don't change insns without
2780 calling recog.
2781
2782 2006-05-30 Roger Sayle <roger@eyesopen.com>
2783
2784 * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
2785 and rotate cases.
2786 <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
2787 log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
2788
2789 2006-05-30 Dirk Mueller <dmueller@suse.de>
2790
2791 PR c/27273
2792 * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
2793 for CONSTANT_CLASS_P expresisons.
2794
2795 2006-05-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2796
2797 PR c/27718
2798 * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
2799
2800 2006-05-30 Zdenek Dvorak <dvorakz@suse.cz>
2801
2802 PR tree-optimization/27779
2803 * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
2804 initial_condition instead of CHREC_LEFT.
2805
2806 2006-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
2807
2808 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
2809 * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
2810 Make prototypes ISO C90.
2811
2812 2006-05-30 Mircea Namolaru <namolaru@il.ibm.com>
2813 Leehod Baruch <leehod.baruch@weizmann.ac.il>
2814
2815 * see.c (see_analyze_one_def): Correct check.
2816 (see_get_extension_data): Check if extension is parallel.
2817 (see_get_extension_reg): Likewise.
2818
2819 2006-05-30 Uros Bizjak <uros@kss-loka.si>
2820
2821 PR target/27790
2822 * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
2823 into register for (code == GTU).
2824
2825 2006-05-29 Roger Sayle <roger@eyesopen.com>
2826
2827 PR tree-optimization/24964
2828 * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
2829 <MULT>: Minor clean-up. Don't convert x*-1.0 into -x if we honor
2830 signaling NaNs. Optimize -x*-x as x*x for all float modes, and
2831 abs(x)*abs(x) as x*x for scalar floating point modes.
2832
2833 2006-05-29 Sebastian Pop <pop@cri.ensmp.fr>
2834
2835 PR middle-end/27745
2836 * lambda-code.c (perfect_nestify): Don't copy statements
2837 in the inner loop: move them to the inner loop header.
2838
2839 2006-05-29 Diego Novillo <dnovillo@redhat.com>
2840
2841 PR 26237
2842 * c-tree.texi: Document OpenMP directives and clauses.
2843
2844 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
2845
2846 * varasm.c (globalize_decl): Fix indentation.
2847
2848 2006-05-29 Diego Novillo <dnovillo@redhat.com>
2849
2850 PR 26242
2851 * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
2852 pass_fre, pass_store_ccp, pass_copy_prop,
2853 pass_store_copy_prop, pass_merge_phi, pass_nrv,
2854 pass_return_slot, pass_object_size, pass_lim,
2855 pass_linear_transform, pass_empty_loop, pass_complete_unroll,
2856 pass_loop_prefetch and pass_stdarg.
2857
2858 2005-05-29 Bernd Schmidt <bernd.schmidt@analog.com>
2859
2860 * config/bfin/bfin.opt (mfdpic): New option.
2861 * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
2862 (EXTRA_MULTILIB_PARTS): Likewise.
2863 (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
2864 (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
2865 multilib.
2866 * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
2867 (CRT_CALL_STATIC_FUNCTION): New.
2868 * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
2869 -shared.
2870 (CRT_CALL_STATIC_FUNCTION): New.
2871 * config/bfin/bfin.c (legitimize_pic_address): Now static. Handle
2872 FD-PIC moves.
2873 (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
2874 (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
2875 (initialize_trampoline): Changed to handle FD-PIC code generation.
2876 (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
2877 (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
2878 (override_options): Disallow -mid-shared-library -mfdpic combination.
2879 Can't do unaligned ops if FD-PIC.
2880 Turn off flag_pic if trying to generate non-id-shared-library
2881 non-fdpic code, since it's not supported.
2882 (bfin_assemble_integer): New function.
2883 (TARGET_ASM_INTEGER): Define.
2884 * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
2885 __BFIN_FDPIC__.
2886 * config/bfin/crtn.s: Restore them.
2887 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
2888 if TARGET_FDPIC.
2889 (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
2890 LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
2891 (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
2892 (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
2893 (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
2894 call-used.
2895 (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
2896 FDPIC_REGS and FDPIC_FPTR_REGS.
2897 (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
2898 * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
2899 UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
2900 (load_funcdescsi): New pattern.
2901 (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
2902 sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
2903 call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
2904
2905 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
2906
2907 * gcse.c, rtlanal.c: Remove obsolete comments associated with
2908 loop.c.
2909
2910 * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
2911
2912 * tree-flow.h: Remove the prototype for add_type_alias.
2913 * tree-ssa-alias.c (add_type_alias): Remove.
2914
2915 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
2916
2917 * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
2918 config/fr30/fr30.md, config/i386/i386-interix.h,
2919 config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
2920 config/sh/superh64.h, config/v850/v850.c, df-core.c,
2921 df-problems.c, df.h, except.c, final.c, haifa-sched.c,
2922 lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
2923 reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
2924 tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
2925 Follow spelling conventions.
2926 * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
2927 Follow spelling conventions.
2928
2929 2006-05-27 Richard Guenther <rguenther@suse.de>
2930
2931 PR middle-end/27773
2932 * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
2933 to produce a constant of value 1 of generic type.
2934
2935 2006-05-27 Dirk Mueller <dmueller@suse.de>
2936
2937 * cgraphunit.c (decide_is_function_needed): Fix wrong
2938 PR reference.
2939
2940 2006-05-26 Ulrich Weigand <uweigand@de.ibm.com>
2941
2942 PR rtl-optimization/27661
2943 * reload.c (find_reloads): When reloading a VOIDmode constant
2944 as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
2945 use Pmode as mode of the reload register.
2946
2947 2006-05-26 Eric Botcazou <ebotcazou@adacore.com>
2948
2949 * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
2950 is enabled at -O and above.
2951
2952 2006-05-26 Steven Bosscher <steven@gcc.gnu.org>
2953
2954 PR target/27571
2955 * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
2956 table data.
2957
2958 2006-05-25 Mark Mitchell <mark@codesourcery.com>
2959
2960 PR c++/20103
2961 * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
2962 for anonymous variables explicitly declared by front ends.
2963
2964 2006-05-25 Eric Botcazou <ebotcazou@adacore.com>
2965
2966 * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
2967 (struct alias_info): Add new field ref_all_symbol_mem_tag.
2968 * tree-ssa-alias.c (compute_may_aliases): If the program contains
2969 ref-all pointers, run a finalization pass for them.
2970 (compute_flow_insensitive_aliasing): Skip ref-all pointers.
2971 (finalize_ref_all_pointers): New function.
2972 (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
2973 regular pointer type to a ref-all pointer type.
2974 (get_tmt_for): Return the special memory tag for ref-all pointers.
2975
2976 2006-05-25 Richard Guenther <rguenther@suse.de>
2977
2978 PR middle-end/27743
2979 * fold-const.c (fold_binary): Do not look at the stripped
2980 op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
2981
2982 2006-05-25 Eric Botcazou <ebotcazou@adacore.com>
2983
2984 * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
2985 for LT and GT if the computed range is effectively empty.
2986
2987 2006-05-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2988
2989 PR target/27627
2990 * pa/pa-modes.def: Use mips_single_format, mips_double_format and
2991 mips_quad_format formats instead of ieee_single_format,
2992 ieee_double_format and ieee_quad_format formats, respectively.
2993
2994 2006-05-24 Zdenek Dvorak <dvorakz@suse.cz>
2995
2996 PR tree-optimization/27639
2997 PR tree-optimization/26719
2998 * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
2999 call to scev_probably_wraps_p.
3000 * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
3001 used_in_pointer_arithmetic_p, convert_step): Removed.
3002 (nowrap_type_p): New function.
3003 (scev_probably_wraps_p): Rewritten.
3004 * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
3005 chrec_convert if chrec_convert_aggressive might have been used.
3006 * tree-chrec.c (convert_affine_scev, chrec_convert_1,
3007 scev_direction): New functions.
3008 (chrec_convert): Changed to a wrapper over chrec_convert_1.
3009 * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
3010 instead of convert_step.
3011 * tree-flow.h (scev_probably_wraps_p): Declaration changed.
3012 (convert_step): Declaration removed.
3013 (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
3014
3015 2006-05-23 Kenneth Zadeck <zadeck@naturalbridge.com>
3016
3017 * df-core.c: Added to header comments.
3018 * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
3019 df_ur_bb_info, df_urec_bb_info): Added comments.
3020 * df-problems (df_ref_bitmap, ru, rd, lr, ur,
3021 urec, ri problems): Fixed header comments.
3022 (df_ru_transfer_function): Fixed in-out set dyslexia when copying
3023 code from df_rd_transfer_function.
3024
3025 2006-05-23 Richard Sandiford <richard@codesourcery.com>
3026
3027 * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
3028 (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
3029 MIN_UNITS_PER_WORD to set the default. Also use it in the guard.
3030
3031 2006-05-23 Joseph Myers <joseph@codesourcery.com>
3032
3033 * expr.c (undefined_operand_subword_p): New.
3034 (emit_move_multi_word): Do not generate move from undefined bits
3035 of a paradoxical subreg.
3036
3037 2006-05-23 Richard Sandiford <richard@codesourcery.com>
3038
3039 PR rtl-optimization/27736
3040 * combine.c (replaced_rhs_value): New variable.
3041 (combine_instructions): Set it.
3042 (distribute_notes): When distributing a note in replaced_rhs_insn,
3043 check whether the value was used in replaced_rhs_value.
3044
3045 2006-05-23 Andrew MacLeod <amacleod@redhat.com>
3046
3047 PR c++/26757
3048 * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
3049 add_referenced_var instead of add_referenced_tmp_var.
3050 * tree-complex.c (create_one_component_var): Use add_referenced_var.
3051 * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
3052 add_referenced_var.
3053 * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
3054 tree_optimize_tail_calls_1): Use add_referenced_var.
3055 * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
3056 * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
3057 Use add_referenced_var.
3058 * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
3059 * gimplify.c (force_gimple_operand): Use add_referenced_var.
3060 * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
3061 Use add_referenced_var.
3062 * tree-dfa.c (struct walk_state): Remove.
3063 (find_referenced_vars): Remove walk state and vars_found hash table.
3064 (make_rename_temp): Use add_referenced_var.
3065 (find_vars_r): Pass less parameters to add_referenced_var.
3066 (referenced_var_p): New. Is var in referenced_var hash table.
3067 (referenced_var_insert): Assert var isn't already in hash table.
3068 (add_referenced_var): Don't need walk_state parameter. Add var if it
3069 isn't already in the hash table.
3070 (add_referenced_tmp_var): Remove.
3071 (find_new_referenced_vars_1): Use add_referenced_var.
3072 * tree-ssa-pre.c (create_expression_by_pieces,
3073 insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
3074 Use add_referenced_var.
3075 * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
3076 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
3077 lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
3078 add_referenced_var.
3079 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
3080 vect_create_data_ref_ptr, vect_create_destination_var,
3081 vect_init_vector, vect_build_loop_niters,
3082 vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
3083 vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
3084 Use add_referenced_var.
3085 * tree-outof-ssa.c (create_temp): Use add_referenced_var.
3086 * tree-flow.h (add_referenced_tmp_var): Remove prototype
3087 (add_referenced_var): Add prototype.
3088 * tree-ssa-structalias.c (get_constraint_for,
3089 intra_create_variable_infos): Use add_referenced_var.
3090
3091 2006-05-23 Alexandre Oliva <aoliva@redhat.com>
3092
3093 * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
3094 big-endian paradoxical subregs.
3095 * var-tracking.c (struct micro_operation_def): Document that,
3096 for modify micro operations, insn is the subsequent instruction.
3097 (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
3098 (var_reg_set, var_mem_set): ... new functions.
3099 (add_stores): Record subsequent insn.
3100 (compute_bb_dataflow): Use new functions for MO_USE.
3101 (emit_notes_in_bb): Use new functions for MO_USE. Emit use
3102 notes after the insn, and modify notes before the insn known
3103 to be the subsequent one.
3104 (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
3105
3106 2006-05-23 Kazu Hirata <kazu@codesourcery.com>
3107
3108 PR target/27696
3109 * config/i386/i386.c (ix86_expand_builtin): Use
3110 gen_sse3_monitor64 for TARGET_64BIT.
3111
3112 2006-05-22 Kenneth Zadeck <zadeck@naturalbridge.com>
3113
3114 PR rtl-optimization/26375
3115 PR rtl-optimization/26855
3116 * df-problems (df_ru_bb_local_compute_process_def): Removed update
3117 to gen set.
3118 (df_ru_bb_local_compute): Reversed statements and removed bogus
3119 comment explaining why they should be in wrong order.
3120 (df_ru_dump, df_rd_dump): Enhanced debug info.
3121 * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
3122 debug info.
3123 * ddg.c (add_deps_for_def): Converted use of reaching defs to
3124 reaching uses and fixed space problem.
3125
3126 2006-05-23 Jan Hubicka <jh@suse.cz>
3127
3128 * cgraphunit.c (decide_is_function_needed): Also nested functions
3129 and functions declared inline can be optimized out at -O0.
3130
3131 2006-05-22 Gerald Pfeifer <gerald@pfeifer.com>
3132
3133 * doc/install.texi (Configuration): Remove reference to CrossGCC
3134 FAQ which was gone.
3135 (Building): Ditto.
3136
3137 2006-05-22 Kazu Hirata <kazu@codesourcery.com>
3138
3139 PR target/27266
3140 * config/i386/i386.c (ix86_expand_branch): Jump to simple if
3141 ix86_compare_emitted is non-NULL.
3142
3143 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3144
3145 PR c++/27451
3146 * stmt.c (expand_asm_operands): Skip asm statement with erroneous
3147 clobbers.
3148
3149 2006-05-22 Richard Sandiford <richard@codesourcery.com>
3150
3151 PR rtl-optimization/25514
3152 * combine.c (replaced_rhs_insn): New variable.
3153 (combine_instructions): Set replaced_rhs_insn when trying to replace
3154 a SET_SRC with a REG_EQUAL note.
3155 (distribute_notes): Use replaced_rhs_insn when determining the live
3156 range of a REG_DEAD register.
3157
3158 2006-18-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
3159 Anatoly Sokolov <aesok@post.ru>
3160
3161 * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
3162 attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
3163 attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
3164 atmega164p, atmega324p, atmega644p, atmega644, atmega329,
3165 atmega3290, atmega649, atmega6490, atmega406, atmega640,
3166 atmega1280, atmega1281, at90can32, at90can64, at90usb646,
3167 at90usb647, at90usb1286 and at90usb1287 devices.
3168 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3169 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3170
3171 2006-05-22 Richard Sandiford <richard@codesourcery.com>
3172
3173 * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
3174
3175 2006-05-22 Richard Guenther <rguenther@suse.de>
3176
3177 Revert
3178 2006-01-31 Richard Guenther <rguenther@suse.de>
3179 Paolo Bonzini <bonzini@gnu.org>
3180
3181 * doc/install.texi (--disable-libgcc-math): Document.
3182
3183 2006-05-22 Richard Guenther <rguenther@suse.de>
3184
3185 Revert
3186 2006-01-31 Richard Guenther <rguenther@suse.de>
3187
3188 * doc/invoke.texi (-msselibm): Document.
3189 * target.h (expand_library_builtin): New target hook.
3190 * builtins.c (expand_builtin): Use expand_library_builtin.
3191 (default_expand_library_builtin): New function.
3192 * gcc.c (LINK_GCC_MATH_SPEC): Define.
3193 (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
3194 (link_gcc_math_spec): Declare.
3195 (static_specs): Add link_gcc_math_spec.
3196 * expr.h (default_expand_library_builtin): Declare.
3197 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3198 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
3199 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
3200 * config/i386/i386.opt (msselibm): New target option.
3201 * config/i386/i386.c (ix86_builtin_function_variants): New array.
3202 (ix86_init_sse_abi_builtins): New function.
3203 (ix86_expand_library_builtin): Likewise.
3204 (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3205 (override_options): Handle error conditions wrt -msselibm.
3206 (ix86_builtins): Add function codes for SSE2 ABI builtins.
3207 (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
3208 * doc/extend.texi (__builtin_sse2_*): Document new target specific
3209 builtins.
3210
3211 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3212
3213 PR c/27420
3214 * c-common.c (self_promoting_args_p): Skip erroneous args.
3215
3216 PR c/26818
3217 * c-decl.c (finish_struct): Skip erroneous fields.
3218
3219 2006-05-22 Nick Clifton <nickc@redhat.com>
3220
3221 * config/cris/cris.opt (march): Remove VarExists attribute.
3222 (max-stackframe=): Likewise.
3223
3224 2006-05-22 Kazu Hirata <kazu@codesourcery.com>
3225
3226 * doc/rtl.texi: Fix a typo.
3227 * see.c: Fix comment typos.
3228
3229 * tree-ssa-structalias.h (alias_info): Remove num_references.
3230
3231 2006-05-21 Mike Stump <mrs@apple.com>
3232
3233 * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
3234 (BAD2): Add.
3235 (darwin_pragma_options): Use BAD instead.
3236 (darwin_pragma_unused): Likewise.
3237 (darwin_pragma_ms_struct): Likewise.
3238
3239 2006-05-21 David Edelsohn <edelsohn@gnu.org>
3240
3241 * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
3242
3243 2006-05-21 Kazu Hirata <kazu@codesourcery.com>
3244
3245 PR rtl-optimization/27671
3246 * simplify-rtx.c (simplify_relational_operation_1): Fix
3247 simplifications of (eq/ne (xor x y) y) and
3248 (eq/ne (xor x y) x).
3249
3250 PR tree-optimization/26622.
3251 * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
3252 on arg1.
3253
3254 2006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
3255
3256 * tree-cfg.c: Prune whitespace.
3257 (debug_tree_cfg): Point to correct header containing the
3258 TDF_* defines.
3259
3260 2006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
3261
3262 PR middle-end/25776
3263 * cgraphunit.c (verify_cgraph_node): Typo in error message.
3264
3265 2006-05-20 Andrew Pinski <pinskia@physics.uc.edu>
3266
3267 PR middle-end/25776
3268 * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
3269 or sorry count is non zero.
3270
3271 2006-05-20 Andreas Schwab <schwab@suse.de>
3272
3273 * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
3274
3275 2006-05-19 Daniel Berlin <dberlin@dberlin.org>
3276 Kenneth Zadeck <zadeck@naturalbridge.com>
3277
3278 PR rtl-optimization/26855
3279
3280 * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
3281 multiword refs.
3282 (df_scan_alloc): Added code to properly handle multiword hard
3283 registers and add all_blocks parameter.
3284 (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
3285 code to properly handle multiword hard registers.
3286 (df_rescan_blocks): Added code to remove deleted blocks from
3287 bitmap.
3288 (df_ref_create_structure, df_ref_record): Added code to properly
3289 handle subregs.
3290 (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
3291 and set DF_REF_PARTIAL.
3292 (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
3293 (df_uses_record): Added DF_REF_PARTIAL for subreg.
3294 (df_scan_add_problem): Added flags parameter.
3295 (df_ref_create_structure): Changed switching structure.
3296 (df_bb_refs_record): Fixed case where duplicate artificial refs
3297 were created. Changed location of flags.
3298 (df_record_entry_block_defs): Added code to make stack pointer
3299 live in entry block. Refined cases where frame pointer is needed.
3300 Changed location of flags.
3301 (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
3302 (df_set_state): Removed function.
3303 (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
3304 df_insn_create_insn_record, df_insn_refs_delete,
3305 df_ref_create_structure): Formatting changes.
3306 * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
3307 df_delete_basic_block): New function.
3308 (df_init): Changed location of flags.
3309 (df_add_problem): Added flags parameter and the way flags are
3310 processed.
3311 (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
3312 debug_df_chain): Improved debugging output.
3313 (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
3314 (df_refs_chain_dump): Removed df parameter.
3315 (df_iterative_dataflow): Added consistency check.
3316 (df_prune_to_subcfg): Made public.
3317 (df_analyze_problem): Added blocks_to_init parameter and made
3318 public.
3319 (df_ref_record, df_bb_refs_record, df_mark_reg,
3320 df_record_exit_block_uses): Whitespace changes.
3321 (df_dump): Whitespace changes.
3322 * df.h: Some reordering to remove forward references.
3323 (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
3324 DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
3325 (df_ref_flags.DF_REF_CLOBBER): Deleted field.
3326 (dataflow.flags): New field.
3327 (df.flag): Deleted field.
3328 (df_alloc_function): Added additional bitmap parameter.
3329 (df_dependent_problem_function): New type.
3330 (df_problem.changeable_flags): New field.
3331 (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
3332 DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
3333 (df_mw_hardreg): New struct.
3334 (DF_INSN_UID_MWS): New macro.
3335 (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
3336 parameter.
3337 (df_add_problem, df_ru_add_problem, df_rd_add_problem,
3338 df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
3339 df_ri_add_problem, df_scan_add_problem): Added flags parameter.
3340 (df_set_state): Removed function.
3341 (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
3342 * df-problems.c (df_chain_dump): Removed df parameter.
3343 (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
3344 df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
3345 parameter.
3346 (df_ru_alloc, df_rd_alloc): Now resets all blocks.
3347 (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
3348 df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
3349 Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
3350 DF_REF_MUST_CLOBBER cases.
3351 (df_ru_bb_local_compute_process_def,
3352 df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
3353 df_lr_bb_local_compute, df_ur_bb_local_compute,
3354 df_chain_create_bb): Made subreg aware.
3355 (df_ru_bb_local_compute, df_rd_bb_local_compute,
3356 df_lr_bb_local_compute, df_lr_bb_local_compute,
3357 df_chain_create_bb): Cleanup to use proper macros.
3358 (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
3359 code to fixup bitvectors.
3360 (df_ri_alloc): Cleared lifetime.
3361 (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
3362 df_create_unused_note): New function.
3363 (df_ri_bb_compute, df_ri_compute): Added code to create/update
3364 REG_DEAD and REG_UNUSED notes as well as register information.
3365 (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
3366 df_chains_dump): Fixed crash if problem was never run.
3367 (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
3368 df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
3369 df_ri_add_problem): Processes flags in uniform manner.
3370 (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
3371 df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
3372 df_rd_dump, df_urec_free_bb_info): Formatting changes.
3373 (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
3374 df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
3375 df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
3376 df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
3377 df_ur_dump, df_urec_free_bb_info, df_urec_dump,
3378 df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
3379 * modulo-sched.c (sms_schedule): Added flag parameter to calls.
3380 * see.c (see_initialize_data): Ditto.
3381 * final.c (rest_of_clean_state) Added regstack_completed.
3382 * rtl.h (regstack_completed): Ditto.
3383 * reg-stack.c (regstack_completed): Ditto.
3384
3385 2006-05-19 Mike Stump <mrs@apple.com>
3386
3387 * c-tree.h (default_conversion): Remove.
3388 * c-common.h (default_conversion): Add.
3389
3390 2006-05-19 Zdenek Dvorak <dvorakz@suse.cz>
3391
3392 * tree-vrp.c (valid_value_p): New function.
3393 (adjust_range_with_scev): Fail if the value of bound is not
3394 simple.
3395
3396 2006-05-19 Richard Sandiford <richard@codesourcery.com>
3397
3398 * config/mips/linux-unwind.h: Include <asm/unistd.h>
3399 (mips_fallback_frame_state): Use syscall numbers to determine
3400 the appropriate li instruction for the current ABI. Only use
3401 __NR_sigreturn for o32.
3402
3403 2006-05-19 Nicolas Setton <setton@adacore.com>
3404
3405 * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
3406 * langhooks.c (lhd_dwarf_name): New function.
3407 * langhooks-def.h (lhd_dwarf_name): Declare.
3408 (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
3409 * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
3410 * ada/misc.c (gnat_dwarf_name): New function.
3411 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
3412
3413 2006-05-19 Richard Sandiford <richard@codesourcery.com>
3414
3415 * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
3416 libgcc2.h.
3417 (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
3418 MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if
3419 LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
3420 * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
3421 Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
3422 determine the size of Wtype, etc.
3423 * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
3424 (swfloatfuncs): New variable.
3425 (dwfloatfuncs): Likewise.
3426 (lib2funcs): Remove floating-point conversion functions from
3427 initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine
3428 the set of conversion routines needed. Allow entries to specify
3429 an object name, filename and word size. Update users accordingly.
3430 * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
3431 * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
3432
3433 Revert:
3434
3435 2006-02-08 Roger Sayle <roger@eyesopen.com>
3436
3437 PR target/22209
3438 * config/fixtfdi.c: New libgcc source file.
3439 * config/fixunstfdi.c: New source file.
3440 * config/floatditf.c: New source file.
3441 * config/floatunditf.c: New souce file.
3442 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
3443 files above instead of config/mips/_tilib.c.
3444 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
3445
3446 2006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3447
3448 * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
3449 * pa/pa-hpux11.h (LIB_SPEC): Update comment.
3450
3451 2006-05-18 Mike Stump <mrs@apple.com>
3452
3453 Fix up vla, vm and [*] sematics.
3454
3455 PR c/18740
3456 PR c/7948
3457 PR c/25802
3458 PR c/27673
3459 * c-tree.h (struct c_arg_info): Add had_vla_unspec.
3460 (c_vla_unspec_p): Add.
3461 (c_vla_type_p): Add.
3462 * c-decl.c (struct c_scope): Add had_vla_unspec.
3463 (build_array_declarator): Add support for [*].
3464 (grokdeclarator): Likewise.
3465 (grokparms): Likewise.
3466 (get_parm_info): Likewise.
3467 * c-objc-common.c (c_vla_unspec_p): Likewise.
3468 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
3469 * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
3470 typeof when argument is a variably modified type not inside sizeof or alignof.
3471 (c_parser_direct_declarator_inner): Propagate errors.
3472 (c_parser_sizeof_expression): Add support for [*].
3473 (c_parser_parms_declarator): Initialize had_vla_unspec.
3474 (c_parser_parms_list_declarator): Likewise.
3475 * c-typeck.c (c_vla_type_p): Add.
3476 (composite_type): Add support for vla compositing.
3477 (comptypes_internal): Add support for vla compatibility.
3478 (c_expr_sizeof_expr): Evaluate vla arguments.
3479 * tree.c (variably_modified_type_p): Update comment for [*].
3480
3481 2006-05-18 Michael Matz <matz@suse.de>
3482
3483 PR target/27599
3484 * config.host: Make assignments to host_xmake_file cumulative.
3485 * config.host (*-darwin*): Test $host, not $target.
3486
3487 2006-05-12 Stuart Hastings <stuart@apple.com>
3488
3489 * config/i386/i386.opt (-mstackrealign): New flag.
3490 * config/i386/i386.c (force_align_arg_pointer): New attribute.
3491 (ix86_handle_cconv_attribute): Emit error when
3492 force_align_arg_pointer attribute collides with too many regparms.
3493 (ix86_function_regparm): Limit regparms when used with
3494 force_align_arg_pointer attribute. (ix86_internal_arg_pointer):
3495 Support stack-realigning prologue in non-main functions. Emit
3496 warning for nested functions under -mstackrealign, emit error for
3497 nested functions with force_align_arg_pointer attribute.
3498 * doc/extend.texi (force_align_arg_pointer): Document it.
3499 * doc/invoke.texi (-mstackrealign): Document it.
3500
3501 2006-05-17 Kazu Hirata <kazu@codesourcery.com>
3502
3503 PR rtl-optimization/27477
3504 * combine.c (try_combine): Don't split a parallel consisting
3505 of two sets into two individual sets if both sets reference
3506 cc0.
3507
3508 2006-05-17 H.J. Lu <hongjiu.lu@intel.com>
3509
3510 * config/arm/arm.opt (target_fpe_name): Remove VarExists.
3511 * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
3512
3513 * doc/options.texi (VarExists): Updated.
3514
3515 2006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3516
3517 * unwind-dw2.c: Add declarations for uw_update_context and
3518 uw_frame_state_for.
3519 * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
3520 detected, advance frame state and context once to skip over stub.
3521
3522 2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
3523
3524 PR middle-end/20256
3525 PR middle-end/26435
3526 * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
3527 Call rewrite_into_loop_closed_ssa only when something changed.
3528 * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
3529 * lambda-code.c (can_convert_to_perfect_nest): Declared.
3530 (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
3531 Test for perfect_nest_p here. Fix formating.
3532 (replace_uses_equiv_to_x_with_y): Fix formating.
3533 (stmt_uses_op): Removed.
3534 (can_convert_to_perfect_nest): Removed loopivs parameter.
3535 Complete the test by checking the scalar dependences.
3536 (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
3537 Fix formating.
3538
3539 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
3540
3541 PR bootstrap/22541
3542 From Dan Kegel <dank@kegel.com>:
3543 * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
3544
3545 2006-05-17 Eric Botcazou <ebotcazou@adacore.com>
3546
3547 * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
3548 if the element type is variably modified without recursing.
3549
3550 2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
3551
3552 PR middle-end/27332
3553 * tree-loop-linear.c (try_interchange_loops): Test for
3554 no data dependences.
3555
3556 2006-05-17 Zdenek Dvorak <dvorakz@suse.cz>
3557
3558 PR tree-optimization/27548
3559 * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
3560 range of ssa names that appear on abnormal edges.
3561 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
3562 * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
3563
3564 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
3565
3566 PR middle-end/27620
3567 * expr.c (safe_from_p): Handle CONSTRUCTOR again.
3568
3569 2006-05-17 Jakub Jelinek <jakub@redhat.com>
3570
3571 PR middle-end/27415
3572 * tree.h (OMP_PARALLEL_COMBINED): Define.
3573 * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
3574 (new_omp_context): Add is_combined_parallel argument.
3575 (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
3576 new_omp_context caller.
3577 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
3578 Adjust gimplify_scan_omp_clauses callers.
3579 (omp_is_private): Issue errors if iteration variable is firstprivate
3580 or reduction in the current context.
3581 * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
3582 on combined parallel workshare constructs.
3583
3584 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
3585
3586 * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
3587 (gcc-options.o): New rule.
3588
3589 * optc-gen.awk: Protect variables for gcc-options.o with
3590 #ifdef GCC_DRIVER/#endif.
3591
3592 2006-05-16 Daniel Berlin <dberlin@dberlin.org>
3593
3594 Fix PR tree-optimization/27373
3595 * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
3596 (forward_propagate_addr_expr): Update call.
3597
3598 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
3599
3600 * doc/options.texi: Move the Negative option.
3601
3602 2006-05-16 Richard Guenther <rguenther@suse.de>
3603
3604 PR tree-optimization/22303
3605 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
3606 from STRING_CSTs.
3607 (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
3608 ccp_fold did not simplify the statement.
3609
3610 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
3611
3612 PR driver/26885
3613 * Makefile.in (GCC_OBJS): New.
3614 (OBJS-common): Add opts-common.o.
3615 (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
3616 (cpp$(exeext)): Likewise.
3617 (gcc.o): Also depend on opts.h.
3618 (opts-common.o): New.
3619
3620 * common.opt (gcoff): Add Negative(gdwarf-2).
3621 (gdwarf-2): Add Negative(gstabs).
3622 (gstabs): Add Negative(gstabs+).
3623 (gstabs+): Add Negative(gvms).
3624 (gvms): Add Negative(gxcoff).
3625 (gxcoff): Add Negative(gxcoff+).
3626 (gxcoff+): Add Negative(gcoff).
3627 * config/i386/i386.opt (m32): Add Negative(m64).
3628 (m64): Add Negative(m32).
3629
3630 * doc/options.texi: Document the Negative option.
3631
3632 * gcc.c: Include "opts.h".
3633 (main): Call prune_options after expandargv.
3634
3635 * optc-gen.awk: Generate common declarations for all flag
3636 variables in options.c. Output the neg_index field.
3637
3638 * opts.c (find_opt): Moved to ...
3639 * opts-common.c: Here. New file.
3640
3641 * opts.h (cl_option): Add a neg_index field.
3642 (find_opt): New.
3643 (prune_options): Likewise.
3644
3645 2006-05-16 Jakub Jelinek <jakub@redhat.com>
3646
3647 PR middle-end/27573
3648 * omp-low.c (expand_omp_parallel): Don't assert
3649 .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
3650 instead search for it.
3651
3652 PR c/27499
3653 * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
3654 is signed.
3655
3656 2006-05-16 Andreas Schwab <schwab@suse.de>
3657
3658 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
3659 defmac.
3660
3661 2006-05-15 Roger Sayle <roger@eyesopen.com>
3662
3663 PR target/26600
3664 * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
3665 integer constants other than zero are only legitimate on TARGET_64BIT.
3666 <CONST_VECTOR> Only zero vectors are legitimate.
3667 (ix86_cannot_force_const_mem): Integral and vector constants can
3668 always be put in the constant pool.
3669
3670 2006-05-16 DJ Delorie <dj@redhat.com>
3671
3672 * crtstuff.c (__dso_handle): Set section from
3673 TARGET_LBIGCC_SDATA_SECTION if defined.
3674 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
3675 * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
3676
3677 2006-05-16 Danny Smith <dannysmith@users.sourceforge.net>
3678
3679 PR target/27599
3680 * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
3681 host_xmake_file.
3682
3683 2006-05-16 Ben Elliston <bje@au.ibm.com>
3684
3685 * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
3686
3687 2006-05-15 Per Bothner <per@bothner.com>
3688
3689 * tree.c: (last_annotated_node): Use source_locus typedef.
3690 This permits bootstrapping with --enable-mapped-location.
3691
3692 2006-05-15 Zdenek Dvorak <dvorakz@suse.cz>
3693
3694 PR tree-optimization/26830
3695 * tree-into-ssa.c (struct ssa_name_info): Add age field.
3696 (info_for_ssa_name, current_info_for_ssa_name_age,
3697 blocks_to_update): New variables.
3698 (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
3699 (clear_ssa_name_info, initialize_flags_in_bb,
3700 mark_block_for_update): New functions.
3701 (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
3702 (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
3703 prepare_def_site_for): Use mark_block_for_update.
3704 (mark_def_interesting): Assert that the processed block is marked in
3705 blocks_to_update. Do not take blocks argument.
3706 (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
3707 argument.
3708 (rewrite_update_init_block, rewrite_update_stmt): Only process
3709 blocks with statements to rewrite.
3710 (delete_update_ssa): Do not clear SSA_NAME_AUX.
3711 (update_ssa): Initialize and free blocks_to_update. Do not
3712 clear flags on statements. Do not use blocks bitmap.
3713 * tree.h (SSA_NAME_AUX): Removed.
3714 (struct tree_ssa_name): Removed aux field.
3715 * print-tree.c (print_node): Do not print SSA_NAME_AUX.
3716
3717 2006-05-15 Richard Guenther <rguenther@suse.de>
3718
3719 PR tree-optimization/27603
3720 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
3721 Do computations in original type.
3722
3723 2006-05-15 Mircea Namolaru <namolaru@il.ibm.com>
3724
3725 * see.c: Code style changes such as redundant paranthesis,
3726 redundant intialization of local variables etc.
3727 (see_main): Declared now as static.
3728 * doc/invoke.texi: Update that -fsee is not enabled by
3729 default at -O3.
3730
3731 2006-05-15 Jakub Jelinek <jakub@redhat.com>
3732
3733 * omp-low.c (check_omp_nesting_restrictions): New function.
3734 (scan_omp_1): Call it.
3735
3736 PR middle-end/27416
3737 * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
3738 construct, return *VAR.
3739
3740 2006-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
3741
3742 PR rtl-optimization/27406
3743 * bt-load.c (migrate_btr_def): Skip the block having abnormal
3744 edges.
3745
3746 2006-05-14 Roger Sayle <roger@eyesopen.com>
3747
3748 PR rtl-optimization/27538
3749 * combine.c (expand_compound_operation): Call gen_lowpart
3750 before calling simplify_shift_const.
3751
3752 2006-05-14 Roger Sayle <roger@eyesopen.com>
3753
3754 PR rtl-optimization/22563
3755 * expmed.c (store_fixed_bit_field): When using AND and IOR to store
3756 a fixed width bitfield, always force the intermediates into psuedos.
3757
3758 2006-05-14 Bernhard Fischer <aldot@gcc.gnu.org>
3759
3760 PR 27501
3761 * mkconfig.sh: Use operator = instead of == for test.
3762
3763 2006-05-13 Nick Clifton <nickc@redhat.com>
3764
3765 * dwarf2out.c (dbx_reg_number): Check return value from
3766 LEAF_REG_REMAP and only use it if it is valid.
3767 (multiple_reg_loc_descriptor): Likewise.
3768
3769 2006-05-13 Richard Guenther <rguenther@suse.de>
3770
3771 * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
3772 host_xmake_file.
3773
3774 2006-05-13 Steven Bosscher <stevenb.gcc@gmail.com>
3775
3776 * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
3777 information attached to non-INSNs such as NOTEs.
3778 (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
3779
3780 2006-05-12 Andreas Krebbel <krebbel1@de.ibm.com>
3781
3782 * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
3783 On contraint.
3784 * config/s390/s390.md: Adjust comment describing On constraint.
3785
3786 2006-05-11 Jan Hubicka <jh@suse.cz>
3787
3788 * cgraphunit.c (decide_is_function_needed): Don't force always_inline
3789 to be output at -O0.
3790
3791 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3792
3793 PR middle-end/27384
3794 * fold-const.c (size_binop): Move sanity check for arguments to
3795 the beginning of the function.
3796
3797 PR middle-end/27488
3798 * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
3799 expression.
3800
3801 2006-05-11 Richard Guenther <rguenther@suse.de>
3802
3803 PR middle-end/27529
3804 * fold-const.c (fold_unary): Handle intermediate conversion
3805 to a pointer type like intermediate conversion to an integer
3806 type in folding of (T1)(T2)var to var.
3807 Match the code to the comment in the final conversion for
3808 (T1)(T2)var to (T1)var regarding to type precision. Rather
3809 than disallow T1 being of pointer type, assert that both T1
3810 and var are of pointer type or not. Make sure not to fall
3811 over the frontends lazyness wrt array to pointer decay though.
3812
3813 2006-05-10 Richard Earnshaw <rearnsha@arm.com>
3814
3815 * arm.c (arm_struct_value_rtx): Delete.
3816 (TARGET_STRUCT_VALUE_RTX): Use the default definition.
3817 (arm_init_cumulative_args): Always initialize nregs to zero.
3818
3819 2006-05-10 Richard Guenther <rguenther@suse.de>
3820
3821 PR tree-optimization/27532
3822 * tree-object-size.c (plus_expr_object_size): Fix typo.
3823
3824 2006-05-10 Kazu Hirata <kazu@codesourcery.com>
3825
3826 PR target/24949
3827 * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
3828 ashrdi_const, ashrdi3): Use a scratch register.
3829
3830 2006-05-10 Richard Guenther <rguenther@suse.de>
3831
3832 PR tree-optimization/27302
3833 * fold-const.c (operand_equal_p): For two comparisons,
3834 try comparison of one comparison code swapped if that yields
3835 the same code.
3836
3837 2006-05-10 Ben Elliston <bje@au.ibm.com>
3838
3839 * tree-pretty-print.c (pretty_print_string): No need to handle
3840 '\0' as a special character.
3841
3842 * tree.h: Include "hashtab.h".
3843 (iterative_hash_expr): Use hashval_t in its prototype.
3844 * Makefile.in (TREE_H): Add $(HASHTAB_H).
3845
3846 2006-05-09 Steve Ellcey <sje@cup.hp.com>
3847
3848 PR bootstrap/26872
3849 * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
3850 (hppa*64*-*-hpux11*): Ditto.
3851 (hppa[12]*-*-hpux11*): Ditto.
3852
3853 2006-05-09 David Edelsohn <edelsohn@gnu.org>
3854
3855 PR target/26545
3856 * config/rs6000/aix41.h (TARGET_64BIT): Define.
3857
3858 2006-05-09 Michael Matz <matz@suse.de>
3859
3860 * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
3861 host_extra_gcc_objs and host_xmake_file.
3862 (<*-*-linux*>): Don't overwrite host_xmake_file.
3863 * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
3864 * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
3865 (host_detect_local_cpu): Declare.
3866 (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
3867 * config/i386/i386.c (override_options): Handle -mtune=native
3868 as -mtune=generic.
3869 * config/i386/x-i386: New file.
3870 * config/i386/driver-i386.c: New file.
3871 * doc/invoke.texi (<i386 and x86-64 Options>): Describe
3872 cpu-type "native".
3873
3874 2006-05-09 Dirk Mueller <dmueller@suse.de>
3875 Richard Guenther <rguenther@suse.de>
3876
3877 PR middle-end/27498
3878 * fold-const.c (fold_read_from_constant_string): Relax check
3879 for matching types to matching modes.
3880
3881 2006-05-09 Zdenek Dvorak <dvorakz@suse.cz>
3882
3883 PR rtl-optimization/27335
3884 * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
3885 loops.
3886
3887 2006-05-08 Chao-ying Fu <fu@mips.com>
3888 Richard Sandiford <richard@codesourcery.com>
3889
3890 * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
3891 (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
3892 * config/mips/mips.md (UNSPEC_SCC): New constant.
3893 * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
3894 * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
3895 (mips_emit_compare): Use it.
3896 (mips_expand_vcondv2sf): New function.
3897
3898 2006-05-08 Daniel Berlin <dberlin@dberlin.org>
3899
3900 Fix PR tree-optimization/27093
3901 * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
3902 renaming when they become not-used_alone.
3903
3904 2006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3905
3906 * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
3907 relocation and relocation stubs.
3908
3909 2006-05-08 Eric Christopher <echristo@apple.com>
3910
3911 * unwind-dw2-fde-darwin.c (examine_objects): Only check data
3912 section for ppc.
3913
3914 2006-05-08 Jan Hubicka <jh@suse.cz>
3915
3916 PR middle-end/24561
3917 * cgraphunit.c (decide_is_function_needed): When not optimizing even
3918 unused static functions are needed.
3919
3920 2006-05-08 Roger Sayle <roger@eyesopen.com>
3921
3922 PR target/27158
3923 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
3924 of a reg_equiv_constant if the result is a legitimate constant.
3925
3926 2006-05-08 Uros Bizjak <uros@kss-loka.si>
3927
3928 PR target/27277
3929 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
3930 standard 80387 constants, raise the cost to prevent
3931 compress_float_constant() to generate load from memory.
3932
3933 2006-05-08 Kazu Hirata <kazu@codesourcery.com>
3934
3935 * config/arm/constraints.md (c): Fix a typo.
3936
3937 * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
3938 typos.
3939
3940 2006-05-07 H.J. Lu <hongjiu.lu@intel.com>
3941
3942 PR target/24879
3943 * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
3944 inline function.
3945 (_mm_mwait): Likewise.
3946
3947 * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
3948 "mwait".
3949 (sse3_monitor): Make it 32bit only.
3950 (sse3_monitor64): New. 64bit monitor.
3951
3952 2006-05-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3953
3954 PR target/27421
3955 * config/i386/i386.c (classify_argument): Skip fields with invalid
3956 types.
3957
3958 2006-05-07 Richard Guenther <rguenther@suse.de>
3959
3960 PR tree-optimization/27409
3961 * tree-ssa-structalias.c (get_constraint_for_component_ref):
3962 Do not try to find zero-sized subvars.
3963
3964 2006-05-07 Richard Guenther <rguenther@suse.de>
3965
3966 PR tree-optimization/27136
3967 * tree-ssa-loop-niter.c (get_val_for): Correct function
3968 comment, assert requirements.
3969 (loop_niter_by_eval): Stop processing if the iterated
3970 value did not simplify.
3971
3972 2006-05-07 Mircea Namolaru <namolaru@il.ibm.com>
3973
3974 * opts.c (flag_see): remove its setting at -O3.
3975
3976 2006-05-07 Richard Earnshaw <rearnsha@arm.com>
3977
3978 * genpeep.c (main): Make insn-peep.c depend on flags.h.
3979 * arm/constraints.md: New file.
3980 * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
3981 (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
3982 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
3983 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
3984 (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
3985 (EXTRA_MEMORY_CONSTRAINT): Likewise.
3986 * arm.md: Include constraints.md.
3987 (thumb_movsi_insn): Use satisfies_constraint_J.
3988 (movhi, movqi): Use satisfies_constraint_I.
3989
3990 2006-04-29 Anatoly Sokolov <aesok@post.ru>
3991
3992 * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
3993 for atmeg a645 device.
3994
3995 2006-05-06 Richard Guenther <rguenther@suse.de>
3996
3997 PR tree-optimization/27151
3998 * tree-vect-transform.c (vectorizable_condition): Punt on
3999 values that have a different type than the condition.
4000
4001 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
4002
4003 PR/21391
4004 * c-parser.c (c_parser_cast_expression): Only insert casts into
4005 hash table if pointer.
4006 * function.c (used_types_insert_helper): Rename from
4007 used_types_insert.
4008 (used_types_insert): Call used_types_insert_helper.
4009 * function.h (used_types_insert): Accept only one argument.
4010
4011 2006-05-05 David Edelsohn <edesohn@gnu.org>
4012
4013 * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
4014 scratch with output modifier.
4015
4016 2006-05-04 David Edelsohn <edelsohn@gnu.org>
4017
4018 PR target/26481
4019 * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
4020 with output modifier.
4021
4022 2006-05-04 Richard Sandiford <richard@codesourcery.com>
4023
4024 PR target/26765
4025 * config/mips/mips.c (mips_symbolic_address_p): Return true
4026 for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
4027 SYMBOL_GOTTPREL, and SYMBOL_TLS.
4028
4029 2006-05-04 Richard Guenther <rguenther@suse.de>
4030
4031 PR tree-optimization/14287
4032 PR tree-optimization/14844
4033 PR tree-optimization/19792
4034 PR tree-optimization/21608
4035 PR tree-optimization/27090
4036 * tree-ssa-pre.c (try_combine_conversion): New function.
4037 (compute_avail): After constructing the value-handle
4038 expression, use try_combine_conversion to combine NOP_EXPRs
4039 with previous value-handle expressions and use the result if it
4040 is available.
4041
4042 2006-05-04 Joseph S. Myers <joseph@codesourcery.com>
4043
4044 * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
4045
4046 2006-05-04 Jan Hubicka <jh@suse.cz>
4047
4048 PR middle-end/25962
4049 * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
4050
4051 2006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
4052
4053 * config/bfin/predicates.md (const01_rtx): Tell generator programs
4054 that this only matches CONST_INTs. All users changed to VOIDmode
4055 operands.
4056
4057 * config/bfin/bfin.c: Include "optabs.h".
4058 (bfin_rtx_costs): Some costs for vector operations, to allow combine
4059 to do more work.
4060 (enum bfin_builtins): Add a number of fractional and vector builtins.
4061 (bfin_init_builtins): Likewise.
4062 (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
4063 (safe_vector_operand, bfin_expand_binop_builtin,
4064 bfin_expand_unop_builtin): New functions.
4065 (bfin_expand_builtin): Handle the new builtins.
4066 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4067 __ADSPBLACKFIN__.
4068
4069 2006-05-04 Leehod Baruch <leehod@il.ibm.com>
4070
4071 * see.c: New file.
4072 * Makefile.in (OBJS-common): Add see.o.
4073 (see.o): Add dependencies.
4074 * common.opt (fsee): New flag for the see optimization was added.
4075 * opts.c (flag_see): Initialized.
4076 * passes.c (init_optimization_passes, pass_see): New pass.
4077 * rtl.h (see_main): Declaration as extern.
4078 * timevar.def (TV_SEE): New.
4079 * tree-pass.h (pass_see): Declaration as extern.
4080 * invoke.texi (-fsee): Document.
4081 * recog.c (validate_simplify_insn): New function.
4082 * recog.h (validate_simplify_insn): Declaration as extern.
4083 * df-problems.c (df_chain_dump): Check for NULL.
4084
4085 2006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
4086 Daniel Berlin <dberlin@dberlin.org>
4087
4088 * cfgrtl.c (insert_insn_bb_end_new): New function.
4089 * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
4090
4091 2006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
4092
4093 * df.h (struct web_entry): Moved from web.c.
4094 (union_defs): Declaration as extern.
4095 (unionfind_root): Likewise.
4096 (unionfind_union): Likewise.
4097 * web.c (struct web_entry): Moved to df.h.
4098 (unionfind_root): Remove static declaration.
4099 (unionfind_union): Likewise.
4100 (union_defs): Likewise and generalize to use callback function.
4101 (web_main): Update arguments for union_defs function call.
4102
4103 2006-05-04 Richard Guenther <rguenther@suse.de>
4104
4105 PR tree-optimization/26447
4106 * tree-ssa-pre.c (realify_fake_stores): For necessary loads
4107 produce SSA_NAME copies before the store stmt to avoid
4108 breaking exception handling.
4109
4110 2006-05-04 Jakub Jelinek <jakub@redhat.com>
4111
4112 PR middle-end/27388
4113 * gimplify.c (omp_is_private): If var is shared in some outer context,
4114 return false instead of true. Stop searching on parallel context
4115 boundary.
4116
4117 2006-05-03 Alexandre Oliva <aoliva@redhat.com>
4118
4119 PR java/8260
4120 * coverage.c: Use get_gcov_unsigned_t() instead of
4121 unsigned_type_node all over.
4122
4123 2006-05-02 Andrew MacLeod <amacleod@redhat.com>
4124
4125 PR tree-optimization/27381
4126 * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
4127 maintain the same immediate_use links.
4128 * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
4129 node rather than segfaulting.
4130
4131 2006-05-03 Jakub Jelinek <jakub@redhat.com>
4132
4133 PR fortran/27395
4134 * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
4135 rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN
4136 bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
4137
4138 2006-05-02 Daniel Berlin <dberlin@dberlin.org>
4139
4140 Fix PR tree-optimization/26626
4141 * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
4142 always.
4143 * tree-ssa-operands.c (access_can_touch_variable): Allow
4144 typecasting through union pointers.
4145
4146 2006-05-02 Jakub Jelinek <jakub@redhat.com>
4147
4148 PR c++/26943
4149 * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
4150 (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
4151 to find if var will be a global variable even in the nested context.
4152 (omp_copy_decl): Only check for global variable at the end, it might
4153 be overridden in outer contexts.
4154 (scan_sharing_clauses): For global variables don't create a field.
4155 (lower_rec_input_clauses): Do nothing for global shared variables.
4156 Emit a barrier at the end of ILIST if there were any decls in both
4157 firstprivate and lastprivate clauses.
4158 (lower_send_clauses): Do nothing for global variables except for
4159 COPYIN.
4160
4161 2006-05-02 Zdenek Dvorak <dvorakz@suse.cz>
4162
4163 * tree.c (unsigned_type_for, signed_type_for): Make sure a type
4164 of the correct signedness is returned.
4165
4166 2006-05-02 Jeff Law <law@redhat.com>
4167
4168 PR tree-optimization/27364
4169 * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
4170 multiply expressions.
4171
4172 2006-05-02 Tom Tromey <tromey@redhat.com>
4173
4174 * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
4175
4176 2006-05-02 Kazu Hirata <kazu@codesourcery.com>
4177
4178 PR target/27387
4179 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
4180 -mthumb -fPIC are used.
4181
4182 2006-05-02 Stanislaw Skowronek <skylark@linux-mips.org>
4183 Joshua Kinard <kumba@gentoo.org>
4184
4185 PR target/25871
4186 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
4187 with 64-bit pointers.
4188
4189 2006-05-02 Paul Brook <paul@codesourcery.com>
4190
4191 * config/arm/arm.c (add_minipool_forward_ref): Check if insn
4192 and pool overlap.
4193 (create_fix_barrier): Check that a suitable barrier location is
4194 found.
4195 (arm_reorg): Include ftmp->address in allowable range of addresses.
4196
4197 2006-05-02 David Billinghurst <David.Billinghurst@riotinto.com>
4198
4199 PR ada/27366
4200 * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
4201 on Cygwin.
4202
4203 2006-05-02 Jakub Jelinek <jakub@redhat.com>
4204
4205 PR middle-end/27337
4206 * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
4207 around RESULT_DECL for result passed by reference.
4208 (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
4209 * omp-low.c (use_pointer_for_field): Don't look at
4210 DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
4211 (scan_omp_1): Call remap_decl on RESULT_DECLs.
4212 (lower_rec_input_clauses): Don't allocate VLA memory for the second
4213 time or var for passing by reference for
4214 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of
4215 TREE_ADDRESSABLE variables when passing by reference.
4216
4217 * omp-low.c (dump_omp_region): Fix output formatting.
4218
4219 PR middle-end/27328
4220 * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
4221 (expand_omp_parallel): Likewise.
4222 * tree-cfg.c (move_sese_region_to_fn): Likewise.
4223
4224 PR middle-end/27325
4225 * omp-low.c (lower_omp_sections): Call maybe_catch_exception
4226 on statement list containing also constructors and destructors.
4227 (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
4228
4229 PR middle-end/27310
4230 * except.c (duplicate_eh_regions): Fix clearing of
4231 cfun->eh->region_array entries.
4232
4233 2006-05-01 DJ Delorie <dj@redhat.com>
4234
4235 * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
4236 build!=host.
4237 (gcc_cv_objdump): Likewise.
4238 * configure: Regenerated.
4239
4240 2006-05-01 Kazu Hirata <kazu@codesourcery.com>
4241
4242 PR target/27374
4243 * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
4244 templates for case 3 and 4.
4245
4246 2006-05-01 DJ Delorie <dj@redhat.com>
4247
4248 * vec.c: Include bconfig.h when appropriate.
4249 * Makefile.in (build/vec.o): Adjust dependencies.
4250 * mkconfig.sh: Make sure config.h isn't used for build machine
4251 compiles.
4252
4253 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4254
4255 * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
4256 variables.
4257 (mark_phi_for_rewrite): New function.
4258 (insert_phi_nodes_for, mark_use_interesting): Call
4259 mark_phi_for_rewrite.
4260 (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
4261 (update_ssa): Initialize and free phis_to_rewrite.
4262
4263 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4264
4265 PR rtl-optimization/27291
4266 * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
4267 folded to a constant.
4268
4269 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4270
4271 PR tree-optimization/27283
4272 * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
4273 not whole # of iteration descriptions.
4274 (niter_for_exit): Return just # of iterations. Fail if # of iterations
4275 uses abnormal ssa name.
4276 (niter_for_single_dom_exit): Ditto.
4277 (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
4278 return just the number of iterations.
4279
4280 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4281
4282 PR tree-optimization/27144
4283 * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
4284 (record_estimate): Only record constant upper bound.
4285 (infer_loop_bounds_from_undefined): Call
4286 compute_estimated_nb_iterations just once.
4287 (proved_non_wrapping_p): Renamed to ...
4288 (n_of_executions_at_most): ... this. Expect bound to be a constant.
4289 (convert_step_widening, scev_probably_wraps_p): Call
4290 n_of_executions_at_most instead of proved_non_wrapping_p.
4291 (substitute_in_loop_info): Do not replace values in bounds.
4292 * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update
4293 comments.
4294
4295 2006-05-01 Richard Henderson <rth@redhat.com>
4296
4297 PR c/27358
4298 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
4299 c_parser_skip_to_pragma_eol. Convert to switch statement. Handle
4300 CPP_PRAGMA.
4301
4302 2006-05-01 Roger Sayle <roger@eyesopen.com>
4303
4304 * c-typeck.c (parser_build_binary_op): Don't call the function
4305 unsigned_conversion_warning to spot operand/result type overflow.
4306 (build_binary_op): Instead, call convert_and_check instead of
4307 convert to report the problem when the operands are promoted.
4308 * c-common.c (unsigned_conversion_warning): Make static.
4309 * c-common.h (unsigned_conversion_warning): Delete prototype.
4310
4311 2006-05-01 Richard Guenther <rguenther@suse.de>
4312
4313 PR tree-optimization/26726
4314 * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
4315 problem ...
4316 (find_interesting_uses_address): ... we work around here
4317 by folding INDIRECT_REFs in the substituted base.
4318
4319 2006-05-01 Diego Novillo <dnovillo@redhat.com>
4320
4321 * omp-low.c (dump_omp_region): Add newlines.
4322
4323 2006-04-30 Roger Sayle <roger@eyesopen.com>
4324
4325 * common.opt (Woverflow): New command line option.
4326 * c-common.c (constant_expression_warning): Check warn_overflow.
4327 (overflow_waring): Pass OPT_Woverflow to warning.
4328 (unsigned_conversion_warning): Likewise.
4329 (convert_and_check): Likewise.
4330 * doc/invoke.texi: Document new command line option.
4331
4332 2006-04-30 David Edelsohn <edelsohn@gnu.org>
4333
4334 * config/rs6000/rs6000.c (rs6000_override_options): Enable
4335 TARGET_NO_FP_IN_TOC for section anchors.
4336 (optimization_options): Enable section anchors for all
4337 non-"Objective" languages.
4338
4339 2006-04-28 Eric Christopher <echristo@apple.com>
4340
4341 * config/darwin-c.c (darwin_ms_struct): Move this
4342 (darwin_set_default_type_attributes): and this...
4343 * config/darwin.c: ... here.
4344 * config/darwin.h (darwin_ms_struct): Declare.
4345
4346 2006-04-28 Andrew MacLeod <amacleod@redhat.com>
4347
4348 * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
4349
4350 2006-04-28 Roger Sayle <roger@eyesopen.com>
4351
4352 PR c/25309
4353 * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
4354 (push_array_bounds): Delete prototype. Change BOUNDS argument to
4355 an unsigned HOST_WIDE_INT.
4356 (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
4357 array index.
4358 (really_start_incremental_init): No need to call convert because
4359 bitsize_zero_node is already of type bitsizetype.
4360 (push_init_level): Extract the value of constructor_index as an
4361 unsigned HOST_WIDE_INT quantity, using tree_low_cst.
4362 (process_init_element): Likewise.
4363
4364 2006-04-28 Joseph S. Myers <joseph@codesourcery.com>
4365
4366 * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
4367 value before passing to make_relative_prefix.
4368
4369 2006-04-28 Alan Modra <amodra@bigpond.net.au>
4370
4371 PR middle-end/27260
4372 * builtins.c (expand_builtin_memset): Expand val in original mode.
4373
4374 2006-04-27 Eric Christopher <echristo@apple.com>
4375
4376 * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
4377 with #ifndef/#endif.
4378 * config/darwin-c.c (darwin_ms_struct): New.
4379 (darwin_pragma_ms_struct): Ditto.
4380 (darwin_set_default_type_attributes): Ditto.
4381 * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
4382 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
4383 Register ms_struct pragma.
4384 * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
4385 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
4386 * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
4387 darwin_set_default_type_attributes if TARGET_MACHO.
4388
4389 2006-04-27 Andrew MacLeod <amacleod@redhat.com>
4390
4391 PR tree-optimization/26854
4392 * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
4393 * doc/tree-ssa.texi: Update immuse iterator documentation.
4394 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
4395 * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
4396 * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
4397 first_safe_imm_use, next_safe_imm_use): Remove.
4398 (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal.
4399 (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal.
4400 (move_use_after_head): New. Helper function to sort immuses in a stmt.
4401 (link_use_stmts_after): New. Link all immuses in a stmt consescutively.
4402 (first_imm_use_stmt): New. Get first stmt in an immuse list.
4403 (next_imm_use_stmt): New. Get next stmt in an immuse list.
4404 (first_imm_use_on_stmt): New. Get first immuse on a stmt.
4405 (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt.
4406 (next_imm_use_on_stmt): New. Move to next immuse on a stmt.
4407 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
4408 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
4409 (perfect_nestify): Use new iterator.
4410 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
4411 iterator.
4412 * tree-flow.h (struct immediate_use_iterator_d): Add comments.
4413 (next_imm_name): New field in struct immediate_use_iterator_d.
4414 (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
4415 (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
4416 FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
4417 * tree-cfg.c (replace_uses_by): Use new iterator.
4418 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
4419 * tree-ssa-operands.c (correct_use_link): Remove.
4420 (finalize_ssa_use_ops): No longer call correct_use_link.
4421
4422 2006-04-27 Stuart Hastings <stuart@apple.com>
4423
4424 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
4425 * config/t-darwin (crt3.o): Use it.
4426 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
4427 'pmode', use Pmode instead of SImode for SYMBOL_REF.
4428 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
4429 call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
4430 call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
4431 support.
4432
4433 2006-04-27 Roger Sayle <roger@eyesopen.com>
4434
4435 * expmed.c (store_fixed_bit_field): If we're not optimizing for
4436 size, force the intermediate into a new pseudo rather instead of
4437 performing both a bitwise AND and a bitwise IOR in memory.
4438
4439 2006-04-27 Richard Guenther <rguenther@suse.de>
4440
4441 PR rtl-optimization/26685
4442 * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
4443 this one "max-flow-memory-locations".
4444
4445 2006-04-27 Richard Guenther <rguenther@suse.de>
4446
4447 PR tree-optimization/25148
4448 * tree-vrp.c (compare_values): Remove code dealing with
4449 comparisons against type min/max value. Honour overflow
4450 and negative constants in code dealing with comparisons
4451 of plus and minus expressions.
4452 (value_inside_range): Use fold_binary with LE_EXPR and
4453 GE_EXPR rather than compare_values.
4454
4455 2006-04-27 Dirk Mueller <dmueller@suse.de>
4456
4457 * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
4458 prototype for SSE.
4459
4460 2006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com>
4461
4462 * basic-block.h (safe_insert_insn_on_edge): Removed.
4463 * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
4464
4465 2006-04-26 David Edelsohn <edelsohn@gnu.org>
4466 Paolo Bonzini <bonzini@gnu.org>
4467
4468 PR middle-end/27282
4469 * combine.c (simplify_and_const_int_1): Use gen_int_mode.
4470 (simplify_and_const_int): Same.
4471
4472 2006-04-26 Aldy Hernandez <aldyh@redhat.com>
4473
4474 * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
4475
4476 2006-04-26 Jakub Jelinek <jakub@redhat.com>
4477
4478 PR c/26171
4479 * cgraph.c (cgraph_varpool_finalize_decl): Don't call
4480 cgraph_varpool_assemble_pending_decls if -fopenmp, unless
4481 cgraph_global_info_ready.
4482
4483 PR middle-end/26913
4484 * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
4485
4486 PR c/25996
4487 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
4488 either decl or init is error_mark_node.
4489
4490 PR middle-end/25989
4491 * tree-flow.h (struct omp_region): Add sched_kind.
4492 * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
4493 instead of extracting omp for data.
4494 (expand_omp_for): Save extracted sched_kind.
4495
4496 2006-04-25 Roger Sayle <roger@eyesopen.com>
4497
4498 * expmed.c (store_bit_field): Also check whether the bitsize is
4499 valid for the machine's "insv" instruction before moving the
4500 target into a pseudo for use with the insv.
4501 * config/i386/predicates.md (const8_operand): New predicate.
4502 * config/i386/i386.md (extv, extzv, insv): Use the new
4503 const8_operand predicate where appropriate.
4504
4505 2006-04-25 DJ Delorie <dj@redhat.com>
4506
4507 * doc/install.texi (Specific): Clarify that this is not a list of
4508 supported hosts or targets.
4509
4510 2006-04-25 Richard Sandiford <richard@codesourcery.com>
4511
4512 PR rtl-optimization/26725
4513 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
4514 block's BB_DIRTY flag.
4515
4516 2006-04-25 Geoffrey Keating <geoffk@apple.com>
4517
4518 * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
4519 are no branches.
4520
4521 * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
4522 to print an integer.
4523
4524 2006-04-25 David Edelsohn <edelsohn@gnu.org>
4525
4526 * varasm.c (align_variable): New function.
4527 (get_block_for_decl): Apply align_variable to DECL before
4528 calculating section information.
4529 (assemble_variable): Split out alignment computation.
4530
4531 2006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
4532
4533 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
4534 machines.
4535
4536 2006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
4537
4538 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
4539 MODE_PARTIAL_INT mode.
4540 * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
4541 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
4542 for CONST_INTs.
4543 (hard_regno_mode_ok): V2PDImode is ok for accumulators.
4544 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
4545 V2PDImode.
4546 * config/bfin/predicates.md (const01_operand, vec_shift_operand):
4547 New predicates.
4548 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
4549 New constants.
4550 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
4551 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
4552 MACFLAG_IH): Likewise.
4553 (movstricthi_1): Renamed from "*movstricthi".
4554 (load_accumulator, load_accumulator_pair, movsi_insv, insv,
4555 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
4556 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
4557 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
4558 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
4559 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
4560 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
4561 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
4562 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
4563 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
4564 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
4565 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
4566 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
4567 flag_macv2hi_parts, flag_macv2hi_parts_acconly,
4568 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
4569
4570 * doc/rtl.texi (ss_ashift): Improve wording.
4571
4572 2006-04-24 Geoffrey Keating <geoffk@apple.com>
4573
4574 * dwarf2out.c (verify_marks_clear): New.
4575 (prune_unused_types): Call verify_marks_clear initially, not
4576 prune_unmark_dies.
4577
4578 2006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
4579
4580 * rtl.def (SS_ASHIFT, SS_NEG): New codes.
4581 * doc/rtl.texi: Document them.
4582 * simplify-rtx.c (simplify_unary_operation,
4583 simplify_binary_operation_1): Don't abort when we see them.
4584
4585 2006-04-24 Mark Mitchell <mark@codesourcery.com>
4586
4587 Revert:
4588 2006-04-23 Mark Mitchell <mark@codesourcery.com>
4589 * configure.ac: Completely disregard languages that are not
4590 enabled.
4591 * configure: Regenerated.
4592
4593 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
4594 Richard Guenther <rguenther@suse.de>
4595
4596 PR tree-optimization/27236
4597 * tree-inline.c (copy_body_r): Make sure to copy
4598 TREE_THIS_VOLATILE flag.
4599
4600 2006-04-24 Richard Guenther <rguenther@suse.de>
4601
4602 PR middle-end/26869
4603 * tree-complex.c (update_parameter_components): Don't handle
4604 unused parameters which have no default def.
4605
4606 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
4607 Richard Guenther <rguenther@suse.de>
4608
4609 PR tree-optimization/27218
4610 * tree-inline.c (expand_call_inline): Strip useless type
4611 conversions for the return slot address.
4612
4613 2006-04-24 Richard Guenther <rguenther@suse.de>
4614
4615 * cfgloop.h (struct loops): Remove unused field array. Reorder
4616 state after num.
4617 (LOOP_PREFETCH): Remove.
4618
4619 2006-04-24 Richard Guenther <rguenther@suse.de>
4620
4621 PR tree-optimization/22525
4622 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
4623 variable, adjust types of generated expressions.
4624
4625 2006-04-23 H.J. Lu <hongjiu.lu@intel.com>
4626
4627 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
4628 (tree-vect-patterns.o): Likewise.
4629 (jump.o): Likewise.
4630 (cselib.o): Likewise.
4631 (loop-doloop.o): Likewise.
4632 (regclass.o): Likewise.
4633 (reload1.o): Likewise.
4634 (explow.o): Replace target.h with $(TARGET_H).
4635 (ipa-prop.o): Likewise.
4636 (ipa-cp.o): Likewise.
4637 (ipa-inline.o): Likewise.
4638 (reorg.o): Likewise.
4639 (reg-stack.o): Likewise.
4640
4641 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
4642
4643 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
4644
4645 2006-04-23 Mark Mitchell <mark@codesourcery.com>
4646
4647 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
4648
4649 * configure.ac: Completely disregard languages that are not
4650 enabled.
4651 * configure: Regenerated.
4652
4653 PR c++/26534
4654 * c-common.h (c_build_bitfield_integer_type): Declare.
4655 * c-decl.c (c_build_bitfield_integer_type): Move to ...
4656 * c-common.c (c_build_bitfield_integer_type): ... here.
4657
4658 2006-04-23 Roger Sayle <roger@eyesopen.com>
4659
4660 PR target/21283
4661 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
4662 a SImode SUBREG of a floating point register after no_new_pseudos.
4663
4664 2006-04-23 Roger Sayle <roger@eyesopen.com>
4665
4666 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
4667 identify potentially eliminable registers to additionally catch
4668 VIRTUAL_INCOMING_ARGS_REGNUM.
4669 (addsi3): Update the conditions on when to use addsi_small_int.
4670
4671 2006-04-23 Roger Sayle <roger@eyesopen.com>
4672
4673 PR target/16641
4674 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
4675 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
4676 rtx to stack_pointer_rtx or frame_pointer_rtx directly.
4677
4678 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
4679
4680 * fold-const.c (range_predecessor): Use operand_equal_p
4681 as the predicate for equality.
4682 (range_successor): Likewise.
4683
4684 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
4685
4686 Revert:
4687 * config/soft-fp/op-common.h: Fix a typo.
4688
4689 2006-04-22 Frank Ch. Eigler <fche@redhat.com>
4690
4691 PR libmudflap/26864
4692 * common.opt (flag_mudflap_threads): Overload flag_mudflap.
4693 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
4694
4695 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
4696
4697 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
4698 Fix comment typos.
4699 * doc/tm.texi: Fix a typo.
4700
4701 2006-04-21 Geoffrey Keating <geoffk@apple.com>
4702
4703 * dwarf2out.c (struct die_struct): Document that die_sib makes
4704 a circular linked list.
4705 (FOR_EACH_CHILD): New.
4706 (reverse_die_lists): Delete.
4707 (reverse_all_dies): Delete.
4708 (add_dwarf_attr): Correct documentation.
4709 (remove_child_with_prev): New.
4710 (remove_child_TAG): Update for change to die_struct, use
4711 remove_child_with_prev.
4712 (add_child_die): Update for change to die_struct.
4713 (splice_child_die): Use remove_child_with_prev and add_child_die.
4714 (print_die): Use FOR_EACH_CHILD.
4715 (die_checksum): Likewise.
4716 (assign_symbol_names): Likewise.
4717 (output_location_lists): Likewise.
4718 (build_abbrev_table): Likewise.
4719 (calc_die_sizes): Likewise.
4720 (mark_dies): Likewise.
4721 (unmark_dies): Likewise.
4722 (unmark_all_dies): Likewise.
4723 (output_die): Likewise.
4724 (prune_unused_types_mark): Likewise.
4725 (prune_unused_types_walk): Likewise.
4726 (same_die_p): Update for change to die_struct.
4727 (break_out_includes): Likewise.
4728 (prune_unused_types_prune): Likewise.
4729 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
4730 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
4731 it's already clear.
4732 (dwarf2out_finish): Don't call reverse_all_dies.
4733
4734 2006-04-21 Eric Christopher <echristo@apple.com>
4735
4736 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
4737 in comments and function names.
4738
4739 2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4740
4741 PR c/25875
4742 * c-typeck.c (digest_init): Robustify.
4743
4744 * c-typeck.c (pop_init_level): Simplify.
4745
4746 2006-04-21 Steve Ellcey <sje@cup.hp.com>
4747
4748 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
4749
4750 2006-04-21 Paul Brook <paul@codesourcery.com>
4751
4752 * config/arm/arm.c (arm_override_options): Error on iWMMXt and
4753 hardware floating point.
4754
4755 2006-04-21 David Edelsohn <edelsohn@gnu.org>
4756
4757 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
4758 NON_FLOAT_REGS.
4759
4760 2006-04-21 Nick Clifton <nickc@redhat.com>
4761
4762 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
4763 OPT_EXTRA_PARTS.
4764
4765 2006-04-21 Alan Modra <amodra@bigpond.net.au>
4766
4767 PR target/27230
4768 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
4769 C++ lang type in traceback table for Objective-C++.
4770
4771 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
4772
4773 2006-04-20 H.J. Lu <hongjiu.lu@intel.com>
4774
4775 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
4776
4777 2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4778
4779 PR mudflap/26789
4780 * tree-mudflap.c (mudflap_finish_file): Skip function when there
4781 were errors. Remove check for erroneous objects.
4782
4783 2006-04-20 Jeff Law <law@redhat.com>
4784
4785 PR tree-optimization/26854
4786 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
4787 checking for zero or one use.
4788 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
4789 * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
4790 * tree-ssa-reassoc.c (negate_value): Similarly.
4791 (reassociate_bb): Similarly.
4792
4793 2006-04-20 Jakub Jelinek <jakub@redhat.com>
4794
4795 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
4796 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
4797 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
4798
4799 2006-04-20 Alan Modra <amodra@bigpond.net.au>
4800
4801 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
4802 fp regs if the last fp arg doesn't fit in regs.
4803
4804 2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
4805
4806 PR target/27182
4807 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
4808 that the last insn has the REG_INC note.
4809
4810 2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
4811 Nathan Sidwell <nathan@codesourcery.com>
4812
4813 PR c/26774
4814 * stor-layout.c (update_alignment_for_field): Do not align
4815 ERROR_MARK nodes.
4816 (place_union_field): Place union field at the start of the union.
4817 (place_field): Move ERROR_MARK check later, and use the current
4818 allocation position to maintain monotonicity.
4819
4820 2006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
4821
4822 * dominance.c: Include timevar.h.
4823 (calculate_dominance_info): Use TV_DOMINANCE.
4824 * timevar.def (TV_DOMINANCE): New timevar.
4825 * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
4826
4827 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
4828
4829 PR rtl-optimization/14261
4830 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
4831 move would be an INSV insn.
4832 (noce_process_if_block): Don't optimize if the destination is a
4833 ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
4834
4835 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
4836
4837 * config/s390/s390.md: Add comments with the instructions emitted
4838 by an insn pattern if macros are used.
4839
4840 2006-04-19 Alan Modra <amodra@bigpond.net.au>
4841
4842 PR rtl-optimization/26026
4843 * fold-const.c (fold_binary): Optimize div and mod where the divisor
4844 is a known power of two shifted left a variable amount.
4845
4846 2006-04-18 Geoffrey Keating <geoffk@apple.com>
4847
4848 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
4849 to hash table twice when the debug_str section has SECTION_MERGE.
4850
4851 2006-04-18 Joseph S. Myers <joseph@codesourcery.com>
4852
4853 * config/soft-fp: New directory. From glibc.
4854 * config/soft-fp/t-softfp: New.
4855 * config/soft-fp/README: New.
4856 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
4857 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
4858 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
4859 (LIBGCC_DEPS): Add $(SFP_MACHINE).
4860 * config.gcc: Use rs6000/t-fprules-fpbit or
4861 rs6000/t-fprules-softfp and soft-fp/t-softfp together with
4862 rs6000/t-fprules.
4863 * config/rs6000/sfp-machine.h: New. Based on glibc.
4864 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
4865 New.
4866 * config/rs6000/t-fprules: Remove fp-bit rules.
4867 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
4868 * config/rs6000/t-linux64: Likewise. Remove duplicates from
4869 LIB2FUNCS_EXTRA. Remove fp-bit rules.
4870 (softfp_wrap_start, softfp_wrap_end): New.
4871
4872 2006-04-18 DJ Delorie <dj@redhat.com>
4873
4874 * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
4875
4876 2006-04-18 Devang Patel <dpatel@apple.com>
4877
4878 * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
4879
4880 2006-04-18 Nick Clifton <nickc@redhat.com>
4881
4882 * config/sh/t-symbian: Add rule to build sh-c.o
4883 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
4884 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
4885 (sh_symbian_encode_section_info): Likewise.
4886
4887 2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
4888
4889 * builtins.c (expand_builtin_strcmp): Cover label definition of
4890 do_libcall with HAVE_cmpstrnsi.
4891
4892 2006-04-18 Kazu Hirata <kazu@codesourcery.com>
4893
4894 * function.c (temp_slots_at_level, max_slot_level): Use VEC
4895 instead of VARRAY.
4896 * function.h (temp_slot_p): New.
4897 (function): Change the type of x_used_temp_slots to
4898 VEC(temp_slot_p,gc) *.
4899
4900 2006-04-18 Nick Clifton <nickc@redhat.com>
4901
4902 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
4903 flag_strength_reduce.
4904
4905 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
4906
4907 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
4908
4909 PR target/27117
4910
4911 Partial revert of revision 112637
4912 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
4913 Dale Johannesen <dalej@apple.com>
4914
4915 PR target/19653
4916 * regclass.c (struct reg_pref): Update documentation.
4917 (regclass): Set prefclass to NO_REGS if memory is the best option.
4918 (record_reg_classes): Cope with a prefclass set to NO_REGS.
4919
4920 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
4921
4922 PR tree-optimization/26821
4923 * tree-ssa-math-opts.c (get_constant_one): New.
4924 (insert_reciprocals): Use it.
4925
4926 2006-04-17 Geoffrey Keating <geoffk@apple.com>
4927
4928 * dwarf2out.c (free_AT): Delete.
4929 (remove_AT): Update string ref counts.
4930 (remove_child_TAG): Don't call free_die.
4931 (free_die): Delete.
4932 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
4933 or DW_TAG_GNU_EINCL.
4934 (prune_unused_types_walk_attribs): Reset string refcounts.
4935 (prune_unused_types_update_strings): New.
4936 (prune_unused_types_prune): Don't make unnecessary stores. Don't
4937 call free_die. Do call prune_unused_types_update_strings.
4938 (prune_unused_types): Empty debug_str_hash.
4939
4940 2006-04-17 Roger Sayle <roger@eyesopen.com>
4941
4942 * expr.c (expand_assignment): Optimize away no-op moves where the
4943 source and destination are equal and have no side-effects.
4944
4945 2006-04-17 Richard Guenther <rguenther@suse.de>
4946
4947 PR target/26826
4948 * reload.c (push_reload): Guard calls to get_secondary_mem
4949 for memory subregs.
4950
4951 2006-04-16 Kazu Hirata <kazu@codesourcery.com>
4952
4953 * alias.c (reg_base_value, old_reg_base_value): Change the
4954 type to VEC(rtx,gc) *.
4955 (REG_BASE_VALUE, find_base_value, record_set,
4956 init_alias_analysis): Use VEC instead of VARRAY.
4957
4958 * alias.c (alias_sets): Change the type to
4959 VEC(alias_set_entry,gc) *.
4960 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
4961 VEC instead of VARRAY.
4962 (last_alias_set): Remove.
4963
4964 * cgraph.h (cgraph_edge_p): New.
4965 Update the prototype of cgraph_function_versioning.
4966 * cgraphunit.c (cgraph_copy_node_for_versioning,
4967 cgraph_function_versioning): Use VEC instead of VARRAY.
4968 * ipa-cp.c (ipcp_insert_stage): Likewise.
4969
4970 2006-04-16 Roger Sayle <roger@eyesopen.com>
4971
4972 PR target/26961
4973 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
4974 "A op B" or "A op C", we may need to convert A to the type of B and C.
4975
4976 2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
4977
4978 * target.h (struct gcc_target): Add mode_rep_extended.
4979 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
4980 (init_num_sign_bit_copies_in_rep): Initialize it using
4981 mode_rep_extended.
4982 (truncate_to_mode): Use it.
4983 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
4984 * targhooks.h (default_mode_rep_extended): Declare it.
4985 * targhooks.c (default_mode_rep_extended): Define it.
4986 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
4987 default_mode_rep_extended.
4988 (TARGET_INITIALIZER): Include it.
4989 * doc/tm.texi (Misc): Document it.
4990 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
4991 (mips_truncated_to_mode): New function.
4992
4993 2006-04-16 Roger Sayle <roger@eyesopen.com>
4994
4995 PR middle-end/25474
4996 * expr.c (compress_float_constant): Copy the narrow constant into
4997 a new pseudo before extending it to its final width.
4998
4999 2006-04-16 Roger Sayle <roger@eyesopen.com>
5000 Andrew Pinski <pinskia@gcc.gnu.org>
5001 Dale Johannesen <dalej@apple.com>
5002
5003 PR target/24076
5004 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
5005 special case code to implement V8HImode and V16QImode with SSE2.
5006
5007 2006-04-15 Roger Sayle <roger@eyesopen.com>
5008
5009 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
5010 trees are constructed with a suitable tree type.
5011
5012 2006-04-15 Roger Sayle <roger@eyesopen.com>
5013
5014 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
5015 (integer_onep): Likewise.
5016 (integer_all_onesp): Likewise.
5017 (integer_pow2p): Likewise.
5018 (integer_nonzerop): Likewise.
5019 (real_zerop): Likewise.
5020 (real_onep): Likewise.
5021 (real_twop): Likewise.
5022 (real_minus_onep): Likewise.
5023 (int_size_in_bytes): Likewise.
5024 (host_integerp): Likewise.
5025
5026 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
5027
5028 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
5029 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
5030 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
5031
5032 * tree-ssa-structalias.h (alias_info): Remove num_references.
5033
5034 2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5035
5036 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
5037 (output_bvb patterns): Likewise.
5038 * pa.c (output_bb): Use 'bb' insn for long branch case.
5039 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
5040 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
5041 1. Correct length operand for alternatives 1 and 2.
5042 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
5043 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
5044
5045 2006-04-14 Roger Sayle <roger@eyesopen.com>
5046
5047 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
5048 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
5049 were accidentally reverted by r112959.
5050
5051 2006-04-15 Jakub Jelinek <jakub@redhat.com>
5052
5053 PR middle-end/26823
5054 * except.h (eh_region_outermost): New prototype.
5055 * except.c (eh_region_outermost): New function.
5056 * tree-cfg.c (find_outermost_region_in_block): Use it.
5057
5058 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
5059
5060 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
5061 of VARRAY.
5062 * reload1.c (reg_equiv_memory_loc_varray): Rename to
5063 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
5064 (init_reload, reload): Use VEC instead of VARRAY.
5065 * reload.h: Update the prototype for
5066 reg_equiv_memory_loc_varray.
5067
5068 2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
5069 Eric Botcazou <ebotcazou@libertysurf.fr>
5070
5071 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
5072 register save area.
5073
5074 2005-04-13 Uros Bizjak <uros@kss-loka.si>
5075
5076 PR middle-end/27134
5077 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
5078 to expand fallback builtin function call.
5079
5080 2006-04-14 Alan Modra <amodra@bigpond.net.au>
5081
5082 PR middle-end/27095
5083 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
5084 and emit libcall here in case the builtin fails.
5085 (expand_builtin_strcmp): Always emit the libcall here on failure.
5086
5087 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
5088
5089 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
5090 * flow.c (reg_n_info): Change the type to
5091 VEC(reg_info_p,heap) *.
5092 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
5093 instead of VARRAY.
5094 * regs.h (reg_info_p): New.
5095 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
5096 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
5097 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
5098 instead of VARRAY.
5099
5100 2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
5101
5102 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
5103 defaulting to 100.
5104 * params.h (MAX_SCHED_READY_INSNS): New macro.
5105 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
5106 past MAX_SCHED_READY_INSNS during the first scheduling pass.
5107 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
5108 the ready list for 1 cycle during the first scheduling pass.
5109 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
5110
5111 2006-04-13 Richard Henderson <rth@redhat.com>
5112
5113 PR libgomp/26651
5114 * gimple-low.c (lower_omp_directive): Remove dead code.
5115 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
5116 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
5117 * omp-low.c (struct omp_region): Move to tree-flow.h.
5118 (root_omp_region): Export.
5119 (omp_regions, lookup_omp_region): Remove.
5120 (determine_parallel_type): Update for struct omp_region changes.
5121 (dump_omp_region): Dump regions with block numbers.
5122 (new_omp_region): Take type and block instead of stmt; malloc
5123 instead of ggc.
5124 (free_omp_region_1, free_omp_regions): New.
5125 (expand_parallel_call): Take entry_stmt as argument; update for
5126 changes to omp_region.
5127 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
5128 (remove_exit_barriers): New.
5129 (expand_omp_parallel): Update for struct omp_region changes.
5130 (expand_omp_synch): Likewise.
5131 (expand_omp): Likewise.
5132 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
5133 (expand_omp_for_static_chunk): Likewise.
5134 (expand_omp_for): Likewise.
5135 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
5136 (expand_omp_sections): Similarly, with GOMP_sections_end.
5137 (expand_omp_single): New.
5138 (build_omp_regions_1): Update for OMP_CONTINUE.
5139 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
5140 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
5141 OMP_SECTIONS_SECTIONS.
5142 (lower_omp_single_simple): Don't emit barrier here.
5143 (lower_omp_single_copy): Likewise.
5144 (lower_omp_single): Fix bindings, and lower to straightline now.
5145 (lower_omp_master, lower_omp_ordered): Likewise.
5146 (lower_omp_critical): Likewise.
5147 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
5148 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
5149 omp edges, free it afterward.
5150 (make_omp_sections_edges): Remove.
5151 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
5152 (move_stmt_r): Handle OMP_CONTINUE.
5153 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
5154 statement pointers to basic blocks. Add type member.
5155 (root_omp_region, new_omp_region, free_omp_regions): Declare.
5156 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
5157 * tree-inline.c (estimate_num_insns_1): Likewise.
5158 * tree-pretty-print.c (dump_generic_node): Likewise.
5159 * tree-ssa-operands.c (get_expr_operands): Likewise.
5160 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
5161 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
5162 (OMP_CONTINUE): New.
5163 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
5164 (OMP_SECTIONS_SECTIONS): Remove.
5165 (OMP_SECTION_LAST): New.
5166 (OMP_RETURN_NOWAIT): New.
5167
5168 2006-04-13 Roger Sayle <roger@eyesopen.com>
5169
5170 * fold-const.c (native_encode_vector, native_interpret_real):
5171 Correct obvious mistakes in the previous check-in.
5172
5173 2006-04-13 Roger Sayle <roger@eyesopen.com>
5174
5175 * fold-const.c (native_encode_expr): New function to encode
5176 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
5177 or VECTOR_CST into a specified buffer.
5178 (native_encode_int): New function.
5179 (native_encode_real): New function.
5180 (native_encode_complex): New function.
5181 (native_encode_vector): New function.
5182 (native_interpret_expr): Inverse of native_encode_expr to convert
5183 a target representation into an INTEGER_CST, REAL_CST etc...
5184 (native_interpret_int): New function.
5185 (native_interpret_real): New function.
5186 (native_interpret_complex): New function.
5187 (native_interpret_vector): New function.
5188 (fold_view_convert_expr): New function to constant fold/evaluate
5189 a VIEW_CONVERT_EXPR of a suitable constant expression.
5190 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
5191 Change call of build1 to fold_build1 when constructing a
5192 VIEW_CONVERT_EXPR.
5193
5194 2006-04-13 Paolo Bonzini <bonzini@gnu.org>
5195 Ulrich Weigand <uweigand@de.ibm.com>
5196
5197 PR target/27006
5198 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
5199 to be even.
5200
5201 2006-04-13 Alan Modra <amodra@bigpond.net.au>
5202
5203 PR target/26459
5204 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5205 optimize to lo_sum for DFmode if !TARGET_FPRS.
5206
5207 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
5208
5209 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
5210 delete_alias_info, compute_flow_sensitive_aliasing,
5211 group_aliases): Use VEC instead of VARRAY.
5212 * tree-ssa-structalias.c (update_alias_info): Likewise.
5213 * tree-ssa-structalias.h (alias_info): Change the type of
5214 processed_ptrs to VEC(tree,heap) *.
5215
5216 2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
5217
5218 PR target/27060
5219 * config/sh/lib1funcs.h: New file, broken out of:
5220 * config/sh/lib1funcs.asm.
5221 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
5222 New macros.
5223 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
5224 * config/sh/lib1funcs-Os-4-200.asm: New file.
5225 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
5226 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
5227 (EXTRA_MULTILIB_PARTS): Include it.
5228 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
5229 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
5230 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
5231 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
5232 TARGET_SH2.
5233
5234 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
5235
5236 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
5237 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
5238 tpa_compact, root_var_init, type_var_init): Use VEC instead of
5239 VARRAY.
5240 * tree-ssa-live.h: Include vecprim.h.
5241 (tree_partition_associator_d): Change the type of
5242 first_partition to VEC(int,heap) *.
5243 (tpa_first_partition): Use VEC instead of VARRAY.
5244
5245 * Makefile.in (GTFILES): Move functions.h after tree.h.
5246 * function.c (reset_block_changes, record_block_change,
5247 check_block_change, free_block_changes): Use VEC instead of
5248 VARRAY.
5249 * function.h (function): Change the type of
5250 ib_boundaries_block to VEC(tree,gc) *.
5251 * tree-inline.c (copy_cfg_body): Initialize
5252 ib_boundaries_block to NULL instead of (varray_type) 0.
5253
5254 2006-04-12 Roger Sayle <roger@eyesopen.com>
5255
5256 * expr.c (emit_group_store): Correct operand order in call to
5257 subreg_lowpart_offset. Always create paradoxical SUBREGs with
5258 a SUBREG_BYTE of zero.
5259
5260 2006-04-12 Richard Guenther <rguenther@suse.de>
5261
5262 * profile.c (compute_branch_probabilities): Remove code
5263 encapsulated in !ir_type (), which are remanents of the
5264 removed RTL profiling code.
5265 * rtl-profile.c: Remove.
5266
5267 2006-04-12 Alan Modra <amodra@bigpond.net.au>
5268
5269 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
5270 magic NULL_RTX comment.
5271 (function_arg): Store entire fp arg to mem if any part should go
5272 on stack.
5273 (rs6000_arg_partial_bytes): Adjust for above change.
5274
5275 2006-04-11 Roger Sayle <roger@eyesopen.com>
5276
5277 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
5278 if it hasn't been initialized by dwarf2out_init.
5279
5280 2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
5281
5282 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
5283 symbolic constants in branch patterns.
5284
5285 2006-04-11 Roger Sayle <roger@eyesopen.com>
5286
5287 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
5288
5289 2006-04-11 Richard Sandiford <richard@codesourcery.com>
5290
5291 PR rtl-optimization/27073
5292 * gcse.c (try_replace_reg): Revert last change. Continue to search
5293 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
5294 on the former.
5295
5296 2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
5297
5298 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
5299 aggregate types other than record and union types.
5300 (function_arg): Likewise.
5301 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
5302 small arrays.
5303 (function_value): In 64-bit mode, return objects that require it
5304 in FP registers.
5305
5306 2006-04-11 Roger Sayle <roger@eyesopen.com>
5307
5308 * dwarf2out.c (premark_used_types): Remove problematic prototype.
5309
5310 2006-04-11 Jakub Jelinek <jakub@redhat.com>
5311
5312 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
5313
5314 2006-04-03 Jeff Law <law@redhat.com>
5315
5316 PR/27087
5317 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
5318 alias information too.
5319
5320 2006-04-10 Mike Frysinger <vapier@gentoo.org>
5321
5322 * Makefile.in (gcc-cross): Add $(exeext) to target name.
5323
5324 2006-04-10 Aldy Hernandez <aldyh@redhat.com>
5325
5326 PR/21391
5327 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
5328 (premark_used_types_helper): New.
5329 (premark_used_types): New.
5330 (gen_subprogram_die): Call premark_used_types.
5331 (prune_unused_types_walk): Do not prune perennial dies.
5332 * function.c (used_types_insert): New.
5333 * function.h (struct function): Add used_types_hash field.
5334 (used_types_insert): Add prototype.
5335 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
5336 * c-parser.c (c_parser_cast_expression): Save casted types in used
5337 types hash table.
5338
5339 2006-04-11 Mark Mitchell <mark@codesourcery.com>
5340
5341 PR target/26459
5342 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
5343 rs6000_explicit_options.float_gprs.
5344
5345 2006-04-10 Roger Sayle <roger@eyesopen.com>
5346
5347 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
5348 from ix86_expand_vector_init_low_nonzero. Take an additional
5349 one_var argument indicating which element is non-zero. Support
5350 one_var != 0 for V4SFmode and V4SImode by permuting the result.
5351 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
5352 with one_var instead of ix86_expand_vector_init_low_nonzero.
5353
5354 2006-04-10 Kazu Hirata <kazu@codesourcery.com>
5355
5356 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
5357 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
5358 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
5359 build/genextract.o): Depend on vecprim.h.
5360 * cfglayout.c, df-problems.c, function.c, genextract.c,
5361 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
5362 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
5363 vecprim.h.
5364 * vecprim.h: New.
5365
5366 2006-04-10 Geoffrey Keating <geoffk@apple.com>
5367
5368 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
5369 Declare VECs of this type.
5370 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
5371 (remove_children): Delete.
5372 (add_dwarf_attr): Use VEC routines.
5373 (add_AT_flag): Update for changes to add_dwarf_attr.
5374 (add_AT_int): Likewise.
5375 (add_AT_unsigned): Likewise.
5376 (add_AT_long_long): Likewise.
5377 (add_AT_vec): Likewise.
5378 (add_AT_string): Likewise.
5379 (add_AT_die_ref): Likewise.
5380 (add_AT_fde_ref): Likewise.
5381 (add_AT_loc): Likewise.
5382 (add_AT_loc_list): Likewise.
5383 (add_AT_addr): Likewise.
5384 (add_AT_lbl_id): Likewise.
5385 (add_AT_lineptr): Likewise.
5386 (add_AT_macptr): Likewise.
5387 (add_AT_offset): Likewise.
5388 (add_AT_range_list): Likewise.
5389 (get_AT): Use VEC_iterate.
5390 (remove_AT): Use VEC_ordered_remove.
5391 (free_die): Fold remove_children into here; have it use VEC_iterate.
5392 (print_die): Use VEC_iterate on attrs.
5393 (reverse_die_lists): Don't reverse attr lists.
5394 (die_checksum): Use VEC_iterate on attrs.
5395 (same_die_p): Likewise.
5396 (output_location_lists): Likewise.
5397 (build_abbrev_table): Likewise.
5398 (size_of_die): Likewise.
5399 (unmark_all_dies): Likewise.
5400 (output_abbrev_section): Likewise.
5401 (output_die): Likewise.
5402 (prune_unused_types_walk_attribs): Likewise.
5403
5404 2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
5405
5406 * doc/install.texi (*-*-solaris2*): Point to the configure page.
5407
5408 2006-04-10 Jakub Jelinek <jakub@redhat.com>
5409
5410 PR debug/27057
5411 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
5412
5413 2006-04-09 Roger Sayle <roger@eyesopen.com>
5414
5415 * expr.c (store_constructor): Don't bother clearing target if
5416 we're about to assign a vector to it using vec_init_optab.
5417
5418 2006-04-10 Daniel Berlin <dberlin@dberlin.org>
5419
5420 * tree-ssa-alias.c (lhs_may_store_to): New function.
5421 (recalculate_used_alone): Handle LHS of calls.
5422
5423 2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5424
5425 PR target/27034
5426 PR target/26508
5427 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
5428 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
5429 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
5430 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
5431 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
5432 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
5433 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
5434 stubs. Add ".align 8" directives before all ".dword" directives.
5435 (GTHREAD_USE_WEAK): Revise comment.
5436 (TARGET_ATTRIBUTE_WEAK): Define.
5437 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
5438 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
5439 * stublib.c: New file.
5440
5441 PR target/26743
5442 PR target/11254
5443 PR target/10274
5444 * pa.md (cbranch patterns): Revise arguments used in calls to
5445 output_cbranch, output_bb and output_bvd. Add long branch length
5446 attributes.
5447 (fbranch patterns): Handle long branches.
5448 (jump): Revise length check. Revise arguments for output_lbranch call.
5449 Add long branch length attributes.
5450 (decrement_and_branch_until_zero): Add long branch length attributes.
5451 (output_movb, output_parallel_addb and output_parallel_movb patterns):
5452 Likewise. Revise arguments for output_parallel_addb and
5453 output_parallel_movb calls.
5454 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
5455 output_parallel_movb and output_parallel_addb): Update prototypes.
5456 * pa.c (output_cbranch): Revise arguments. Correct handling of
5457 nullification in long branches.
5458 (output_lbranch): Add new argument to control extraction of delay
5459 instruction.
5460 (output_bb): Handle long branches.
5461 (output_bvb, output_dbra, output_movb, output_parallel_movb,
5462 output_parallel_addb): Likewise.
5463
5464 2006-04-09 Richard Sandiford <richard@codesourcery.com>
5465
5466 PR rtl-optimization/27073
5467 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
5468 not REG_EQUIVs.
5469
5470 2006-04-08 Daniel Berlin <dberlin@dberlin.org>
5471
5472 * tree.h (tree_memory_tag): Add old_used_alone.
5473 (SMT_OLD_USED_ALONE): New macro.
5474 * tree-ssa-alias.c (recalculate_used_alone): Stop
5475 marking things for renaming unnecessarily.
5476
5477 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
5478
5479 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
5480 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
5481 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
5482 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
5483 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
5484 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
5485 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
5486 spelling convensions.
5487 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
5488 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
5489 typos. Follow spelling conventions.
5490
5491 2006-04-07 DJ Delorie <dj@redhat.com>
5492
5493 * config/m32c/m32c.c (m32c_function_arg): Structures are always
5494 passed on the stack.
5495 (m32c_init_cumulative_args): When a function returns a structure,
5496 always pass the pointer to that return area on the stack.
5497 (m32c_function_arg_advance): Don't increment the parameter number
5498 if we're processing the returned structure pointer.
5499 (pushm_info): Reverse order of registers.
5500
5501 2006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
5502
5503 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
5504 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
5505 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
5506 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
5507 build_int_cst_type.
5508 * tree-chrec.c (chrec_fold_multiply_poly_poly,
5509 chrec_fold_multiply): Same.
5510 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
5511 force_expr_to_var_cost): Same.
5512 * tree-mudflap.c (mf_xform_derefs_1): Same.
5513 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
5514
5515 2006-04-07 David Edelsohn <edelsohn@gnu.org>
5516
5517 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
5518 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
5519 insn.
5520
5521 2006-04-07 Jan Hubicka <jh@suse.cz>
5522
5523 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
5524
5525 2006-04-07 Richard Guenther <rguenther@suse.de>
5526
5527 PR tree-optimization/26135
5528 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
5529 loads for store copy-prop.
5530 (copy_prop_visit_stmt): Likewise.
5531
5532 2006-04-05 Robert Millan <robertmh@gnu.org>
5533
5534 * config/i386/linux.h: Add a comment to mark macros that are
5535 being overriden in config/k*bsd-gnu.h.
5536 * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
5537 DYNAMIC_LINKER.
5538 * config/knetbsd-gnu.h: Ditto.
5539
5540 2006-04-06 Jan Hubicka <jh@suse.cz>
5541
5542 PR profile/20815
5543 PR profile/26399
5544 * coverage.c (coverage_checksum_string): Reorganize loop to not read
5545 after buffer.
5546
5547 2006-04-06 Mike Stump <mrs@apple.com>
5548
5549 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
5550 for HAVE_nonlocal_goto to be consistent.
5551 (expand_builtin_nonlocal_goto): Likewise.
5552 (expand_builtin_strcmp): Use #ifdef instead of #if
5553 for HAVE_cmpstrnsi to be consistent.
5554
5555 2006-04-05 DJ Delorie <dj@redhat.com>
5556
5557 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
5558 vs m32c.
5559
5560 2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
5561
5562 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
5563 got-relative addressing for anything but SImode.
5564
5565 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
5566 even if the calling function doesn't modify them.
5567
5568 2006-04-05 Richard Guenther <rguenther@suse.de>
5569
5570 PR tree-optimization/26919
5571 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
5572 to cgraph_estimate_size_after_inlining.
5573
5574 2006-04-05 Alan Modra <amodra@bigpond.net.au>
5575
5576 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
5577
5578 2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
5579
5580 PR tree-optimization/26996
5581 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
5582 VECTOR_TYPE variables.
5583
5584 2006-04-05 Richard Guenther <rguenther@suse.de>
5585
5586 PR tree-optimization/26763
5587 * fold-const.c (fold_comparison): Move folding of
5588 PTR + CST CMP PTR + CST ...
5589 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
5590
5591 2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
5592
5593 * doc/install.texi (Prerequisites): Refine some wording on
5594 bootstrapping and ksh.
5595 Move the version numbers of DejaGnu here from the testing section
5596 and fix casing of names.
5597 Fix markup and clarify wording for autogen requirements.
5598 Refer to GCJ instead of just java.
5599 Refer to SVN instead of CVS.
5600 Describe diffutils as useful instead of necessary.
5601 (Downloading the source): Refer to SVN instead of CVS.
5602 Adjust a link to our web site accordingly.
5603 (Configuration): Fix casing of Bison.
5604 (Building): Refer to SVN instead of CVS.
5605 Fix a sentence on the use of Bison and remove duplicate (and
5606 incorrect) version number of Bison requirement.
5607 Remove one redundant list of packages needed for building.
5608 (Specific): Avoid reference to CVS.
5609
5610 2006-04-04 Eric Christopher <echristo@apple.com>
5611
5612 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
5613 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
5614 (rs6000_handle_struct_attribute): New.
5615 (rs6000_ms_bitfield_layout_p): Ditto.
5616
5617 2006-04-04 Geoffrey Keating <geoffk@apple.com>
5618
5619 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
5620 NULL for dso parameter to atexit_common.
5621
5622 2006-04-04 Eric Christopher <echristo@apple.com>
5623
5624 * config/i386/i386.c (machopic_output_stub): Output \t
5625 between instructions and operands.
5626
5627 2006-04-04 David Edelsohn <edelsohn@gnu.org>
5628
5629 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
5630 satisfies_constraint_[IL] to explicit tests on value.
5631
5632 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
5633
5634 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
5635 set_nb_iterations_in_loop): Use build_int_cst instead of
5636 build_int_cst_type.
5637 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
5638 build_int_cst instead of convert.
5639
5640 2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
5641
5642 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
5643 new value 2 for incoming.
5644 * function.c (expand_function_start): Call struct_value_rtx
5645 with incoming as 2.
5646 * config/sparc/sparc.md: Comment updated_return.
5647 * config/sparc/sparc.opt: Add -mstd-struct-return option.
5648 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
5649 struct return if sparc_std_struct_return and incoming is 2.
5650 (print_operand): Do not adjust return if
5651 sparc_std_struct_return.
5652
5653 2006-04-04 Roger Sayle <roger@eyesopen.com>
5654
5655 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
5656 convert in the middle-end.
5657 * expr.c (store_expr, store_constructor, get_inner_reference,
5658 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
5659 Likewise.
5660 * tree.c (build_range_type): Likewise.
5661
5662 2006-04-04 Tom Tromey <tromey@redhat.com>
5663
5664 * doc/install.texi (Prerequisites): Mention jar.
5665
5666 2006-04-04 Daniel Berlin <dberlin@dberlin.org>
5667
5668 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
5669 subsection.
5670
5671 2006-04-04 Matthias Klose <doko@debian.org>
5672
5673 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
5674 * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
5675 strings.
5676
5677 2006-04-03 Geoffrey Keating <geoffk@apple.com>
5678
5679 * doc/extend.texi (Function Attributes): Rewrite visibility
5680 attribute documentation.
5681 * doc/invoke.texi (C++ Dialect Options): Rewrite
5682 -fvisibility-inlines-hidden documentation to describe something
5683 entirely different, although in practise compatible.
5684 (Code Gen Options): Warn about system headers in -fvisibility=
5685 documentation.
5686
5687 * doc/extend.texi (Other Builtins): Document that
5688 __builtin_nan is a compile-time constant only when its argument
5689 is valid.
5690
5691 2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
5692
5693 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
5694 trying to remove TRUNCATE check if all bits outside the new mode
5695 are identical to the sign bit.
5696
5697 2006-04-03 Jeff Law <law@redhat.com>
5698
5699 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
5700 and operand scanning in some common cases.
5701
5702 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
5703 Dale Johannesen <dalej@apple.com>
5704
5705 PR target/19653
5706 * regclass.c (struct reg_pref): Update documentation.
5707 (regclass): Set prefclass to NO_REGS if memory is the best option.
5708 (record_reg_classes): Cope with a prefclass set to NO_REGS.
5709 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
5710 into account. For non-registers, equate an empty preferred
5711 reload class to a `!' in the constraint; move the if clause to
5712 do so after those that reject the insn.
5713 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
5714 return NO_REGS.
5715 (find_dummy_reload): Likewise.
5716 * doc/tm.texi (Register Classes): Document what it means
5717 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
5718 * config/i386/i386.c (ix86_preferred_reload_class): Force
5719 using SSE registers (and return NO_REGS for floating-point
5720 constants) if math is done with SSE.
5721 (ix86_preferred_output_reload_class): New.
5722 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
5723 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
5724 * config/i386/i386.md: Remove # register preferences.
5725
5726 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
5727
5728 PR bootstrap/26992
5729 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
5730 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
5731 the type of nb_iter.
5732 (instantiate_parameters_1): Convert the operands before calling
5733 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
5734 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
5735
5736 2006-04-02 Roger Sayle <roger@eyesopen.com>
5737
5738 * builtins.c (dummy_object): Use build_int_cst instead of convert.
5739 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
5740 instead of convert.
5741 * dojump.c (do_jump): Likewise.
5742 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
5743 * gimplify.c (gimple_boolify, gimplify_init_constructor,
5744 gimplify_boolean_expr): Likewise.
5745 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5746 * varasm.c (array_size_for_constructor): Likewise.
5747 * tree-object-size.c (compute_object_offset): Likewise.
5748
5749 2006-04-02 Roger Sayle <roger@eyesopen.com>
5750
5751 PR middle-end/26977
5752 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
5753 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
5754
5755 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
5756
5757 PR tree-optimization/26939
5758 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
5759
5760 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
5761
5762 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
5763 at_stmt. Convert the type of operands before calling
5764 build_polynomial_chrec.
5765 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
5766 add_to_evolution_1.
5767 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
5768 (instantiate_parameters_1): Convert the type of operands before calling
5769 build_polynomial_chrec.
5770 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
5771 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
5772 reset_evolution_in_loop): Insert asserts to check the types of the
5773 operands.
5774 (chrec_type): Moved...
5775 (eq_evolutions_p): Use operand_equal_p.
5776 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
5777 the types of the operands.
5778 (chrec_type): ...here.
5779 * tree-data-ref.c (create_data_ref): Convert the operands before
5780 calling chrec_replace_initial_condition.
5781 (same_access_functions, analyze_subscript_affine_affine,
5782 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
5783 (compute_subscript_distance, analyze_ziv_subscript,
5784 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
5785 analyze_miv_subscript): Convert the operands before calling
5786 chrec_fold_minus or chrec_fold_plus.
5787
5788 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
5789
5790 * tree-data-ref.c (compute_all_dependences): Use a pointer to
5791 the dependence_relations vector.
5792 (compute_data_dependences_for_loop): Adjust call to
5793 compute_all_dependences.
5794
5795 2006-04-01 Roger Sayle <roger@eyesopen.com>
5796 Richard Henderson <rth@redhat.com>
5797
5798 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
5799 gimple_boolify on the condition before calling gimplify_expr.
5800
5801 2006-03-31 Bob Wilson <bob.wilson@acm.org>
5802
5803 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
5804 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
5805 the frame size. Update to use the new macros.
5806 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
5807 * config/xtensa/ieee754-df.S: Likewise.
5808
5809 2006-03-31 Richard Henderson <rth@redhat.com>
5810
5811 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
5812 (make_edges): ... here. Control fallthru creation with a local
5813 variable. Do not play with fake edges.
5814 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
5815 (make_goto_expr_edges): Don't play with fake edges. Make for_call
5816 a boolean.
5817
5818 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
5819
5820 * dwarf2.h (DW64_CIE_ID): Define.
5821 * dwarf2out.c (DWARF_CIE_ID): Define.
5822 (output_call_frame_info): Output 0xffffffff before standard 8-byte
5823 length header. Use DWARF_CIE_ID.
5824 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
5825 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
5826
5827 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
5828
5829 * config/sh/linux-atomic.asm: New file.
5830 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
5831
5832 2006-03-31 DJ Delorie <dj@redhat.com>
5833
5834 * config/m32c/cond.md: Set condition flags properly throughout.
5835 * config/m32c/minmax.md: Likewise.
5836 * config/m32c/prologue.md: Likewise.
5837 * config/m32c/bitops.md: Likewise.
5838 * config/m32c/muldiv.md: Likewise.
5839 * config/m32c/mov.md: Likewise.
5840 * config/m32c/addsub.md: Likewise.
5841 * config/m32c/m32c.md: Likewise.
5842 * config/m32c/jump.md: Likewise.
5843 * config/m32c/shift.md: Likewise.
5844
5845 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
5846 conditionally output the pattern for this.
5847 * config/m32c/m32c.c (flags_needed_for_conditional): New.
5848 (m32c_compare_redundant): New.
5849 (m32c_output_compare): New.
5850 * config/m32c/m32c-protos.h (m32c_output_compare): New.
5851
5852 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
5853 dest, not src. Allow other 4-byte modes.
5854
5855 2006-03-30 Denis Chertykov <denisc@overta.ru>
5856
5857 * doc/md.texi: Refer to avr/constraints.md instead of
5858 avr/avr.h.
5859
5860 2006-03-30 Roger Sayle <roger@eyesopen.com>
5861
5862 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
5863 signed vs. unsigned comparison failures on some hosts.
5864
5865 2006-03-31 Alan Modra <amodra@bigpond.net.au>
5866
5867 PR target/26459
5868 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
5869 change to FLOAT_REGS.
5870
5871 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
5872 (rs6000_override_options): Use it.
5873 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
5874 only for -mabi=spe/no-spe and -mabi=altivec.
5875
5876 2006-03-30 Geoffrey Keating <geoffk@apple.com>
5877
5878 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
5879 !Zdynamiclib.
5880
5881 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
5882
5883 * Makefile.in: Rename docdir to gcc_docdir.
5884
5885 2006-03-30 Roger Sayle <roger@eyesopen.com>
5886
5887 PR target/17959
5888 * expr.c (emit_group_store): Optimize group stores into a pseudo
5889 register by using a paradoxical subreg to initialize the destination
5890 if the first or last member of the group specifies a "low part".
5891
5892 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
5893
5894 PR target/26734
5895 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
5896 * target.h (struct gcc_target.speculate_insn): Change type of the
5897 second parameter to 'int'.
5898 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
5899 the second operand of the DEPS_LIST.
5900 (copy_DEPS_LIST_list): Update reference to the second operand of the
5901 DEPS_LIST.
5902 * rtl.h (alloc_DEPS_LIST): Update signature.
5903 * sched-int.h (ds_t): Change typedef to 'int'.
5904 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
5905
5906 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
5907
5908 * haifa-sched.c (try_ready): Change condition to restore
5909 non-speculative pattern of the instruction.
5910 (process_insn_depend_be_in_spec): Code to keep probability of the
5911 speculative dependence non-decreasing.
5912
5913 2006-03-30 Jie Zhang <jie.zhang@analog.com>
5914
5915 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
5916 (single_move_for_movmem): ... this. Also change all uses.
5917 (bfin_expand_strmov): Renamed to...
5918 (bfin_expand_movmem): ... this. Also change all uses.
5919 * config/bfin/bfin.md (movstrsi): Renamed to...
5920 (movstrsi): ...this.
5921
5922 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
5923
5924 PR tree-optimization/26830
5925
5926 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
5927 (copy_prop_visit_stmt): Remove write-only variable ann.
5928 (init_copy_prop): Check variable loop depth here. Do not simulate
5929 memory-tag and virtual operand PHIs except for store copy prop.
5930
5931 2006-03-30 Richard Guenther <rguenther@suse.de>
5932
5933 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
5934 variants with double arguments.
5935
5936 2006-03-29 David Edelsohn <edelsohn@gnu.org>
5937
5938 * genpreds.c (write_tm_constrs_h): Delete variable p.
5939 * genconditions.c (write_header): Add tm-constrs.h to included
5940 headers.
5941 * genpeep.c (main): Add toplev.h to included headers.
5942 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
5943 (build/genpeep.o): Add toplev.h dependency.
5944 * config/rs6000/constraints.md: Add "W" constraint.
5945
5946 2006-03-29 Roger Sayle <roger@eyesopen.com>
5947
5948 * stor-layout.c (mode_for_size_tree): Remove restiction on type
5949 sizes by correctly testing whether the size fits a host integer.
5950 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
5951 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
5952 SImode range for the default sizetype and bitsizetype.
5953
5954 2006-03-29 Roger Sayle <roger@eyesopen.com>
5955
5956 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
5957 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
5958 quickly if the argument is already of the correct type.
5959 Call fold_build1 instead of build1. Tidy up blank lines.
5960
5961 2006-03-29 David Edelsohn <edelsohn@gnu.org>
5962
5963 * genemit.c (main): Add tm-constrs.h to included headers.
5964 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
5965 * genpeep.c (main): Add tm-constrs.h to included headers.
5966 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
5967 (write_tm_constrs_h): this and write complete file.
5968 (write_tm_preds_h): Do not emit satisfies_constraint fns.
5969 (write_insn_preds_c): Add tm-constrs.h to included headers.
5970 (gen_constrs): New variable.
5971 (parse_option): Parse "-c".
5972 (main): Invoke write_tm_constrs_h.
5973 * genrecog.c (write_header): Add tm-constrs.h to included headers.
5974 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
5975 (object_out_file): Add tm-constrs.h dependency.
5976 (insn-emit.o): Same.
5977 (insn-output.o): Same.
5978 (insn-peep.o): Same.
5979 (insn-preds.o): Same.
5980 (insn-recog.o): Same.
5981 (tm-constsr.h): New target.
5982 (s-constrs-h): New target.
5983
5984 * config/rs6000/constraints.md: New file.
5985 * config/rs6000/rs6000.c: Include tm-constrs.h.
5986 (num_insn_constant_wide): Convert to satisfies_constraint.
5987 (rs6000_rtx_costs): Convert to satisfies_constraint.
5988 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
5989 (CONST_OK_FOR_LETTER_P): Delete.
5990 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5991 (EXTRA_CONSTRAINT): Delete.
5992 (EXTRA_MEMORY_CONSTRAINT): Delete.
5993 (EXTRA_ADDRESS_CONSTRAINT): Delete.
5994 * config/rs6000/predicates.md: Convert to satisfies_constraint.
5995 * config/rs6000/rs6000.md: Include constraints.md. Convert to
5996 satisfies_constraint.
5997
5998 * config/i386/i386.c: Include tm-constrs.h.
5999
6000 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
6001
6002 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
6003 * tree-data-ref.c (find_data_references_in_loop,
6004 compute_data_dependences_for_loop): Use pointers to VEC.
6005 (analyze_all_data_dependences): Adjust calls.
6006 * tree-data-ref.h (find_data_references_in_loop,
6007 compute_data_dependences_for_loop): Adjust declarations.
6008 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
6009 compute_data_dependences_for_loop.
6010
6011 2006-03-29 Paul Brook <paul@codesourcery.com>
6012
6013 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
6014 (movdf_vfp): Ditto.
6015
6016 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
6017
6018 PR tree-optimization/26859
6019 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
6020 division by zero.
6021 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
6022 for the step after fold_convert.
6023
6024 2006-03-29 Paul Brook <paul@codesourcery.com>
6025
6026 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
6027 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
6028
6029 2006-03-29 Paul Brook <paul@codesourcery.com>
6030
6031 PR middle-end/23623
6032 * targhooks.c (default_narrow_bitfield): New fuction.
6033 * targhooks.h (default_narrow_bitfield): add prototype.
6034 * target.h (gcc_target): Add narrow_volatile_bitfield.
6035 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6036 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
6037 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
6038 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6039
6040 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
6041
6042 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
6043 tmake_file.
6044 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
6045 (NR_C_MODES): Add TDmode, DDmode and SDmode.
6046 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
6047 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
6048 (s390_function_arg_float): Allow SDmode and DDmode values to be
6049 passed in floating point registers.
6050 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
6051 check with SCALAR_FLOAT_MODE_P.
6052 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
6053
6054 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
6055
6056 PR tree-optimization/25985
6057 * tree-ssa-loop-niter.c (number_of_iterations_le,
6058 number_of_iterations_ne): Make comments more precise.
6059 (number_of_iterations_cond): Add only_exit argument. Use the
6060 fact that signed variables do not overflow only when only_exit
6061 is true.
6062 (loop_only_exit_p): New.
6063 (number_of_iterations_exit): Pass result of loop_only_exit_p to
6064 number_of_iterations_cond.
6065
6066 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
6067
6068 PR tree-optimization/26643
6069 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
6070 bit_field_refs.
6071
6072 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
6073
6074 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
6075 (divsi3_i4_int): Likewise.
6076
6077 2006-03-28 Roger Sayle <roger@eyesopen.com>
6078
6079 * expr.c (emit_group_store): Only create a new pseudo reg if the
6080 quantity it needs to hold isn't already a suitable pseudo.
6081
6082 2006-03-28 Jeff Law <law@redhat.com>
6083
6084 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
6085 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
6086
6087 2006-03-28 Roger Sayle <roger@eyesopen.com>
6088
6089 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
6090 the equivalent ~X & Y, and the symmetry related transformations.
6091 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
6092 ~X & Y, and symmetry related transforms.
6093
6094 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6095
6096 Revert my 2006-03-27 patches.
6097
6098 2006-03-28 Roger Sayle <roger@eyesopen.com>
6099
6100 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
6101 ~(T1)X, when T1 and T2 are integer types of the same precision
6102 and (T2)X isn't an extension.
6103
6104 2006-03-28 Jeff Law <law@redhat.com>
6105
6106 PR tree-optimization/26796
6107 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
6108 need EH edge cleanups rather than purging them immediately.
6109 (eliminate_degenerate_phis): Handle queued EH cleanups.
6110
6111 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
6112
6113 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
6114 from parent_var.
6115
6116 2006-03-27 Roger Sayle <roger@eyesopen.com>
6117
6118 PR middle-end/22524
6119 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
6120 cast BIT_NOT_EXPR operand to the correct type.
6121
6122 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
6123
6124 * tree-loop-linear.c: Don't include varray.h.
6125 (gather_interchange_stats, try_interchange_loops,
6126 linear_transform_loops): Use VEC instead of VARRAY.
6127 * lambda-mat.c: Don't include varray.h.
6128 * tree-chrec.c: Same.
6129 * lambda-trans.c: Same.
6130 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
6131 VEC instead of VARRAY.
6132 * tree-vectorizer.h: Idem.
6133 * tree-data-ref.c (dump_data_references,
6134 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
6135 initialize_data_dependence_relation, finalize_ddr_dependent,
6136 compute_all_dependences, find_data_references_in_loop,
6137 compute_data_dependences_for_loop, analyze_all_data_dependences,
6138 free_dependence_relation, free_dependence_relations,
6139 free_data_refs): Idem.
6140 * tree-data-ref.h (data_reference_p, subscript_p): New.
6141 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
6142 VEC instead of VARRAY.
6143 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
6144 (find_data_references_in_loop, compute_data_dependences_for_loop,
6145 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
6146 dump_data_dependence_relations, free_dependence_relations,
6147 free_data_refs): Adjust declaration.
6148 (lambda_transform_legal_p): Move declaration here...
6149 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
6150 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
6151 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
6152 vect_analyze_data_refs): Use VEC instead of VARRAY.
6153 * lambda.h (lambda_transform_legal_p): ...from here.
6154 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
6155 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
6156 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
6157 tree-chrec.o): Don't depend on VARRAY_H.
6158
6159 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6160
6161 * rtl.def (Copyright): Update date.
6162 (DEPS_LIST): Change type of the second operand to 'int'.
6163 * target.h (Copyright): Update date.
6164 (struct gcc_target.speculate_insn): Change type of the second parameter
6165 to 'int'.
6166 * lists.c (Copyright): Update date.
6167 (alloc_DEPS_LIST): Change signature. Update reference to the second
6168 operand of the DEPS_LIST.
6169 (copy_DEPS_LIST_list): Update reference to the second operand of the
6170 DEPS_LIST.
6171 * rtl.h (Copyright): Update date.
6172 (alloc_DEPS_LIST): Update signature.
6173 * sched-int.h (Copyright): Update date.
6174 (ds_t): Change typedef to 'int'.
6175 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6176
6177 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6178
6179 * haifa-sched.c (Copyright): Update date.
6180 (try_ready): Change condition to restore non-speculative pattern
6181 of the instruction.
6182 (process_insn_depend_be_in_spec): Code to keep probability of the
6183 speculative dependence non-decreasing.
6184
6185 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
6186
6187 * regrename.c (replace_oldest_value_addr): Initialize a variable to
6188 shut up the compiler.
6189
6190 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
6191
6192 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
6193 to use lib prefix for target.
6194 ($(T)libic_invalidate_array_4-200.a): Likewise.
6195 ($(T)libic_invalidate_array_4a.a): Likewise.
6196
6197 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
6198 J"orn Rennecke <joern.rennecke@st.com>
6199
6200 * superh.opt: New file.
6201 * sh.c (boardtype, osruntime): Remove.
6202 * superh.h (SUBTARGET_OPTIONS): Remove.
6203 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
6204
6205 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
6206 arguments with ^ and/or [].
6207
6208 * config.gcc (sh-*-*): Add quoting to account for quirk of
6209 Solaris /bin/sh.
6210 Replace == with = in enable_incomplete_targets test.
6211
6212 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
6213 with MASK_LITTLE_ENDIAN.
6214
6215 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
6216 * config/sh/sh.opt: Added to some comments.
6217 * config/sh/superh.h: Removed some chaff.
6218
6219 * config/sh/sh.opt: Add m4-[1234]00* options.
6220 * config/sh/sh.c (sh_handle_option): Likewise.
6221 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
6222 (ic_invalidate_array_4-100.o): New rule.
6223 ($(T)libic_invalidate_array_4-100.a): Likewise.
6224 (ic_invalidate_array_4-200.o): Likewise.
6225 ($(T)libic_invalidate_array_4-200.a): Likewise.
6226 (ic_invalidate_array_4a.o): Likewise.
6227 ($(T)libic_invalidate_array_4a.a): Likewise.
6228 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
6229 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
6230 m4-200*, and m4a*.
6231 * config/sh/crt1.asm: Merged in profiling code.
6232 * config/sh/superh.h (STARTFILE_SPEC): Override.
6233 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
6234 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
6235 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
6236
6237 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
6238 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
6239 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
6240
6241 * sh.opt (mpretend-cmove): New option.
6242 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
6243 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
6244 (movsicc): Add TARGET_PRETEND_CMOVE code.
6245
6246 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
6247
6248 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
6249 s390_class_max_nregs): New function prototypes.
6250 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
6251 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
6252 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
6253 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
6254
6255 2006-03-26 Geoffrey Keating <geoffk@apple.com>
6256
6257 * dwarf2out.c (add_location_or_const_value_attribute): Call
6258 tree_add_const_value_attribute if nothing else works.
6259 (reference_to_unused): New.
6260 (rtl_for_decl_init): Use reference_to_unused to decide whether
6261 to output an initializer.
6262
6263 2006-03-27 Alan Modra <amodra@bigpond.net.au>
6264
6265 PR target/26459
6266 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
6267 peephole removing spe frob_di_df_2.
6268
6269 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
6270
6271 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
6272 (subscript_dependence_tester_1): Declared.
6273 (print_dir_vectors, print_dist_vectors): New.
6274 (debug_data_dependence_relation): New.
6275 (dump_data_dependence_relation): Print more details.
6276 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
6277 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
6278 (save_dist_v, save_dir_v, add_outer_distances,
6279 build_classic_dist_vector_1): New.
6280 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
6281 Don't test for lambda_vector_lexico_pos.
6282 (same_access_functions, add_multivariate_self_dist,
6283 add_other_self_distances, dir_from_dist): New.
6284 (build_classic_dir_vector): Replace implementation almost identical to
6285 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
6286 dir_from_dist.
6287 (subscript_dependence_tester_1): New.
6288 (subscript_dependence_tester): Handle the lexicographically negative
6289 distance vectors by recomputing the dependence relation.
6290 (compute_affine_dependence): Remove parameter loop_nest_depth.
6291 (compute_self_dependence): Don't call compute_subscript_distance.
6292 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
6293 Add a parameter for the loop_nest.
6294 (find_loop_nest_1, find_loop_nest): New.
6295 (compute_data_dependences_for_loop): Compute the loop nest, and give
6296 up if the nest is not well formed.
6297 * tree-data-ref.h (loop_p): New.
6298 (struct data_dependence_relation): Replace size_vect field with
6299 loop_nest, a vec of loops.
6300 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
6301 (DDR_LOOP_NEST): New.
6302 (print_dir_vectors, print_dist_vectors,
6303 debug_data_dependence_relation): Declared.
6304 (index_in_loop_nest): New.
6305 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
6306 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
6307 distance.
6308
6309 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
6310
6311 * simplify-rtx.c (simplify_relational_operation): Call
6312 simplify_relational_operation_1 even if mode is VOIDmode.
6313
6314 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
6315
6316 PR tree-optimization/26804
6317 * tree.h (DECL_CALL_CLOBBERED): New macro.
6318 (tree_decl_common): Add call_clobbered_flag.
6319 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
6320 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
6321 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
6322 (mark_non_addressable): Ditto.
6323 * tree-ssa.c (verify_call_clobbered): New function.
6324 (verify_alias_info): Use it.
6325 * tree-pass.h (pass_reset_cc_flags): New prototype.
6326 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
6327 (reset_cc_flags): New function.
6328 * passes.c (init_optimization_passes): Call reset_cc_flags after
6329 initializing referenced_vars.
6330
6331 2006-03-25 Uros Bizjak <uros@kss-loka.si>
6332 Roger Sayle <roger@eyesopen.com>
6333
6334 PR middle-end/26717
6335 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
6336 to 1.0 for non-real operands. Implement A / A optimization for
6337 complex operands.
6338
6339 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
6340
6341 * config/i386/i386.c (size_cost): Correct the comment for
6342 cost of storing fp registers.
6343 (i386_cost): Likewise.
6344 (i486_cost): Likewise.
6345 (pentium_cost): Likewise.
6346 (pentiumpro_cost): Likewise.
6347 (k6_cost): Likewise.
6348 (athlon_cost): Likewise.
6349 (k8_cost): Likewise.
6350 (pentium4_cost): Likewise.
6351 (nocona_cost): Likewise.
6352 (generic64_cost): Likewise.
6353 (generic32_cost): Likewise.
6354
6355 2006-03-24 Denis Chertykov <denisc@overta.ru>
6356
6357 * config/avr/avr-protos.h (extra_constraint): Delete.
6358 (extra_constraint_Q): New declaration.
6359 * config/avr/constraints.md: New file.
6360 * config/avr/avr.md: Include it.
6361 (REG_X, REG_Y, REG_Z, REG_W): New constants.
6362 (TMP_REGNO, ZERO_REGNO): Likewise.
6363 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
6364 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
6365 (extra_constraint): Delete.
6366 (extra_constraint_Q): Test for memory constraint 'Q'.
6367 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
6368 (REG_CLASS_FROM_LETTER): Delete.
6369 (CONST_OK_FOR_LETTER_P): Delete.
6370 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6371 (EXTRA_CONSTRAINT): Delete.
6372 (TMP_REGNO): Delete.
6373 (ZERO_REGNO): Delete.
6374
6375 2006-03-24 Jeff Law <law@redhat.com>
6376
6377 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
6378 directly. Call mark_new_vars_to_rename slightly earlier.
6379
6380 2006-03-24 Geoffrey Keating <geoffk@apple.com>
6381
6382 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
6383 (is_cxx): Likewise.
6384 (gen_compile_unit_die): Use new language types for Objective-C and
6385 Objective-C++.
6386 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
6387 DW_LANG_C_plus_plus.
6388
6389 PR 26793
6390 * config/t-darwin (crt3.o): Work around bug 26840.
6391 * config/darwin-crt3.c: Rewrite.
6392 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
6393
6394 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
6395
6396 * doc/invoke.texi: Document -femit-class-debug-always
6397 * common.opt: Add -femit-class-debug-always.
6398
6399 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
6400
6401 * config/s390/s390.c (s390_decompose_address): Allow SImode for
6402 index and base register.
6403 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
6404 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
6405 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
6406 REGNO_OK_FOR_INDEX_P.
6407 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
6408 ADDR_REGNO_P.
6409 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
6410 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
6411 REG_OK_FOR_BASE_P): Definitions removed.
6412
6413 2006-03-24 Jakub Jelinek <jakub@redhat.com>
6414
6415 PR middle-end/26611
6416 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
6417 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
6418 set yet or weren't marked as local yet.
6419
6420 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
6421
6422 * regrename.c (scan_rtx_address): Initialize a variable to shut up
6423 the compiler.
6424
6425 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
6426
6427 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
6428 (rs6000_legitimate_small_data_p): Delete.
6429 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
6430 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
6431 and make static. Add forward declaration. Update uses.
6432 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
6433 of offsettable_memref_p.
6434 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
6435 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
6436
6437 2006-03-24 Jeff Law <law@redhat.com>
6438
6439 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
6440 around bug in immediate-use iterator.
6441
6442 2006-03-24 Alan Modra <amodra@bigpond.net.au>
6443
6444 PR target/26607
6445 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
6446 or __LITTLE_ENDIAN__.
6447
6448 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
6449
6450 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
6451 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
6452 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
6453 * config/sh/sh.opt (mdiv=): Amend description.
6454 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
6455 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
6456 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
6457 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
6458 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
6459 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
6460 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
6461 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
6462 TARGET_DIVIDE_CALL_FP.
6463
6464 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6465
6466 * haifa-sched.c (choose_ready): Fix type of the local variable.
6467 Move local variables. Add comment.
6468 (check_reg_live): Change signature. Make callable from debugger.
6469 * sched-int.h (check_reg_live): Update signature.
6470 * sched-ebb.c (check_reg_live): Update parameters.
6471 * sched-rgn.c (check_reg_live): Ditto.
6472 (region_head_or_leaf_p): Check pointer before dereferencing.
6473 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
6474 before reload on optimization levels below 1.
6475
6476 2006-03-23 Richard Henderson <rth@redhat.com>
6477
6478 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
6479 tls symbols.
6480
6481 PR target/26347
6482 * config/alpha/predicates.md (local_symbolic_operand): Reject
6483 weak symbols.
6484
6485 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
6486
6487 PR tree-opt/26795
6488 * tree-ssa-pre.c (create_value_expr_from): Don't reject
6489 expressions which have overflowed constants.
6490
6491 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
6492
6493 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
6494
6495 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
6496
6497 * cfgloopmanip.c (create_loop_notes): Removed.
6498 * final.c (final_scan_insn): Do not handle loop notes.
6499 * jump.c (squeeze_notes): Ditto.
6500 * cfglayout.c (skip_insns_after_block,
6501 duplicate_insn_chain): Ditto.
6502 * cfgcleanup.c (rest_of_handle_jump2): Do not call
6503 create_loop_notes.
6504 * cfgloop.h (create_loop_notes): Declaration removed.
6505
6506 2006-03-23 Richard Sandiford <richard@codesourcery.com>
6507
6508 * varasm.c (output_constant_pool): Restore fnname and fndecl
6509 arguments.
6510 (assemble_start_function): Adjust call accordingly.
6511 (assemble_end_function): Likewise.
6512
6513 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6514
6515 PR mudflap/26789
6516 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
6517
6518 PR mudflap/26790
6519 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
6520
6521 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6522
6523 PR driver/22600
6524 * system.h (ICE_EXIT_CODE): New macro.
6525 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
6526 (diagnostic_action_after_output): Likewise.
6527 * gcc.c (fatal_ice): New function.
6528 (execute): Use it instead of fatal.
6529 (fancy_abort): Likewise.
6530 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
6531
6532 2006-03-22 Jeff Law <law@redhat.com>
6533
6534 * loop-unroll.c (analyze_iv_to_split_insn): Handle
6535 iv_analyze_result returning false.
6536
6537 2006-03-22 Jie Zhang <jie.zhang@analog.com>
6538
6539 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
6540
6541 2006-03-22 Richard Henderson <rth@redhat.com>
6542
6543 PR middle-end/26084
6544 * except.c (duplicate_eh_regions_0): New.
6545 (duplicate_eh_region_1): Duplicate the children of the node as
6546 well as the node itself. Link them up properly.
6547 (duplicate_eh_region_2): Merge into ...
6548 (duplicate_eh_regions): ... here. Take copy_region argument, and
6549 copy only a sub-tree if asked. Simplify copying and fixup.
6550 (eh_region_outer_p): New.
6551 * except.h (duplicate_eh_regions): Update decl.
6552 (eh_region_outer_p): Declare.
6553 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
6554 (lower_omp_master): Likewise.
6555 (lower_omp_ordered): Likewise.
6556 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
6557 (move_stmt_r): Use it to remap labels. Handle recursion vs
6558 remap_decls_p properly.
6559 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
6560 (find_outermost_region_in_block): New.
6561 (new_label_mapper): New.
6562 (move_sese_region_to_fn): Copy eh information to the new function
6563 properly.
6564 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
6565 argument.
6566 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
6567 number.
6568
6569 2006-03-22 Richard Sandiford <richard@codesourcery.com>
6570
6571 * doc/md.texi (-mshared): Mention that -mshared code can be linked
6572 into shared libraries.
6573
6574 2006-03-22 Richard Sandiford <richard@codesourcery.com>
6575
6576 * doc/md.texi: Refer to i386/constraints.md instead of
6577 i386/predicates.md.
6578 * config/i386/constraints.md: New file, extracted from...
6579 * config/i386/predicates.md: ...here.
6580 * config/i386/i386.md: Include constraints.md.
6581
6582 2006-03-21 Jason Merrill <jason@redhat.com>
6583
6584 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
6585
6586 PR middle-end/20297
6587 * expr.c (init_block_move_fn): Force default visibility.
6588 (init_block_clear_fn): Likewise.
6589 * builtins.c (expand_builtin_fork_or_exec): Likewise.
6590 * targhooks.c (default_external_stack_protect_fail): Likewise.
6591
6592 2006-03-21 Richard Sandiford <richard@codesourcery.com>
6593
6594 * config/mips/predicates.md (const_call_insn_operand): Allow direct
6595 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
6596 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
6597 Use TARGET_OLDABI instead of !TARGET_NEWABI.
6598 (loadgp): Use mips_current_loadgp_style.
6599 (loadgp_noshared): New pattern.
6600 (sibcall_internal): Use MIPS_CALL.
6601 (sibcall_value_internal): Likewise.
6602 (sibcall_value_multiple_internal): Likewise.
6603 (call_internal): Likewise.
6604 (call_value_internal): Likewise.
6605 (call_value_multiple_internal): Likewise.
6606 (call_split): Use MIPS_CALL and add an 'S' constraint.
6607 (call_value_split): Likewise.
6608 (call_value_multiple_split): Likewise.
6609 * config/mips/mips.opt (-mabicalls): Tweak docstring.
6610 (-mshared): New option.
6611 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
6612 (mips_current_loadgp_style): Declare.
6613 * config/mips/mips.c (mips_classify_symbol): Avoid using
6614 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
6615 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
6616 TARGET_ABSOLUTE_ABICALLS.
6617 (override_options): Adjust comments. Improve the warning that is
6618 issued when -mabicalls and -G are used together.
6619 (mips_file_start): Remove comment.
6620 (mips_current_loadgp_style): New function.
6621 (mips_gnu_local_gp): New variable.
6622 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
6623 LOADGP_ABSOLUTE.
6624 (mips_output_function_prologue): Use mips_current_laodgp_style.
6625 (mips_expand_prologue): Call mips_emit_loadgp before emitting
6626 the cprestore instruction.
6627 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
6628 live for TARGET_ABSOLUTE_ABICALLS.
6629 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
6630 (ASM_SPEC): Pass down -mshared and -mno-shared.
6631 (MIPS_CALL): New macro.
6632 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
6633 definition.
6634 * doc/invoke.texi (-mabicalls): Update documentation.
6635 (-mshared): Document.
6636
6637 2006-03-21 Steve Ellcey <sje@cup.hp.com>
6638
6639 * config/ia64/unwind-hpux.c: New file.
6640 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
6641
6642 2006-03-21 Steve Ellcey <sje@cup.hp.com>
6643
6644 PR libgomp/26384
6645 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
6646
6647 2006-03-21 Jeff Law <law@redhat.com>
6648
6649 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
6650 type conversions of a VR_VARYING source to a wider type.
6651
6652 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
6653
6654 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
6655 tm_file on Solaris 10 and later.
6656 (sparc64-*-solaris2*): Likewise.
6657 (sparc-*-solaris2*): Likewise.
6658 * config/sol26.h: Rename to config/sol2-6.h.
6659 * config/sol2-10.h: New file.
6660
6661 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
6662
6663 PR tree-opt/26781
6664 * tree-ssa-pre.c (create_component_ref_by_pieces):
6665 Handle STRING_CST.
6666
6667 2006-03-21 Jakub Jelinek <jakub@redhat.com>
6668
6669 PR c++/26690
6670 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
6671 return it immediately.
6672
6673 2006-03-21 Michael Matz <matz@suse.de>
6674
6675 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
6676 New members.
6677 (remove_arc, add_arc): Update num_out_arcs member.
6678 (set_out_arc_insns_equiv_num): Returns nothing instead of number
6679 of out arcs.
6680 (cache_presence): New function.
6681 (compare_states_for_equiv): New function.
6682 (state_is_differed): Don't take number of outargs, adjust callers.
6683 Use new invariant for speeding up.
6684 (init_equiv_class): Create initial classes based on sorted
6685 input.
6686 (partition_equiv_class): Don't track out_arcs_num.
6687 (evaluate_equiv_classes): Call cache_presence on all states and
6688 sort them.
6689
6690 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
6691
6692 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
6693 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
6694 (bfin_valid_reg_p): Test for pseudos explicitly and use only
6695 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
6696 callers changed.
6697 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
6698 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
6699 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
6700 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6701 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
6702 macros.
6703 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
6704 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
6705 (REGNO_REG_CLASS): ARGP is in PREGS.
6706 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
6707 IREGS.
6708 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
6709 to deal with those addresses.
6710 * addresses.h: New file.
6711 * caller-save.c: Include "addresses.h".
6712 (init_caller_save): Use new base_reg_class function.
6713 * rtl-factoring.c: Include "addresses.h".
6714 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
6715 * recog.c: Include "addresses.h".
6716 (preprocess_constraints): Use new base_reg_class function.
6717 * regrename.c: Include "addresses.h".
6718 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
6719 functions. Keep track of a new var INDEX_CODE to compute valid
6720 classes.
6721 (replace_oldest_value_addr): Likewise.
6722 (replace_oldest_value_mem): Use base_reg_class.
6723 * reload.c: Include "addresses.h".
6724 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
6725 (find_reloads): Use new base_reg_class function.
6726 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
6727 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
6728 all callers and prototype changed.
6729 * reload1.c: Include "addresses.h".
6730 (maybe_fix_stack_asms): Use base_reg_class.
6731 * regclass.c: Include "addresses.h".
6732 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
6733 (init_reg_autoinc): Use new base_reg_class function.
6734 (record_reg_classes): Likewise.
6735 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
6736 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
6737 Use new args to compute necessary class.
6738
6739 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
6740 regrename.o, rtl-factoring.o): Update dependencies.
6741 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
6742 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
6743 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
6744 REG_OK_FOR_INDEX_P): Delete documentation.
6745
6746 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
6747
6748 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
6749 from V7 to V9 for Solaris 7 and above.
6750
6751 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
6752
6753 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
6754 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
6755 argument pointers may not alias any other storage.
6756 * common.opt: Define option -fargument-noalias-anything.
6757 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
6758 alias semantics is specified by flag_argument_noalias > 2.
6759
6760 2006-03-20 Jeff Law <law@redhat.com>
6761
6762 * tree-pass.h (pass_phi_only_copy_prop): Delete.
6763 (pass_phi_only_cprop): Declare.
6764 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
6765 with phi_only_cprop
6766 * tree-ssa-dom.c (degenerate_phi_result): New function.
6767 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
6768 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
6769 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
6770 (eliminate_degenerate_phis): Likewise.
6771 (pass_phi_only_cprop): New pass descriptor.
6772 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
6773 support code. Callers updated.
6774 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
6775 (store_copy_prop): Likewise.
6776 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
6777
6778 2006-03-20 Jason Merrill <jason@redhat.com>
6779
6780 PR c++/21764
6781 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
6782 (push_visibility, pop_visibility): Likewise.
6783 * c-pragma.h: Declare them.
6784
6785 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
6786
6787 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
6788
6789 * config/sh/sh.c (find_regmode_weight): Change the type of the first
6790 parameter and use get_ebb_head_tail.
6791 (sh_md_init_global): Adjust uses of find_regmode_weight.
6792
6793 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
6794
6795 * function.h (struct function) <x_tail_recursion_reentry>:
6796 Rename to x_stack_check_probe_note.
6797 (tail_recursion_reentry): Rename to stack_check_probe_note.
6798 * function.c: Replace tail_recursion_reentry with
6799 stack_check_probe_note everywhere.
6800 (expand_function_start): Only emit a note for
6801 stack_check_probe_note with -fstack-protect.
6802 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
6803
6804 * emit-rtl.c (remove_unnecessary_notes): Remove.
6805 (pass_remove_unnecessary_notes): Remove.
6806 * rtl.h (remove_unnecessary_notes): Remove prototype.
6807 * final.c (final_start_function): Don't call remove_unnecessary_notes.
6808 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
6809 * passes.c (pass_remove_unnecessary_notes): Don't run it.
6810
6811 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
6812
6813 PR tree-opt/26629
6814 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
6815 (valid_in_set): Handle ARRAY_REF.
6816 Change "if min_variant or VH" to asserts.
6817 (create_component_ref_by_pieces): Handle ARRAY_REF.
6818 (create_expression_by_pieces): Likewise.
6819 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
6820
6821 2006-03-20 David Edelsohn <edelsohn@gnu.org>
6822
6823 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
6824 is operand of switch, not str[0].
6825
6826 2006-03-20 Alan Modra <amodra@bigpond.net.au>
6827
6828 * config/rs6000/rs6000.c (rs6000_handle_option): Use
6829 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
6830
6831 2006-03-19 David Edelsohn <edelsohn@gnu.org>
6832
6833 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
6834 end of insn_extra_address_constraint declaration.
6835
6836 2006-03-19 David Edelsohn <edelsohn@gnu.org>
6837
6838 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
6839 (no-sum-in-toc): Same.
6840 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
6841 variables.
6842 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
6843 NO_FP_IN_TOC for -fPIC instead of mask.
6844
6845 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
6846 (BOOT_LDFLAGS): Delete.
6847 (LDFLAGS): Delete.
6848 * config/rs6000/t-aix52: Same.
6849
6850 * config/rs6000/rs6000.md (store_multiple_power): Delete.
6851 (stmsi[345678]_power): New.
6852
6853 2006-03-17 Steve Ellcey <sje@cup.hp.com>
6854
6855 * config/ia64/ia64.opt: Add empty line to end of file.
6856
6857 2006-03-17 Richard Guenther <rguenther@suse.de>
6858
6859 PR middle-end/26721
6860 * builtins.c (get_pointer_alignment): For component style references
6861 adjust alignment to the component type alignment. Make sure
6862 to adjust alignment for component access of constants.
6863
6864 2006-03-17 David Edelsohn <edelsohn@gnu.org>
6865
6866 * config/rs6000/rs6000.md (strlensi): Emit barrier after
6867 unconditional jump.
6868
6869 2006-03-17 Paul Brook <paul@codesourcery.com>
6870
6871 * doc/install.texi: Docuemnt --with-mode.
6872 * config.gcc: Add --with-mode for arm*-*-*.
6873 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
6874
6875 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
6876
6877 * sh.c (max_labelno_before_reorg): New variable.
6878 (sh_reorg): Initialize it.
6879 (find_barrier): Check max_labelno_before_reorg before using
6880 label_to_alignment. Take length of explicit alignment insns
6881 into account. When seeing a UNSPECV_CONST_END, return it.
6882
6883 * sh.c (fixup_mova): Set mode of affected label to QImode.
6884 (untangle_mova): New function.
6885 (find_barrier): Use it. Check mode of label before decrementing
6886 num_mova.
6887 (sh_reorg): Likewise.
6888 Set mode of all insns back to VOIDmode.
6889
6890 * sh.c (MOVA_LABELREF): New macro.
6891 (mova_p, fixup_mova, sh_reorg): Use it.
6892 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
6893 ADDR_DIFF_VEC matches mova.
6894
6895 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
6896
6897 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
6898 with ATTRIBUTE_UNUSED.
6899
6900 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
6901
6902 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
6903 pointer, instead of assuming it is possible to derive the
6904 correct args size from a call insn.
6905
6906 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6907
6908 * rtl.h (CONST_INT_P): Define.
6909 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
6910 instead of GET_CODE(x) == CONST_INT.
6911 (vax_rtx_costs): Likewise.
6912 (vax_output_int_move): Likewise.
6913 (vax_output_int_add): Likewise.
6914 (legitimate_constant_address_p): Likewise.
6915 (index_term_p): Likewise.
6916 * config/vax/vax.h (PRINT_OPERAND): Likewise.
6917 * config/vax/vax.md (and<mode>3): Likewise.
6918 (ashrsi3): Likewise.
6919 (extv): Likewise.
6920 (movstricthi): Likewise.
6921 (movstrictqi): Likewise.
6922 (rotrsi3): Likewise.
6923 (five unnamed insns): Likewise.
6924
6925 2006-03-16 Geoffrey Keating <geoffk@apple.com>
6926
6927 * doc/tm.texi (SDB and DWARF): Add extra parameter to
6928 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
6929 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
6930 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
6931 Pass to ASM_OUTPUT_DWARF_OFFSET.
6932 * dwarf2out.c (debug_frame_section): New.
6933 (output_call_frame_info): Use debug_frame_section. Pass it to
6934 dw2_asm_output_offset.
6935 (output_die): Pass appropriate section to dw2_asm_output_offset.
6936 (output_compilation_unit_header): Likewise.
6937 (output_pubnames): Likewise.
6938 (output_aranges): Likewise.
6939 (enum dw_val_class): Break dw_val_class_lbl_offset into
6940 dw_val_class_lineptr and dw_val_class_macptr.
6941 (add_AT_lbl_offset): Delete.
6942 (add_AT_lineptr): New.
6943 (add_AT_macptr): New.
6944 (AT_lbl): Expect a lineptr or macptr.
6945 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
6946 (attr_checksum): Likewise.
6947 (same_dw_val_p): Likewise.
6948 (size_of_die): Likewise.
6949 (value_format): Likewise.
6950 (output_die): Likewise.
6951 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
6952 add_AT_lbl_offset.
6953 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
6954 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
6955 * config/darwin-protos.h (darwin_file_start): New.
6956 (darwin_asm_output_dwarf_offset): New.
6957 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
6958 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
6959 darwin_file_start.
6960 * config/darwin.c (darwin_emit_unwind_label): Don't output label
6961 if not EH section; simplify.
6962 (darwin_file_start): New.
6963 (darwin_asm_output_dwarf_offset): New.
6964 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
6965 mark as 'debug'.
6966 (DEBUG_INFO_SECTION): Likewise.
6967 (DEBUG_ABBREV_SECTION): Likewise.
6968 (DEBUG_ARANGES_SECTION): Likewise.
6969 (DEBUG_MACINFO_SECTION): Likewise.
6970 (DEBUG_LINE_SECTION): Likewise.
6971 (DEBUG_LOC_SECTION): Likewise.
6972 (DEBUG_PUBNAMES_SECTION): Likewise.
6973 (DEBUG_STR_SECTION): Likewise.
6974 (DEBUG_RANGES_SECTION): Likewise.
6975 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
6976 (ASM_OUTPUT_DWARF_OFFSET): New.
6977
6978 2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
6979
6980 * config.gcc (tm_defines): Always add to previous value rather
6981 than replacing it.
6982
6983 2006-03-16 Richard Sandiford <richard@codesourcery.com>
6984
6985 * config/mips/predicates.md (splittable_const_int_operand): New,
6986 split from move_operand.
6987 (splittable_symbolic_operand): New.
6988 (move_operand): Add commentary. Use splittable_const_int_operand.
6989 Inline mips_atomic_symbolic_constant_p.
6990 * config/mips/mips.md: Add combine splitters for handling moves
6991 of splittable_const_int_operands and splittable_symbolic_operands.
6992 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
6993 (mips_split_symbol): Declare.
6994 (mips_move_integer): Declare.
6995 * config/mips/mips.c (mips_split_p): Make global.
6996 (TARGET_MIN_ANCHOR_OFFSET): Override default.
6997 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
6998 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
6999 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
7000 (mips_offset_within_object_p): Handle block symbols.
7001 (mips_atomic_symbolic_constant_p): Delete.
7002 (mips_cannot_force_const_mem): Return false for constants that
7003 mips_legitimize_move can handle.
7004 (mips_use_blocks_for_constant_p): New function.
7005 (mips_split_symbol): Make global.
7006 (mips_move_integer): Likewise. Add a temporary register argument.
7007 (mips_legitimize_const_move): Use splittable_const_int_operand and
7008 splittable_symbolic_operand.
7009 (mips_use_anchors_for_symbol_p): New function.
7010 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
7011 (mips_split_p): Declare.
7012
7013 2006-03-16 Richard Sandiford <richard@codesourcery.com>
7014
7015 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
7016 (mips*-*-linux*): Likewise.
7017
7018 2006-03-16 Roger Sayle <roger@eyesopen.com>
7019 Daniel Speyer <dspeyer@wam.umd.edu>
7020
7021 PR middle-end/18259
7022 * tree-dump.c (dump_real): New function.
7023 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
7024 * Makefile.in (REAL_H): New macro for dependencies on real.h.
7025 (tree-dump.o): Add $(REAL_H) to the dependencies.
7026
7027 2006-03-16 Roger Sayle <roger@eyesopen.com>
7028
7029 PR middle-end/21781
7030 * real.c (real_from_string): If the mantissa is zero, don't bother
7031 parsing the exponent as the result should always be zero.
7032
7033 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
7034
7035 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
7036
7037 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7038
7039 * config/ia64/ia64.c (stops_p): Added explicit initialization.
7040 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
7041 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
7042 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
7043 ia64_sched_finish_global): New static functions to implement
7044 hooks from gcc_target.sched.
7045 (spec_check_no, max_uid, pending_data_specs): New static variables.
7046 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
7047 ia64_spec_check_src_p): New static functions.
7048 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
7049 (TARGET_SCHED_ADJUST_COST): Removed.
7050 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
7051 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
7052 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7053 TARGET_SCHED_GEN_CHECK,
7054 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7055 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
7056 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
7057 Fixed to handle speculation checks.
7058 (rtx_needs_barrier): Fixed to handle speculative loads and
7059 their checks.
7060 (ia64_variable_issue): Added code to count speculative loads and their
7061 checks.
7062 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
7063 speculative loads.
7064 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
7065 New enumerations.
7066 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
7067 New constants.
7068 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
7069 (ia64_reorg): Reset stops_p to NULL after it is freed.
7070 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
7071 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
7072 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
7073 chk_a.
7074 (data_speculative, control_speculative, check_load): New attributes.
7075 (mov<mode>_advanced, mov<mode>_speculative,
7076 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
7077 zero_extend<mode>di2_speculative,
7078 zero_extend<mode>di2_speculative_advanced): New patterns for
7079 data and control speculative loads.
7080 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
7081 check loads.
7082 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
7083 New pattern for data and control speculation checks.
7084 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
7085 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
7086 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
7087 Auxiliary definitions for the patterns.
7088 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
7089 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
7090 constraints.
7091 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
7092 for speculation.
7093 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
7094 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
7095 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
7096 New resource constraints.
7097 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
7098 for speculation.
7099 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
7100 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
7101 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7102 msched-in-control-spec, msched-ldc, msched-control-ldc,
7103 msched-spec-verbose, msched-prefer-non-data-spec-insns,
7104 msched-prefer-non-control-spec-insns,
7105 msched-count-spec-in-critical-path): New flags to tune speculative
7106 scheduling.
7107 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
7108 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7109 msched-in-control-spec, msched-ldc, msched-control-ldc,
7110 msched-spec-verbose, msched-prefer-non-data-spec-insns,
7111 msched-prefer-non-control-spec-insns,
7112 msched-count-spec-in-critical-path): Document new flags.
7113
7114 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7115
7116 * target.h (struct spec_info_def): New opaque declaration.
7117 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
7118 speculate_insn, needs_block_p, gen_check,
7119 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
7120 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7121 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
7122 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
7123 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7124 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
7125 gcc_target.sched.
7126 (TARGET_SCHED): Use new macros.
7127 * rtl.h (copy_DEPS_LIST_list): New prototype.
7128 * sched-int.h (struct sched_info): Change signature of new_ready field,
7129 adjust all initializations. New fields: add_remove_insn,
7130 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
7131 region_head_or_leaf_p.
7132 (struct spec_info_def): New structure declaration.
7133 (spec_info_t): New typedef.
7134 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
7135 recovery_block, orig_pat.
7136 (glat_start, glat_end): New variables declaraions.
7137 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
7138 New access macros.
7139 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
7140 DETACH_LIFE_INFO, USE_GLAT.
7141 (enum SPEC_SCHED_FLAGS): New enumeration.
7142 (NOTE_NOTE_BB_P): New macro.
7143 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
7144 attach_life_info, debug_spec_status, check_reg_live): New functions.
7145 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
7146 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
7147 sched-ebb.c
7148 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
7149 * ddg.c (get_block_head_tail): Adjust all uses.
7150 * modulo-sched.c (get_block_head_tail): Adjust all uses.
7151 (sms_sched_info): Initialize new fields.
7152 (contributes_to_priority): Removed.
7153 * haifa-sched.c (params.h): New include.
7154 (get_block_head_tail): Adjust all uses.
7155 (ISSUE_POINTS): New macro.
7156 (glat_start, glat_end): New global variables.
7157 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
7158 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
7159 old_last_basic_block, before_recovery, current_sched_info_var,
7160 rgn_n_insns, luid): New static variables.
7161 (insn_cost1): New function. Move logic from insn_cost to here.
7162 (find_insn_reg_weight1): New function. Move logic from
7163 find_insn_reg_weight to here.
7164 (reemit_notes, move_insn, max_issue): Change signature.
7165 (move_insn1): Removed.
7166 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
7167 extend_bb): New static functions to support extension of scheduler's
7168 data structures.
7169 (generate_recovery_code, process_insn_depend_be_in_spec,
7170 begin_speculative_block, add_to_speculative_block,
7171 init_before_recovery, create_recovery_block, create_check_block_twin,
7172 fix_recovery_deps): New static functions to support
7173 generation of recovery code.
7174 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
7175 restore_bb_notes, move_block_after_check, move_succs): New static
7176 functions to support ebb scheduling.
7177 (init_glat, init_glat1, attach_life_info1, free_glat): New static
7178 functions to support handling of register live information.
7179 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
7180 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
7181 add_jump_dependencies): New static functions.
7182 (check_cfg, has_edge_p, check_sched_flags): New static functions for
7183 consistancy checking.
7184 (debug_spec_status): New function to call from debugger.
7185 (priority): Added code to handle speculation checks.
7186 (rank_for_schedule): Added code to distinguish speculative instructions.
7187 (schedule_insn): Added code to handle speculation checks.
7188 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
7189 Fixed to handle ebbs.
7190 (move_insn): Added code to handle ebb scheduling.
7191 (max_issue): Added code to use ISSUE_POINTS of instructions.
7192 (choose_ready): Added code to choose between speculative and
7193 non-speculative instructions.
7194 (schedule_block): Added code to handle ebb scheduling and scheduling of
7195 speculative instructions.
7196 (sched_init): Initialize new variables.
7197 (sched_finish): Free new variables. Print statistics.
7198 (try_ready): Added code to handle speculative instructions.
7199 * lists.c (copy_DEPS_LIST_list): New function.
7200 * sched-deps.c (extend_dependency_caches): New function. Move logic
7201 from create_dependency_caches to here.
7202 (get_dep_weak, ds_merge): Make global.
7203 * genattr.c (main): Code to output prototype for
7204 dfa_clear_single_insn_cache.
7205 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
7206 (output_dfa_clean_insn_cache_func): Code to output
7207 dfa_clear_single_insn_cache function.
7208 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
7209 n_insns.
7210 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
7211 Removed.
7212 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
7213 New static variables.
7214 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
7215 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
7216 struct sched_info.
7217 (ebb_sched_info): Initialize new fields.
7218 (get_block_head_tail): Adjust all uses.
7219 (compute_jump_reg_dependencies): Fixed to use glat_start.
7220 (schedule_ebb): Code to remove unreachable last block.
7221 (schedule_ebbs): Added code to update register live information.
7222 * sched-rgn.c (region_sched_info): Initialize new fields.
7223 (get_block_head_tail): Adjust all uses.
7224 (last_was_jump): Removed. Adjust users.
7225 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
7226 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
7227 Implement new hooks.
7228 (check_dead_notes1): New static function.
7229 (struct region): New fields: dont_calc_deps, has_real_ebb.
7230 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
7231 (BB_TO_BLOCK): Fixed to handle EBBs.
7232 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
7233 (ebb_head): New static variable.
7234 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
7235 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
7236 new fields.
7237 (compute_dom_prob_ps): New assertion.
7238 (check_live_1, update_live_1): Fixed to work with glat_start instead of
7239 global_live_at_start.
7240 (init_ready_list): New assertions.
7241 (can_schedule_ready_p): Split update code to begin_schedule_ready.
7242 (new_ready): Add support for BEGIN_CONTROL speculation.
7243 (schedule_insns): Fixed code that updates register live information
7244 to handle EBBs.
7245 (schedule_region): Fixed to handle EBBs.
7246 (init_regions): Use extend_regions and check_dead_notes1.
7247 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
7248 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
7249 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
7250 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7251 TARGET_SCHED_GEN_CHECK,
7252 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7253 TARGET_SCHED_SET_SCHED_FLAGS): Document.
7254 * doc/invoke.texi (max-sched-insn-conflict-delay,
7255 sched-spec-prob-cutoff): Document.
7256
7257 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7258
7259 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
7260 inter_tick, queue_index.
7261 (struct sched_info): Change signature of init_ready_list field.
7262 Adjust all initializations.
7263 (RESOLVED_DEPS): New access macro.
7264 (ready_add): Remove prototype.
7265 (try_ready): Add prototype.
7266 * sched-rgn.c (init_ready_list): Use try_ready.
7267 (schedule_region): Initialize
7268 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
7269 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
7270 (init_ready_list): Use try_ready.
7271 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
7272 * lists.c (remove_list_elem): Remove `static'.
7273 (remove_free_INSN_LIST_elem): New function.
7274 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
7275 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
7276 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
7277 New constants.
7278 (readyp): New variable.
7279 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
7280 change_queue_index, resolve_dep): New static functions.
7281 (try_ready): New function. Adjust callers in sched-rgn.c and
7282 sched-ebb.c to use it instead of ready_add.
7283 (clock_var): Move at the begining of file.
7284 (rank_for_schedule): Fix typo.
7285 (queue_insn): Add assertion. Handle QUEUE_INDEX.
7286 (ready_lastpos): Enforce assertion.
7287 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
7288 update all callers.
7289 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
7290 (schedule_insn): Rewrite to use try_ready and resolve_dep.
7291 (queue_to_ready): Use free_INSN_LIST_list.
7292 (early_queue_to_ready): Fix typo.
7293 (schedule_block): Init readyp. Move init_ready_list call after the
7294 initialization of clock_var. Fix error in rejecting insn by
7295 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
7296 that previously corrected INSN_TICKs. Add code for handling
7297 QUEUE_INDEX.
7298 (set_priorities): Fix typo.
7299 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
7300 Clarify comment and code that keeps current_sched_info->next_tail
7301 non-null.
7302
7303 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7304
7305 * sched-rgn.c (extend_rgns): New static function.
7306 (find_rgns): Use it.
7307 (gather_region_statistics, print_region_statistics): New static
7308 functions.
7309 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
7310 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
7311
7312 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7313 Andrey Belevantsev <abel@ispras.ru>
7314
7315 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
7316 * lists.c (unused_deps_list): New variable.
7317 (free_list): Add assertions to verify the proper distinguishing
7318 between INSN_LISTs and DEPS_LISTs.
7319 (find_list_elem, remove_list_elem, remove_list_node): New static
7320 functions.
7321 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
7322 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
7323 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
7324 (alloc_INSN_LIST): Assert that the list we're working on is indeed
7325 an INSN_LIST.
7326 (free_INSN_LIST_node): Likewise.
7327 * modulo-sched.c (current_sched_info): Initialize flags field.
7328 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
7329 * rtl.def (DEPS_LIST): Define.
7330 * rtl.h: Declare new functions from lists.c.
7331 * sched-deps.c (spec_dependency_cache): New static variable.
7332 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
7333 (add_dependence): Change return type to void. Move the logic to ...
7334 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
7335 (delete_all_dependences): Add comment about forward_dependency_cache.
7336 Handle spec_dependency_cache. Handle DEPS_LISTs.
7337 (fixup_sched_groups): Clarify the change of priority of output
7338 and anti dependencies.
7339 (sched_analyze_2): Adjust add_dependence calls to create data
7340 speculative dependence.
7341 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
7342 Adjust all callers. Handle DEPS_LISTS.
7343 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
7344 presence of speculation.
7345 (init_dependency_caches, free_dependency_caches):
7346 Handle spec_dependency_cache.
7347 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
7348 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
7349 New static functions.
7350 (add_or_update_back_dep, add_or_update_back_forw_dep,
7351 add_back_forw_dep, delete_back_forw_dep): New functions.
7352 * sched-int.h (ds_t, dw_t): New typedefs.
7353 (struct sched_info): Add new field flags.
7354 (struct haifa_insn_data): Add new bitfield has_internal_dep.
7355 Prototype new sched-deps.c functions.
7356 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
7357 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
7358 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
7359 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
7360 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
7361 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
7362 New constants.
7363 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
7364 New enums.
7365 * sched-rgn.c (current_sched_info): Initialize flags field.
7366 (schedule_insns): Initialize current_sched_info before the sched_init
7367 call.
7368 * sched-ebb.c (current_sched_info): Initialize flags field.
7369 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
7370 Call add_or_update_back_dep instead of add_dependence.
7371 Create control speculative dependencies.
7372 (schedule_insns): Initialize current_sched_info before the sched_init
7373 call.
7374
7375 2006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
7376
7377 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
7378 fs->signal_frame.
7379 (sh_fallback_frame_state): Likewise.
7380
7381 2006-03-15 Geoffrey Keating <geoffk@apple.com>
7382
7383 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
7384 Do switch on default_use_cxa_atexit.
7385 (powerpc*-*-darwin*): Build crt2.o on powerpc.
7386 * config/darwin-crt3.o: New.
7387 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
7388 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
7389 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
7390 OS version.
7391 * config/rs6000/t-darwin: Move crt2.o building to here.
7392 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
7393 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
7394 of __cxa_atexit.
7395
7396 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7397
7398 * config/vax/vax.c (nonindexed_address_p): Change logical negation
7399 from '! xxx' to '!xxx' for coding-style conformance.
7400 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
7401 (EXTRA_CONSTRAINT): Likewise.
7402 * config/vax/vax.md (four unnamed insns): Likewise.
7403
7404 2006-03-15 Paul Brook <paul@codesourcery.com>
7405
7406 * config/arm/arm.c (minipool_pad): New.
7407 (add_minipool_forward_ref): Include pool alignment padding in address
7408 calculation.
7409 (push_minipool_fix): Set minipool_pad.
7410 (minipool_pad): Ditto.
7411
7412 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7413
7414 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
7415 instead of GET_CODE() == MEM and REG_P() instead of
7416 GET_CODE() == REG.
7417 (print_operand_address): Likewise.
7418 (vax_address_cost): Likewise.
7419 (vax_rtx_costs): Likewise.
7420 (vax_notice_update_cc): Likewise.
7421 (vax_output_int_add): Likewise.
7422 (INDEX_REGISTER_P): Likewise.
7423 (BASE_REGISTER_P): Likewise.
7424 (nonindexed_address_p): Likewise.
7425 (vax_mode_dependent_address_p): Likewise.
7426 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
7427 (PRINT_OPERAND): Likewise.
7428 * config/vax/vax.md (ashlsi3): Likewise.
7429 (ashlsi3): Likewise.
7430 (some more unnamed insns): Likewise.
7431
7432 2006-03-15 Kazu Hirata <kazu@codesourcery.com>
7433
7434 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
7435 iterator-style macro.
7436 (mark_control_dependent_edges_necessary): Update the use of
7437 EXECUTE_IF_CONTROL_DEPENDENT.
7438
7439 2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
7440
7441 * config/sh/predicates.md (cache_address_operand): Special.
7442 (ua_address_operand): Likewise.
7443
7444 2006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
7445
7446 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
7447 loop notes.
7448 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
7449
7450 2006-03-15 Andreas Schwab <schwab@suse.de>
7451
7452 * gensupport.c (identify_predicable_attribute): Don't free p_false
7453 when it is still in use.
7454
7455 2006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
7456
7457 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
7458 the default setting here.
7459
7460 2006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
7461
7462 * tree-pass.h (pass_cfg): Remove.
7463 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
7464 * passes.c (pass_cfg): Don't run it.
7465
7466 2006-03-14 Kazu Hirata <kazu@codesourcery.com>
7467
7468 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
7469 * reg-stack.c (stack_regs_mentioned_data): Change the type to
7470 VEC(char,heap) *.
7471 (stack_regs_mentioned): Update the uses of
7472 stack_regs_mentioned_data. Don't access the array beyond its
7473 end.
7474 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
7475 Don't include gt-reg-stack.h.
7476
7477 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
7478 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
7479
7480 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
7481
7482 PR middle-end/26684
7483 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
7484 STACK_REGS.
7485
7486 2006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7487
7488 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
7489
7490 2006-03-14 Richard Guenther <rguenther@suse.de>
7491
7492 PR tree-optimization/26672
7493 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
7494 SSA form.
7495
7496 2006-03-14 Richard Guenther <rguenther@suse.de>
7497
7498 PR tree-optimization/26667
7499 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
7500 node for the callees. Always allow inlining if it will shrink
7501 the function size.
7502
7503 2006-03-14 Richard Guenther <rguenther@suse.de>
7504
7505 PR middle-end/26659
7506 * builtins.c (get_pointer_alignment): Prefer alignment
7507 information from decls over that from types.
7508
7509 2006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
7510
7511 PR target/26657
7512 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
7513
7514 2006-03-14 Joseph S. Myers <joseph@codesourcery.com>
7515
7516 * config/rs6000/rs6000.opt (mdlmzb): New option.
7517 (msched-prolog, msched-epilog): Use Var not Mask.
7518 * doc/invoke.texi (-mdlmzb): Document.
7519 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
7520 MASK_SCHED_PROLOG.
7521 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
7522 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
7523
7524 2006-03-13 Uttam Pawar <uttamp@us.ibm.com>
7525
7526 PR rtl-optimization/25739
7527 * bt-load.c (augment_live_range): Free tos pointer.
7528
7529 * gensupport.c (identify_predicable_attribute): Free
7530 p_false pointer.
7531 * gcov.c (create_file_names): Free name pointer.
7532
7533 2006-03-13 Roger Sayle <roger@eyesopen.com>
7534
7535 PR middle-end/26557
7536 * stmt.c (emit_case_nodes): Handle the case where the index is a
7537 CONST_INT, where the comparison mode is specified by the index type.
7538
7539 2006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7540
7541 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
7542 is defined.
7543
7544 2006-03-13 Richard Sandiford <richard@codesourcery.com>
7545
7546 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
7547 (*branch_fp_inverted): Likewise.
7548
7549 2006-03-13 Jakub Jelinek <jakub@redhat.com>
7550
7551 PR middle-end/25989
7552 * omp-low.c (expand_omp_for_generic): Mark istart0
7553 and iend0 as addressable.
7554
7555 2006-03-13 Jie Zhang <jie.zhang@analog.com>
7556
7557 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
7558
7559 2006-03-13 Jeff Law <law@redhat.com>
7560
7561 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
7562 virtual operands are interesting.
7563 (vrp_visit_stmt): Corresponding changes.
7564
7565 2006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
7566
7567 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
7568 of RETS.
7569 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
7570 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
7571 * config/bfin/crti.S: Use it instead of __PIC__.
7572 * config/bfin/crtn.S: Likewise.
7573
7574 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
7575 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
7576 not if flag_pic.
7577 Lose 'G' modifier for call operand.
7578 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
7579 recognize 'G' modifier.
7580
7581 2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
7582
7583 PR middle-end/18859
7584 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
7585 * stmt.c (expand_case): Likewise.
7586
7587 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
7588
7589 PR rtl-optimization/26254
7590 * loop-invariant.c (seq_insns_valid_p): New function.
7591 (move_invariant_reg): Only emit new code if it is valid.
7592
7593 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
7594
7595 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
7596 Removed.
7597 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
7598 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
7599 (commit_one_edge_insertion): Do not look for loop notes.
7600
7601 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
7602
7603 * jump.c (follow_jumps): Do not check for loop notes. Move check for
7604 flag_test_coverage out of loop.
7605
7606 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
7607
7608 * final.c (shorten_branches): Remove outdated comment, and turn
7609 the if branch that guards it to continue.
7610
7611 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
7612
7613 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
7614 * cfgloop.h (struct loop): Remove unused fields.
7615
7616 2006-03-13 Kazu Hirata <kazu@codesourcery.com>
7617
7618 * doc/invoke.texi (-fdump-rtl-loop): Remove.
7619 (-dL, -fdump-rtl-loop2): Update the dump file names
7620
7621 * doc/invoke.texi: Update dump file names.
7622
7623 2006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
7624
7625 * predict.c (estimate_probability): Remove.
7626 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
7627 * basic-block.h (estimate_probability): Remove prototype.
7628 * passes.c (finish_optimization_passes): Dump branch prediction or
7629 profiling heuristics to the .profile tree dump.
7630 (init_optimization_passes): Unqueue pass_branch_prob.
7631
7632 * doc/invoke.texi (-fdump-rtl-bp): Remove.
7633
7634 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
7635
7636 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
7637 * rtl.h (LABEL_NEXTREF): Remove field accessor.
7638
7639 2006-03-11 Eric Botcazou <ebotcazou@adacore.com>
7640
7641 * function.h (frame_offset_overflow): Declare.
7642 * function.c (frame_offset_overflow): New function.
7643 (assign_stack_local_1): Call it to detect that the offset overflows.
7644 * cfgexpand.c (alloc_stack_frame_space): Likewise.
7645
7646 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
7647
7648 * config/sh/sh.c: Include alloc-pool.h.
7649 (label_ref_list_pool): New alloc pool.
7650 (label_ref_list_t): New type for lists of labels.
7651 (struct pool_node): Make wend a label_ref_list_t.
7652 (add_constant): Use the new type, eradicate LABEL_NEXTREF
7653 references.
7654 (dump_table): Likewise.
7655 (sh_reorg): Set up the alloc pool before using add_constant and
7656 dump_table, and destroy it when finishing.
7657
7658 2006-03-11 Richard Sandiford <richard@codesourcery.com>
7659
7660 * config/mips/mips.c: Remove redundant comment.
7661
7662 2006-03-10 Jason Merrill <jason@redhat.com>
7663
7664 PR c/26004
7665 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
7666 the target was declared 'register'.
7667
7668 2006-03-10 Adam Nemet <anemet@caviumnetworks.com>
7669
7670 * genpreds.c (write_insn_constraint_len): Change definition of
7671 insn_constraint_len to return size_t to match the declaration.
7672
7673 2006-03-10 DJ Delorie <dj@redhat.com>
7674
7675 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
7676 start at zero.
7677 (m32c_expand_insv): Fix test for an AND mask.
7678
7679 2006-03-10 Richard Guenther <rguenther@suse.de>
7680
7681 PR middle-end/26565
7682 * builtins.c (get_pointer_alignment): Handle component
7683 references for field alignment.
7684
7685 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
7686
7687 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
7688 when building with libgloss.
7689 (sh*elf): Implement --without-fp option.
7690 (sh64-superh-linux*): Don't multilib.
7691
7692 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
7693
7694 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
7695
7696 2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
7697
7698 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
7699 Set it when one of the replacement functions returned true.
7700 Return TODO_cleanup_cfg if cfgchanged is true.
7701 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
7702
7703 2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
7704
7705 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
7706 instead of gen_lowpart.
7707
7708 2006-03-09 Richard Sandiford <richard@codesourcery.com>
7709
7710 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
7711 interface.
7712 (mips_output_order_conditional_branch): Declare.
7713 * config/mips/mips.h (MIPS_BRANCH): New macro.
7714 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
7715 for the comparison. Use gen_condjump.
7716 (mips_output_conditional_branch): Rework interface to take the
7717 asm templates for a direct branch and the inverse of a direct branch.
7718 (mips_output_order_conditional_branch): New function.
7719 (mips_builtin_branch_and_move): New function.
7720 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
7721 branch condition. Use gen_single_cc as the condition for
7722 __builtin_mips_upper_* or __builtin_mips_lower_*.
7723 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
7724 Use VOIDmode for the branch condition.
7725 * config/mips/predicates.md (order_operator): New predicate.
7726 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
7727 (branch_fp): Rename to...
7728 (*branch_fp): ...this. Remove mode from comparison operator.
7729 Use new mips_output_conditional_branch interface.
7730 (branch_fp_inverted): Rename to...
7731 (*branch_fp_inverted): ...this and update as for *branch_fp.
7732 (*branch_zero<mode>): Rename to...
7733 (*branch_order<mode>): ...this. Remove mode from comparison operator.
7734 Use mips_output_order_conditional_branch. Only accept ordered
7735 comparisons.
7736 (*branch_zero<mode>_inverted): Rename to...
7737 (*branch_order<mode>_inverted): ...this and update as for
7738 *branch_order<mode>.
7739 (*branch_equality<mode>): Accept zero as the second operand to
7740 the equality operator. Use the new mips_output_conditional_branch
7741 interface.
7742 (*branch_equality<mode>_inverted): Likewise.
7743 (condjump): New expander.
7744 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
7745 operator.
7746 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
7747 (bc1any2t, bc1any2f): Likewise.
7748 (single_cc): New expander.
7749 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
7750
7751 2006-03-09 Richard Sandiford <richard@codesourcery.com>
7752
7753 * doc/md.texi: Update documentation of MIPS constraints.
7754 * config/mips/constraints.md: New file.
7755 * config/mips/mips.md: Include it.
7756 * config/mips/mips.c (mips_char_to_class): Delete.
7757 (override_options): Don't initialize mips_char_to_class.
7758 * config/mips/mips.h (mips_char_to_class): Delete.
7759 (REG_CLASS_FROM_LETTER): Delete.
7760 (CONST_OK_FOR_LETTER_P): Delete.
7761 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7762 (EXTRA_CONSTRAINT_Y): Delete.
7763 (EXTRA_CONSTRAINT_STR): Delete.
7764 (CONSTRAINT_LEN): Delete.
7765 (EXTRA_MEMORY_CONSTRAINT): Delete.
7766
7767 2006-03-09 Diego Novillo <dnovillo@redhat.com>
7768
7769 * tree-cfg.c (move_block_to_fn): Remove the statements from the
7770 original fn's eh regions.
7771
7772 2006-03-09 Eric Botcazou <ebotcazou@adacore.com>
7773
7774 * fold-const.c (build_range_check): Make sure to use a valid type to
7775 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
7776 transformation.
7777
7778 (range_predecessor): New static function.
7779 (range_successor): Likewise.
7780 (merge_ranges): Use them to compute predecessors and successors of
7781 range bounds.
7782
7783 2006-03-09 Roger Sayle <roger@eyesopen.com>
7784
7785 PR middle-end/26561
7786 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
7787 X op C3, consider whether C3 overflows towards +Inf or -Inf.
7788
7789 2006-03-08 DJ Delorie <dj@redhat.com>
7790
7791 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
7792 (addpsi3): Expand to include memory operands. Remove
7793 reload-specific splits.
7794 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
7795 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
7796 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
7797 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
7798 (shift1_qi, shift1_hi, insv): New.
7799 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
7800 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
7801 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
7802 cond_to_int): New.
7803 * config/m32c/m32c-protos.h: Update as needed.
7804 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
7805 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
7806 Fail for unrecognized R* constraints.
7807 (m32c_cannot_change_mode_class): Be more picky about pseudos.
7808 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
7809 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
7810 Add Sp constraint.
7811 (m32c_init_libfuncs): New.
7812 (m32c_legitimate_address_p): Add debug wrapper.
7813 (m32c_rtx_costs): New.
7814 (m32c_address_cost): New.
7815 (conversions): Add 'B' prefix.
7816 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
7817 operands, or word regnames for QI operands. 'B' prints bit
7818 position.
7819 (m32c_expand_setmemhi): New.
7820 (m32c_expand_movmemhi): New.
7821 (m32c_expand_movstr): New.
7822 (m32c_expand_cmpstr): New.
7823 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
7824 (m32c_expand_neg_mulpsi3): Handle non-ints.
7825 (m32c_cmp_flg_0): New.
7826 (m32c_expand_movcc): New.
7827 (m32c_expand_insv): New.
7828 (m32c_scc_pattern): New.
7829 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
7830 a0/a1 out of SIregs.
7831 (STORE_FLAG_VALUE): New.
7832 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
7833 code macros.
7834 (no_insn): New.
7835 * config/m32c/mov.md: Make constraints more liberal.
7836 (zero_extendqihi2): Optimize r0/r1 case.
7837 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
7838 * config/m32c/predicates.md (m32c_any_operand): New.
7839 (m32c_nonimmediate_operand): New.
7840 (m32c_hl_operand): New.
7841 (m32c_r3_operand): New.
7842 (ap_operand): New.
7843 (ma_operand): New.
7844 (memsym_operand): New.
7845 (memimmed_operand): New.
7846 (a_qi_operand): New.
7847 (m32c_eqne_operator): New.
7848 (m32c_1bit8_operand): New.
7849 (m32c_1bit16_operand): New.
7850 (m32c_1mask8_operand): New.
7851 (m32c_1mask16_operand): New.
7852 * config/m32c/blkmov.md: New file.
7853 * config/m32c/t-m32c (MD_FILES): Add blkmov.
7854
7855 2006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
7856
7857 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
7858 unsigned to fix signed/unsigned comparison issue in
7859 DWARF2_FRAME_REG_OUT.
7860 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
7861 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
7862
7863 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
7864 of ptr into the ENABLE_CHECKING section.
7865
7866 2006-03-08 Jeff Law <law@redhat.com>
7867
7868 * tree-vrp.c (infer_value_range): Only count pointer uses
7869 and dereferences if -fdelete-null-pointer-checks is enabled.
7870
7871 * tree-vrp.c (find_assert_locations): Infer value ranges for
7872 single use pointers, but do not create ASSERT_EXPRs for them.
7873 When a non-null range is inferred for a pointer, backwards
7874 propagate that range to other equivalent pointers through the
7875 use-def chain.
7876
7877 2006-03-08 Paolo Bonzini <bonzini@gnu.org>
7878
7879 PR bootstrap/26500
7880 * Makefile.in (dvi, html, install-info): Invoke the corresponding
7881 language hook targets.
7882 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
7883 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
7884 if language hook targets were missing.
7885
7886 2006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
7887
7888 * tree-ssa-opfinalize.h: Removed.
7889 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
7890 dependency.
7891 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
7892 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
7893 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
7894 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
7895 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
7896 finalize_ssa_v_must_def_ops): New.
7897
7898 2006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
7899
7900 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
7901 block as parameter.
7902
7903 2006-03-07 Geoffrey Keating <geoffk@apple.com>
7904
7905 * varasm.c (assemble_end_function): Say that 'fnname' is unused.
7906
7907 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
7908 addresses with offsets; reorganize.
7909
7910 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
7911 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
7912 (expand_builtin_init_dwarf_reg_sizes): Likewise.
7913
7914 2006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
7915
7916 PR target/26588
7917 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
7918
7919 2006-03-08 Ben Elliston <bje@au.ibm.com>
7920
7921 * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
7922
7923 2006-03-07 Aldy Hernandez <aldyh@redhat.com>
7924
7925 PR gomp/26238
7926 * doc/passes.texi (Tree-SSA passes): Document omp lowering and
7927 expansion.
7928
7929 2006-03-07 Richard Guenther <rguenther@suse.de>
7930
7931 PR tree-optimization/26587
7932 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
7933
7934 2006-03-07 Richard Sandiford <richard@codesourcery.com>
7935
7936 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
7937
7938 2006-03-07 Richard Sandiford <richard@codesourcery.com>
7939
7940 * hooks.c (hook_bool_mode_rtx_true): New function.
7941 * hooks.h (hook_bool_mode_rtx_true): Declare.
7942 * toplev.c (compile_file): Call output_shared_constant_pool.
7943 * varasm.c (shared_constant_pool): New variable.
7944 (assemble_start_function, assemble_end_function): Remove arguments
7945 from call to output_constant_pool.
7946 (create_constant_pool): New function, split out from...
7947 (init_varasm_status): ...here.
7948 (force_const_mem): Choose between the shared and per-function constant
7949 pools. Set current_function_uses_const_pool when reusing old entries
7950 as well as when creating new ones.
7951 (mark_constant): Ignore data argument.
7952 (mark_constants): Remove pool argument.
7953 (mark_constant_pool): Likewise. Use current_function_uses_const_pool
7954 to decide whether the function uses a constant pool.
7955 (output_constant_pool_contents): New function, split out from...
7956 (output_constant_pool): ...here.
7957 (output_shared_constant_pool): New function.
7958 (init_varasm_once): Initialize shared_constant_pool.
7959 * output.h (output_constant_pool): Delete.
7960 (output_shared_constant_pool): Declare.
7961 * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
7962 * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
7963
7964 2006-03-06 Nick Clifton <nickc@redhat.com>
7965
7966 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
7967 flag_strength_reduce.
7968
7969 2006-03-06 Ben Elliston <bje@au.ibm.com>
7970
7971 * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
7972 x86_64-*-linux* configurations.
7973
7974 * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
7975 (LIBGCC2_WORDS_BIG_ENDIAN): Define.
7976
7977 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
7978
7979 * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
7980 Remove.
7981 * basic-block.h: Remove the extern for
7982 rediscover_loops_after_threading.
7983
7984 * cfgloop.c (cancel_loop): Make it static.
7985 * cfgloop.h: Remove the prototype for cancel_loop.
7986
7987 * flow.c (recompute_reg_usage): Make it static.
7988 * rtl.h: Remove the prototype for recompute_reg_usage.
7989
7990 * function.c (use_return_register): Make it static.
7991 * function.h: Remove the prototype.
7992
7993 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
7994
7995 * recog.c (volatile_mem_p, validate_change_maybe_volatile):
7996 Remove.
7997 * recog.h: Remove the prototype for
7998 validate_change_maybe_volatile.
7999
8000 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
8001
8002 * rtlanal.c (replace_reg): Remove.
8003 * rtl.h: Remove the prototype for replace_reg.
8004
8005 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
8006
8007 * regclass.c (reg_scan_update): Remove.
8008 (reg_scan_mark_refs): Remove the last argument.
8009 * rtl.h: Remove the prototype for reg_scan_update.
8010
8011 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8012
8013 * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
8014 combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
8015 config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
8016 config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
8017 df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
8018 loop-invariant.c, omp-low.c, opts.c, passes.c,
8019 rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
8020 tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
8021 tree-ssa-structalias.c, tree-ssa-threadedge.c,
8022 tree-ssa-threadupdate.c, tree-vect-patterns.c,
8023 tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
8024 unwind-dw2.c: Fix comment typos. Follow spelling conventions.
8025
8026 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8027
8028 * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
8029 * dwarf2out.h: Remove the prototype for
8030 dwarf2out_add_library_unit_info.
8031
8032 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8033
8034 * tree.c (add_var_to_bind_expr): Remove.
8035 * tree.h: Remove the prototype for add_var_to_bind_expr.
8036
8037 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8038
8039 * regclass.c (n_non_fixed_regs): Remove.
8040 (init_reg_sets_1, globalize_reg): Remove all uses of
8041 n_non_fixed_regs.
8042 * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
8043
8044 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8045
8046 * rtlanal.c (insns_safe_to_move_p): Remove.
8047 * rtl.h: Remove the prototype for insns_safe_to_move_p.
8048
8049 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8050
8051 * expmed.c (expand_mult_add): Remove.
8052 * expr.h: Remove the prototype for expand_mult_add.
8053
8054 2006-03-04 Jakub Jelinek <jakub@redhat.com>
8055
8056 * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
8057 and REG_SAVED_VAL_EXP constants.
8058 * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
8059 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
8060 Handle regs stored by value.
8061 (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
8062 (execute_cfa_program): Handle DW_CFA_val_offset,
8063 DW_CFA_val_offset_sf and DW_CFA_val_expression.
8064 (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
8065 value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
8066 (uw_install_context_1): Handle target regs stored by value.
8067
8068 2006-03-03 Daniel Berlin <dberlin@dberlin.org>
8069
8070 * tree-sra.c (tree_sra): Return todoflags;
8071 (generate_one_element): Set TODO_update_smt_usage if needed.
8072 (pass_sra): Remove TODO_update_smt_usage.
8073 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
8074 parameter.
8075 (tree_ssa_forward_propagate_single_use_vars): Return
8076 TODO_update_smt_usage if we need to update SMT usage.
8077 (pass_forwprop): Remove TODO_update_smt_usage.
8078
8079 2006-03-03 Diego Novillo <dnovillo@redhat.com>
8080
8081 * tree-ssa-operands.c: Tidy whitespace. Fix spelling.
8082 (correct_use_link): Remove reference to get_stmt_operands.
8083 (update_stmt_operands): Likewise.
8084 (get_modify_expr_operands): New function factored out of
8085 parse_ssa_operands and get_expr_operands.
8086 Try to create V_MUST_DEFs for LHS by default.
8087 (get_expr_operands) <case MODIFY_EXPR>: Call
8088 get_modify_expr_operands.
8089 <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
8090 <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
8091 (parse_ssa_operands) <case MODIFY_EXPR>: Call
8092 get_modify_expr_operands.
8093
8094 2006-03-03 Kazu Hirata <kazu@codesourcery.com>
8095
8096 * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
8097 * tree-flow.h: Remove the prototype for
8098 referenced_var_lookup_if_exists.
8099
8100 2006-03-03 Steve Ellcey <sje@cup.hp.com>
8101
8102 PR rtl-optimization/26345
8103 PR target/19061
8104 * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
8105
8106 2006-03-03 Roger Sayle <roger@eyesopen.com>
8107
8108 PR tree-optimization/26524
8109 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
8110 fold_convert to create a constant of the appropriate type.
8111
8112 2006-03-03 Richard Sandiford <richard@codesourcery.com>
8113
8114 * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8115 SYMBOL_REF_IN_BLOCK_P.
8116 * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
8117 of SYMBOL_FLAG_IN_BLOCK.
8118 * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
8119 instead of SYMBOL_REF_IN_BLOCK_P.
8120 * explow.c (use_anchored_address): Likewise.
8121 * rtl.c (rtx_size): Likewise.
8122 * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
8123 instead of SYMBOL_FLAG_IN_BLOCK.
8124 (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8125 SYMBOL_REF_IN_BLOCK_P.
8126 (assemble_variable): Likewise.
8127 (output_constant_def_contents): Likewise.
8128 (output_constant_pool): Likewise.
8129 (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
8130 instead of SYMBOL_FLAG_IN_BLOCK.
8131 * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8132 SYMBOL_REF_IN_BLOCK_P.
8133 (SYMBOL_REF_BLOCK): Likewise.
8134 (SYMBOL_REF_OFFSET): Likewise.
8135 (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8136 SYMBOL_REF_IN_BLOCK_P.
8137 (SYMBOL_FLAG_IN_BLOCK): Replace with...
8138 (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
8139 (SYMBOL_REF_IN_BLOCK_P): Replace with...
8140 (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
8141
8142 2006-03-03 Jakub Jelinek <jakub@redhat.com>
8143
8144 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
8145
8146 2006-03-02 Roger Sayle <roger@eyesopen.com>
8147
8148 * simplify-rtx.c (simplify_unary_operation): When simplifying
8149 (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
8150 that we perform the right shift in the appropriate mode, and
8151 then extend or truncate the result to requested mode.
8152
8153 2006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
8154
8155 * gengtype.c (main): Handle double_int type.
8156 * tree.h (struct tree_int_cst): Make type of int_cst double_int.
8157 * double-int.c: New file.
8158 * double-int.h: New file.
8159 * system.h: Include doubleint.h.
8160 * Makefile.in (SYSTEM_H): Include double-int.h.
8161 (double-int.o): Add.
8162
8163 2006-03-03 Joseph S. Myers <joseph@codesourcery.com>
8164
8165 PR bootstrap/26478
8166 * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
8167 copying over it.
8168
8169 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
8170
8171 * tree-vrp.c (remove_range_assertions): Do not update statements
8172 unnecessarily.
8173
8174 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
8175
8176 * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
8177 cleanup.
8178 * gcse.c (rest_of_handle_gcse): Ditto.
8179 * except.c (gate_handle_eh): Ditto.
8180 * cfgcleanup.c (rest_of_handle_jump2): Ditto.
8181 * basic-block.h (CLEANUP_PRE_LOOP): Remove.
8182
8183 2006-03-02 Eric Christopher <echristo@apple.com>
8184
8185 * config/i386/i386.c (machopic_output_stub): Add indirection to
8186 jump.
8187
8188 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
8189
8190 * loop.c: Removed.
8191
8192 2006-03-02 David S. Miller <davem@sunset.davemloft.net>
8193
8194 Sun Niagara specific optimizations.
8195 * config.gcc: Recognize niagara as target.
8196 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
8197 (TARGET_CPU_niagara): Define.
8198 (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
8199 (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
8200 (CPP_CPU_SPEC): Handle -mcpu=niagara.
8201 (ASM_CPU_SPEC): Likewise.
8202 (PROCESSOR_NIAGARA): New enum entry.
8203 (REGISTER_MOVE_COST): Handle Niagara.
8204 (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
8205 * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
8206 (sparc_override_options): Recognize "niagara", set appropriate
8207 default MASK_* values for it, and align functions to 32-bytes
8208 by default just like ULTRASPARC/ULTRASPARC3.
8209 (sparc_initialize_trampoline): Handle niagara like ultrasparc.
8210 (sparc64_initialize_trampoline): Likewise.
8211 (sparc_use_sched_lookahead): Use zero for niagara.
8212 (sparc_issue_rate): Use one for niagara.
8213 * config/sparc/niagara.md: New file.
8214 * config/sparc/sparc.md: Include it.
8215 * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
8216 ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
8217 when default cpu is niagara.
8218 (CPP_CPU_SPEC): Handle -mcpu=niagara.
8219 (ASM_CPU_SPEC): Likewise.
8220 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
8221 when default cpu is niagara.
8222 (ASM_CPU_SPEC): Handle -mcpu=niagara.
8223 * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
8224 just like v9/ultrasparc/ultrasparc3.
8225 * doc/invoke.texi: Add documentation for "niagara" and improve
8226 existing documentation for ultrasparc variants.
8227
8228 2006-03-02 Diego Novillo <dnovillo@redhat.com>
8229
8230 * tree-ssa-operands.c (update_stmt_operands): Update documentation.
8231
8232 2006-03-02 Richard Sandiford <richard@codesourcery.com>
8233
8234 * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
8235 (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
8236 and say that only one is needed.
8237 * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
8238 * target.h (have_switchable_bss_sections): New hook.
8239 * explow.c (use_anchored_address): Check that the symbol is in a block.
8240 * varasm.c (tls_comm_section, comm_section, lcomm_section)
8241 (bss_noswitch_section): New variables.
8242 (get_unnamed_section): Add SECTION_UNNAMED to the flags.
8243 (get_noswitch_section): New function.
8244 (get_block_for_section): Allow SECT to be null.
8245 (unlikely_text_section_p): Use SECTION_STYLE.
8246 (bss_initializer_p): New function.
8247 (get_variable_section): Move earlier in file. Take a new argument,
8248 prefer_noswitch_p. Move bss checks from assemble_variable to here.
8249 Return one of the new *_sections in such cases.
8250 (get_block_for_decl): New function, extracting some logic from
8251 use_blocks_for_decl_p.
8252 (change_symbol_section): Remove in favor of...
8253 (change_symbol_block): ...this new function.
8254 (use_blocks_for_decl_p): Remove checks now performed by
8255 get_block_for_decl.
8256 (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
8257 (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
8258 (emit_local, emit_bss, emit_common): ...these new functions.
8259 Return true if the alignment was honored.
8260 (emit_tls_common): New function.
8261 (asm_emit_uninitialised): Delete.
8262 (assemble_variable_noswitch): New function, split out from...
8263 (assemble_variable): ...here. Don't make decisions about common
8264 variables here. Globalize all public decls that go into non-common
8265 sections. Check whether SYMBOL_REF_BLOCK is null.
8266 (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
8267 (output_constant_pool): Likewise.
8268 (init_varasm_once): Initialize the new section variables.
8269 (have_global_bss_p): New function.
8270 (categorize_decl_for_section): Use bss_initializer_p.
8271 (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
8272 (place_block_symbol): Assert that the symbol must be in a block.
8273 * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
8274 (TARGET_INITIALIZER): Include it.
8275 * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
8276 * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
8277 (SECTION_MACH_DEP): Bump by two.
8278 (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
8279 (unnamed_section): Mention SECTION_UNNAMED in comment.
8280 (named_section): Likewise SECTION_NAMED.
8281 (noswitch_section_callback): New type.
8282 (noswitch_section): New structure.
8283 (section): Add a noswitch_section alternative.
8284 (SECTION_STYLE): New macro.
8285 (tls_comm_section, comm_section, lcomm_section): Declare.
8286 (bss_noswitch_section, have_global_bss_p): Declare.
8287 * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8288 * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8289 Override.
8290 * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8291 * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8292 Override.
8293
8294 2006-03-02 Daniel Berlin <dberlin@dberlin.org>
8295
8296 * tree-vrp.c (execute_vrp): Return value.
8297 * regrename.c (rest_of_handle_regrename): Ditto.
8298 * tree-into-ssa.c (rewrite_into_ssa): Ditto.
8299 * tree-complex.c (tree_lower_complex): Ditto.
8300 (tree_lower_complex_O0): Ditto.
8301 * tracer.c (rest_of_handle_tracer): Ditto.
8302 * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
8303 * postreload.c (rest_of_handle_postreload): Ditto.
8304 * tree-tailcall.c (execute_tail_recursion): Ditto.
8305 (execute_tail_calls): Ditto.
8306 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
8307 * tree.h (init_function_for_compilation): Ditto.
8308 * ipa-cp.c (ipcp_driver): Ditto.
8309 * tree-scalar-evolution.c (scev_const_prop): Ditto.
8310 * tree-scalar-evolution.h (scev_const_prop): Ditto.
8311 * final.c (compute_alignments): Ditto.
8312 (rest_of_handle_final): Ditto.
8313 (rest_of_handle_shorten_branches): Ditto.
8314 (rest_of_clean_state): Ditto.
8315 * omp-low.c (execute_expand_omp): Ditto.
8316 (execute_lower_omp): Ditto.
8317 * tree-ssa-dse.c (tree_ssa_dse): Ditto.
8318 * ipa-reference.c (static_execute): Ditto.
8319 * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
8320 * reorg.c (rest_of_handle_delay_slots): Ditto.
8321 (rest_of_handle_machine_reorg): Ditto.
8322 * cgraphunit.c (rebuild_cgraph_edges): Ditto.
8323 * flow.c (recompute_reg_usage): Ditto.
8324 (rest_of_handle_remove_death_notes): Ditto.
8325 (rest_of_handle_life): Ditto.
8326 (rest_of_handle_flow2): Ditto.
8327 * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
8328 * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
8329 (do_ssa_store_ccp): Ditto.
8330 (execute_fold_all_builtins): Ditto.
8331 * mode-switching.c (rest_of_handle_mode_switching): Ditto.
8332 * modulo-sched.c (rest_of_handle_sms): Ditto.
8333 * ipa-pure-const.c (static_execute): Ditto.
8334 * cse.c (rest_of_handle_cse): Ditto.
8335 (rest_of_handle_cse2): Ditto.
8336 * web.c (rest_of_handle_web): Ditto.
8337 * tree-stdarg.c (execute_optimize_stdarg): Ditto.
8338 * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
8339 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
8340 * tree-nrv.c (tree_nrv): Ditto.
8341 (execute_return_slot_opt): Ditto.
8342 * tree-ssa-alias.c (compute_may_aliases): Ditto.
8343 (create_structure_vars): Ditto.
8344 * loop-init.c (rtl_loop_init): Ditto.
8345 (rtl_loop_done): Ditto.
8346 (rtl_move_loop_invariants): Ditto.
8347 (rtl_unswitch): Ditto.
8348 (rtl_unroll_and_peel_loops): Ditto.
8349 (rtl_doloop): Ditto.
8350 * gimple-low.c (lower_function_body): Ditto.
8351 (mark_used_blocks): Ditto.
8352 * tree-ssa-sink.c (execute_sink_code): Ditto.
8353 * ipa-inline.c (cgraph_decide_inlining): Ditto.
8354 (cgraph_early_inlining): Ditto.
8355 * global.c (rest_of_handle_global_alloc): Ditto.
8356 * jump.c (cleanup_barriers): Ditto.
8357 (purge_line_number_notes): Ditto.
8358 * ifcvt.c (rest_of_handle_if_conversion): Ditto.
8359 (rest_of_handle_if_after_reload): Ditto.
8360 * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
8361 (tree_ssa_loop_im): Ditto.
8362 (tree_ssa_loop_unswitch): Ditto.
8363 (tree_vectorize): Ditto.
8364 (tree_linear_transform): Ditto.
8365 (tree_ssa_loop_ivcanon): Ditto.
8366 (tree_ssa_empty_loop): Ditto.
8367 (tree_ssa_loop_bounds): Ditto.
8368 (tree_complete_unroll): Ditto.
8369 (tree_ssa_loop_prefetch): Ditto.
8370 (tree_ssa_loop_ivopts): Ditto.
8371 (tree_ssa_loop_done): Ditto.
8372 * predict.c (tree_estimate_probability): Ditto.
8373 * recog.c (split_all_insns_noflow): Ditto.
8374 (rest_of_handle_peephole2): Ditto.
8375 (rest_of_handle_split_all_insns): Ditto.
8376 * tree-eh.c (lower_eh_constructs): Ditto.
8377 * regmove.c (rest_of_handle_regmove): Ditto.
8378 (rest_of_handle_stack_adjustments): Ditto.
8379 * local-alloc.c (rest_of_handle_local_alloc): Ditto.
8380 * function.c (instantiate_virtual_regs): Ditto.
8381 (init_function_for_compilation): Ditto.
8382 (rest_of_handle_check_leaf_regs): Ditto.
8383 * gcse.c (rest_of_handle_jump_bypass): Ditto.
8384 (rest_of_handle_gcse): Ditto.
8385 * ipa-type-escape.c (type_escape_execute): Ditto.
8386 * alias.c (rest_of_handle_cfg): Ditto.
8387 * tree-if-conv.c (main_tree_if_conversion): Ditto.
8388 * profile.c (rest_of_handle_branch_prob): Ditto.
8389 * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
8390 * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
8391 * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
8392 * tree-dfa.c (find_referenced_vars): Ditto.
8393 * except.c (set_nothrow_function_flags): Ditto.
8394 (convert_to_eh_region_ranges): Ditto.
8395 (rest_of_handle_eh): Ditto.
8396 * emit-rtl.c (unshare_all_rtl): Ditto.
8397 (remove_unnecessary_notes): Ditto.
8398 * except.h (set_nothrow_function_flags): Ditto.
8399 (convert_to_eh_region_ranges): Ditto.
8400 * cfgexpand.c (tree_expand_cfg): Ditto.
8401 * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
8402 * tree-ssa-pre.c (do_pre): Ditto.
8403 (execute_fre): Ditto.
8404 * cfgcleanup.c (rest_of_handle_jump): Ditto.
8405 (rest_of_handle_jump2): Ditto.
8406 * tree-sra.c (tree_sra): Ditto.
8407 * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
8408 (execute_mudflap_function_decls): Ditto.
8409 * tree-ssa-copy.c (do_copy_prop): Ditto.
8410 (do_store_copy_prop): Ditto.
8411 * ipa-prop.h (ipcp_driver): Ditto.
8412 * cfglayout.c (insn_locators_initialize): Ditto.
8413 * tree-ssa-forwprop.c
8414 (tree_ssa_forward_propagate_single_use_vars): Ditto.
8415 * cfglayout.h (insn_locators_initialize): Ditto.
8416 * tree-ssa-dce.c (tree_ssa_dce): Ditto.
8417 * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
8418 (execute_late_warn_uninitialized): Ditto.
8419 * rtl.h (cleanup_barriers): Ditto.
8420 (split_all_insns_noflow): Ditto.
8421 (purge_line_number_notes): Ditto.
8422 (unshare_all_rtl): Ditto.
8423 (remove_unnecessary_notes): Ditto.
8424 (recompute_reg_usage): Ditto.
8425 (variable_tracking_main): Ditto.
8426 * integrate.c (emit_initial_value_sets): Ditto.
8427 * integrate.h (emit_initial_value_sets): Ditto.
8428 * tree-optimize.c (execute_free_datastructures): Ditto
8429 (execute_free_cfg_annotations): Ditto.
8430 (execute_fixup_cfg): Ditto.
8431 (execute_cleanup_cfg_pre_ipa): Ditto.
8432 (execute_cleanup_cfg_post_optimizing): Ditto.
8433 (execute_init_datastructures): Ditto.
8434 * tree-object-size.c (compute_object_sizes): Ditto.
8435 * combine.c (rest_of_handle_combine): Ditto.
8436 * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
8437 * bb-reorder.c (duplicate_computed_gotos): Ditto.
8438 (rest_of_handle_reorder_blocks): Ditto.
8439 (rest_of_handle_partition_blocks): Ditto.
8440 * var-tracking.c (variable_tracking_main): Ditto.
8441 * tree-profile.c (tree_profiling): Ditto.
8442 * tree-vect-generic.c (expand_vector_operations): Ditto.
8443 * reg-stack.c (rest_of_handle_stack_regs): Ditto.
8444 * sched-rgn.c (rest_of_handle_sched): Ditto.
8445 (rest_of_handle_sched2): Ditto.
8446 * basic-block.h (free_bb_insn): Ditto.
8447 * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
8448 * tree-cfg.c (execute_build_cfg): Ditto.
8449 (remove_useless_stmts): Ditto.
8450 (split_critical_edges): Ditto.
8451 (execute_warn_function_return): Ditto.
8452 (execute_warn_function_noreturn): Ditto.
8453 * tree-ssa-reassoc.c (execute_reassoc): Ditto.
8454 * cfgrtl.c (free_bb_for_insn): Ditto.
8455 * passes.c (execute_one_pass): Run additional
8456 todos returned by execute function.
8457 * tree-pass.h (struct tree_opt_pass): Make execute
8458 return a value.
8459
8460 2006-03-02 Richard Guenther <rguenther@suse.de>
8461
8462 * tree-ssa-alias.c (find_used_portions): Consider taking
8463 the address as making the variable not write-only.
8464
8465 2006-03-02 Nick Clifton <nickc@redhat.com>
8466
8467 * config.gcc (default_use_cxa_atexit): Extend the description of
8468 this configure variable. Set its default value to "yes" for
8469 Linux, NetBSD and ELF targets on the assumption that they will
8470 use C libraries with the __cxa_atexit function.
8471
8472 2006-03-02 Ben Elliston <bje@au.ibm.com>
8473
8474 * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
8475 parameter as unused to suppress a build warning.
8476
8477 2006-03-02 Ben Elliston <bje@au.ibm.com>
8478
8479 * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
8480 config/dfp-bit.c.
8481
8482 2006-03-01 Roger Sayle <roger@eyesopen.com>
8483
8484 PR other/26489
8485 * gthr-posix.h (__gthrw2): Define to take three parameters, the
8486 declared name, the weak reference name, and the typeof name.
8487 (__gthrw): Avoid expanding the declared name suffix.
8488 (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
8489
8490 2006-03-01 Jakub Jelinek <jakub@redhat.com>
8491
8492 * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
8493 from DWARF 3.
8494 (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
8495 DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
8496 DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
8497 DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
8498 DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
8499 (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
8500 (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
8501 DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
8502 (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
8503 DW_DS_leading_separate, DW_DS_trailing_separate): New.
8504 (DW_END_default, DW_END_big, DW_END_little): New.
8505 (DW_END_lo_user, DW_END_hi_user): Define.
8506 (DW_LNE_lo_user, DW_LNE_hi_user): Define.
8507 (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
8508 (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
8509 DW_LANG_D): New.
8510
8511 2006-03-01 Diego Novillo <dnovillo@redhat.com>
8512
8513 * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
8514 Update all users.
8515 * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
8516 Update all users.
8517 (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
8518 Update all users.
8519 * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
8520 Update all users.
8521 * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
8522 to 'symbol_mem_tag'.
8523 Update all users.
8524 * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
8525 rename.
8526
8527 2006-03-01 Roger Sayle <roger@eyesopen.com>
8528
8529 * builtins.c (fold_builtin_copysign): Delete unreachable code.
8530
8531 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
8532
8533 PR target/25761
8534 * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
8535 MACHO_DYNAMIC_NO_PIC_P.
8536 (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
8537
8538 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
8539
8540 PR target/26389
8541 * config/darwin-protos.h (darwin_asm_output_anchor):
8542 Declare.
8543 * config/darwin-sections.def (cstring_section):
8544 Add SECTION_MERGE to the flags.
8545 (literal4_section): Likewise.
8546 (literal8_section): Likewise.
8547 (objc_selector_refs_section): Likewise.
8548 (objc_cls_refs_section): Likewise.
8549 * config/darwin.c (darwin_asm_output_anchor): New
8550 function.
8551 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
8552
8553 2006-03-01 Daniel Berlin <dberlin@dberlin.org>
8554
8555 Fix PR tree-optimization/26443
8556 * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
8557 to todo and PROP_tmt_usage to properties_destroyed.
8558 * tree-ssa-ccp.c (pass_ccp): Ditto.
8559 (pass_store_ccp): Ditto.
8560 * tree-ssa-dom.c (pass_dominator): Ditto.
8561
8562 2006-03-01 Diego Novillo <dnovillo@redhat.com>
8563
8564 * tree-ssa-operands.c: Cleanup whitespace.
8565 (get_asm_expr_operands): Move before first invocation.
8566 (get_indirect_ref_operands): Likewise.
8567 (get_tmr_operands): Likewise.
8568 (get_call_expr_operands): Likewise.
8569 (append_def): Likewise.
8570 (append_use): Likewise.
8571 (append_v_may_def): Likewise.
8572 (append_v_must_def): Likewise.
8573 (add_call_clobber_ops): Likewise.
8574 (add_call_read_ops): Likewise.
8575 (add_stmt_operand): Likewise.
8576 (add_virtual_operand): Likewise.
8577 (build_ssa_operands): Likewise.
8578
8579 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
8580
8581 PR middle-end/26022
8582 Revert:
8583 PR middle-end/24437
8584 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
8585 with a call expr to ...
8586 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
8587
8588 2006-03-01 Diego Novillo <dnovillo@redhat.com>
8589
8590 * tree-vrp.c (extract_range_from_assert): Remove special
8591 handling for types with super-types.
8592
8593 2006-03-01 Ben Elliston <bje@au.ibm.com>
8594
8595 * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
8596 and powerpc64-*-linux* configurations.
8597 * config/t-dfprules: New file.
8598
8599 * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
8600 Compile dfp-bit.c from the source directory using -DWIDTH and
8601 $DFP_CFLAGS to control the compilation of that file, rather than
8602 generating width-specific versions in the build directory.
8603 * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
8604 (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
8605
8606 2006-02-28 Zack Weinberg <zackw@panix.com>
8607
8608 * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
8609 continues to work.
8610
8611 2006-02-28 Eric Christopher <echristo@apple.com>
8612
8613 * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
8614 Set up IN_LIBGCC definition of TARGET_64BIT.
8615 * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
8616
8617 2006-02-28 Roger Sayle <roger@eyesopen.com>
8618
8619 PR middle-end/14752
8620 * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
8621 BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
8622 cases via the construction of "expr != 0".
8623
8624 2006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
8625
8626 * alias.c (alias_invariant, alias_invariant_size): Remove.
8627 (record_base_value): Remove.
8628 (memrefs_conflict_p): Don't look at alias_invariant.
8629 (end_alias_analysis): Don't free it.
8630 * alias.h (record_base_value): Remove prototype.
8631
8632 2006-02-28 Paolo Bonzini <bonzini@gnu.org>
8633 Adam Nemet <anemet@caviumnetworks.com>
8634
8635 * rtl.h (truncated_to_mode): Declare it.
8636 (struct rtl_hooks): Add reg_truncated_to_mode hook.
8637 * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
8638 (RTL_HOOKS_INITIALIZER): Include it.
8639 * rtlhooks.c (reg_truncated_to_mode_general): New function.
8640 * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
8641 reg_truncated_to_mode.
8642 * rtlanal.c (truncated_to_mode): Define it.
8643 * simplify-rtx.c (simplify_unary_operation_1): Use it.
8644
8645 2006-02-28 Jeff Law <law@redhat.com>
8646
8647 * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
8648 conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
8649 the range allowed by TYPE_PRECISION.
8650
8651 * tree.h (strct phi_arg_d): Remove unused NONZERO field.
8652
8653 2006-02-28 Dorit Nuzman <dorit@il.ibm.com>
8654
8655 PR tree-optimization/26419
8656 * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
8657 values of n.
8658
8659 2006-02-27 Zack Weinberg <zackw@panix.com>
8660
8661 * doc/md.texi: Fix typo in previous change.
8662
8663 2006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
8664
8665 * df.c: Remove.
8666
8667 2006-02-27 Zack Weinberg <zackw@panix.com>
8668
8669 * rtl.def (define_constraint, define_register_constraint)
8670 (define_memory_constraint, define_address_constraint): New MD forms.
8671 * gensupport.c (process_rtx): Put define_constraint etc on the
8672 predicate queue.
8673 * genpreds.c (process_define_predicate): Adjust comment. Validate
8674 the name, and call validate_exp to validate the expression.
8675 (mark_mode_tests, write_extract_subexp): Can assume correct input.
8676 (write_predicate_expr): Likewise. NAME argument no longer necessary;
8677 all callers changed.
8678 (validate_exp, needs_variable, struct constraint_data)
8679 (constraints_by_letter_table, first_constraint, last_constraint_ptr)
8680 (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
8681 (const_dbl_constraints, constraint_max_namelen)
8682 (have_register_constraints, have_memory_constraints)
8683 (have_address_constraints, have_address_constraints)
8684 (have_extra_constraints, have_const_int_constraints)
8685 (have_const_dbl_constraints, mangle, add_constraint)
8686 (process_define_constraint, process_define_register_constraint)
8687 (write_enum_constraint_num, write_lookup_constraint)
8688 (write_insn_constraint_len, write_regclass_for_constraint)
8689 (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
8690 (write_insn_extra_memory_constraint)
8691 (write_insn_extra_address_constraint)
8692 (write_satisfies_constraint_fns): New.
8693 (write_tm_preds_h): If we have new-style constraint definitions,
8694 prototype the functions generated from them, and define the
8695 old constraint interface (still used by generic code) in terms of
8696 those functions.
8697 (write_insn_preds_c): If we have new-style constraint definitions,
8698 generate all relevant functions from those definitions.
8699 (main): Handle define_constraint etc.
8700 * genoutput.c (struct constraint_data, indep_constraints)
8701 (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
8702 (mdep_constraint_len): New data structures and functions, defined
8703 #ifdef USE_MD_CONSTRAINTS.
8704 (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
8705 (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
8706 use new logic to validate operand constraints against constraint
8707 definitions.
8708 (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
8709 defined.
8710 * defaults.h: If none of the old-style constraint macros are
8711 defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
8712 old-style macros; and poison REG_CLASS_FROM_LETTER,
8713 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
8714 EXTRA_CONSTRAINT.
8715 * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
8716 * doc/md.texi: Document new constraint-definition mechanism and the
8717 C interface it provides. Remove references to old mechanism
8718 elsewhere in the document.
8719 (Machine Constraints): Use pathnames relative to gcc directory,
8720 i.e. config/ARCH/FILE. Change i386 section to refer to
8721 config/i386/predicates.md; update that section to match docstrings.
8722 * doc/tm.texi: Move all documentation of the old constraint-
8723 definition macros to their own section, clearly mark as obsolete.
8724
8725 * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
8726 (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
8727 definitions.
8728 * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
8729 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
8730 * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
8731 constraint strings.
8732 (splits and peepholes): Use satisfies_constraint_*.
8733 * config/i386/i386.c (memory_address_length)
8734 (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
8735
8736 2006-02-27 Daniel Berlin <dberlin@dberlin.org>
8737
8738 * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
8739 scalar operation to be put back into the loop.
8740
8741 2006-02-27 Jakub Jelinek <jakub@redhat.com>
8742
8743 PR other/26208
8744 * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
8745 (extract_cie_info): Handle S flag in augmentation string.
8746 (execute_cfa_program): If context->signal_frame, execute also
8747 fs->pc == context->ra instructions.
8748 (uw_frame_state_for): If context->signal_frame, don't subtract one
8749 from context->ra to find FDE.
8750 (uw_update_context_1): Set context->signal_frame to
8751 fs->signal_frame.
8752 (_Unwind_GetIPInfo): New function.
8753 * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
8754 * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
8755 of _Unwind_GetIP.
8756 * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
8757 * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
8758 * unwind-compat.c (_Unwind_GetIPInfo): New function.
8759 * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
8760 * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
8761 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
8762 * config/i386/linux-unwind.h (x86_fallback_frame_state,
8763 x86_64_fallback_frame_state): Set fs->signal_frame.
8764 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
8765 (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
8766 (frob_update_context): Likewise. Workaround missing S flag in
8767 Linux 2.6.12 - 2.6.16 kernel vDSOs.
8768 * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
8769 Remove the psw_addr + 1 hack.
8770
8771 2006-02-27 Daniel Berlin <dberlin@dberlin.org>
8772
8773 * tree-ssa-structalias.c (get_constraint_for): Move code to deal
8774 with aggregates here.
8775 (find_func_aliases): Remove code for &<aggregate> from here.
8776
8777 2006-02-26 Roger Sayle <roger@eyesopen.com>
8778
8779 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
8780 (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
8781 Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
8782 as (X & C) ne/eq 0.
8783
8784 2006-02-26 Roger Sayle <roger@eyesopen.com>
8785
8786 PR middle-end/19983
8787 * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
8788
8789 2006-02-26 Zdenek Dvorak <dvorakz@suse.cz>
8790
8791 * opts.c (decode_options): Do not handle flag_strength_reduce.
8792 (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
8793 and OPT_fstrength_reduce.
8794 * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
8795 flag_prefetch_loop_arrays for being nonzero.
8796 * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
8797 no-ops.
8798 (fprefetch-loop-arrays-rtl): Removed.
8799 (flag_prefetch_loop_arrays): Do not specify the value.
8800
8801 * doc/passes.texi: Update documentation of loop optimizer
8802 passes.
8803 * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
8804 -frerun-loop-opt): Remove.
8805
8806 2006-02-26 Richard Guenther <rguenther@suse.de>
8807
8808 PR tree-optimization/26421
8809 * tree-ssa-alias.c (find_used_portions): Don't treat parameters
8810 in function calls that are ADDR_EXPRs as using the whole structure.
8811
8812 2006-02-26 Steven Bosscher <stevenb.gcc@gmail.com>
8813
8814 * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
8815 * tree-pass.h (pass_loop_optimize): Remove.
8816 * passes.c (pass_loop_optimize): Never run it.
8817 * toplev.c (backend_init): Don't call init_loop.
8818 * opts.c (flag_loop_optimize_set): Remove.
8819 (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
8820 (common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
8821 the old RTL loop optimizer when profiling enabled.
8822 * predict.c (tree_estimate_probability): Always strip builtin_expect.
8823 * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
8824 pre-headers for the sake of the old RTL loop optimizer.
8825 * Makefile.in: Remove all references to loop.o.
8826
8827 * doc/invoke.texi: Remove all references to -floop-optimize
8828 and -frerun-loop-opt.
8829
8830 2006-02-26 Zack Weinberg <zackw@panix.com>
8831
8832 * doc/md.texi (Machine Constraints): Refer to all files with paths
8833 relative to gcc directory (i.e. config/CPU/file). Add missing
8834 @table @code ... @end table to M32C subsection.
8835
8836 2006-02-26 Roger Sayle <roger@eyesopen.com>
8837
8838 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
8839 (X & 1) == 0.
8840 <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
8841
8842 2006-02-26 Roger Sayle <roger@eyesopen.com>
8843 James A. Morrison <phython@gcc.gnu.org>
8844
8845 PR middle-end/21137
8846 * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
8847 when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
8848 new constant C2<<C1, or as (X<0) or (X,false) depending upon the
8849 signedness of the shift operation.
8850
8851 2006-02-26 Dorit Nuzman <dorit@il.ibm.com>
8852
8853 PR tree-optimization/26359
8854 * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
8855
8856 2006-02-25 Roger Sayle <roger@eyesopen.com>
8857
8858 * simplify-rtx.c (simplify_relational_operation_1): Simplify
8859 (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y
8860 as X == 0, and some symmetry related transformations.
8861 Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line.
8862
8863 2006-02-25 Roger Sayle <roger@eyesopen.com>
8864
8865 PR middle-end/23673
8866 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
8867 and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
8868 symmetry related transformations. Fold (X^C1) == C2 as
8869 X == (C1^C2).
8870
8871 2006-02-25 Juergen Weigert <jw@suse.de>
8872 Richard Guenther <rguenther@suse.de>
8873
8874 * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
8875
8876 2006-02-24 Adam Nemet <anemet@caviumnetworks.com>
8877
8878 * combine.c (gen_lowpart_or_truncate): Call
8879 simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
8880
8881 2006-02-24 Diego Novillo <dnovillo@redhat.com>
8882
8883 * doc/invoke.texi: Move -fopenmp description to "Options for
8884 Code Generation".
8885 Remove reference to -lgomp.
8886
8887 2006-02-24 David Edelsohn <edelsohn@gnu.org>
8888
8889 * doc/install.texi: Require GNU tar version 1.14.
8890
8891 2006-02-24 Geoffrey Keating <geoffk@apple.com>
8892
8893 * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
8894 * doc/invoke.texi (C++ Dialect Options): Document
8895 -fno-use-cxa-get-exception-ptr.
8896 * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
8897 * configure: Regenerate.
8898 * c.opt (fuse-cxa-get-exception-ptr): New.
8899 * c-opts.c (c_common_handle_option): Handle
8900 OPT_fuse_cxa_get_exception_ptr.
8901 * c-common.c (flag_use_cxa_atexit): Update documentation.
8902 (flag_use_cxa_get_exception_ptr): New.
8903 * c-common.h (flag_use_cxa_get_exception_ptr): New.
8904 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
8905 documentation.
8906 (C_COMMON_OVERRIDE_OPTIONS): New.
8907
8908 2006-02-24 Roger Sayle <roger@eyesopen.com>
8909
8910 PR middle-end/24952
8911 * combine.c (try_combine): Explicitly check whether GET_CODE is
8912 a SET or a CLOBBER, instead on checking that it isn't a USE.
8913
8914 2006-02-24 Roger Sayle <roger@eyesopen.com>
8915
8916 * fold-const.c (fold_comparison): New subroutine of fold_binary
8917 containing transformations common to both the equality and
8918 ordering relational operators, factored out of fold_binary.
8919 (fold_binary): Separate out the equality operators (EQ_EXPR
8920 and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
8921 LE_EXPR and GE_EXPR), calling fold_comparison to perform the
8922 transformations common to both.
8923 (fold_div_compare): Fix latent bugs in the previously unreachable
8924 LT_EXPR and GE_EXPR cases.
8925
8926 2006-02-24 David Edelsohn <edelsohn@gnu.org>
8927
8928 * config/rs6000/rs6000.c (rs6000_init_builtins): Change
8929 decl libname for clog to __clog on AIX.
8930
8931 * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
8932
8933 2006-02-24 Alan Modra <amodra@bigpond.net.au>
8934
8935 PR target/26453
8936 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
8937 output traceback table for thunks. Localise rs6000_stack_info call.
8938
8939 2006-02-23 Roger Sayle <roger@eyesopen.com>
8940 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8941
8942 * gthr-posix.h (__gthrw): Fix typo in comment.
8943
8944 2006-02-23 Geoffrey Keating <geoffk@apple.com>
8945
8946 * doc/cpp.texi (Character sets): Document that we do support
8947 input files to be in any character set.
8948
8949 2006-02-23 Jeff Law <law@redhat.com>
8950
8951 * tree.h (PHI_ARG_NONZERO): Remove.
8952 * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
8953 (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
8954 node to the new node.
8955
8956 PR tree-optimization/26425
8957 * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
8958 min/max, then assume its varying.
8959
8960 2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
8961
8962 PR rtl-optimization/26316
8963 * rtlanal.c (enum may_trap_p_flags): New.
8964 (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore
8965 MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
8966 (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
8967 (may_trap_after_code_motion_p): New function.
8968 * loop-invariant.c (find_identical_invariants): Fix dump formating.
8969 (find_invariant_insn): Use may_trap_after_code_motion_p.
8970 * rtl.h (may_trap_after_code_motion_p): Declare.
8971
8972 2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
8973
8974 * emit-rtl.c (immed_double_const): Cleanup.
8975
8976 2006-02-23 Daniel Berlin <dberlin@dberlin.org>
8977
8978 Fix PR tree-optimization/26376
8979 * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
8980 remove assert.
8981
8982 2006-02-23 Jakub Jelinek <jakub@redhat.com>
8983
8984 PR middle-end/26412
8985 * gimplify.c (omp_add_variable): Guard variable size decl test with
8986 DECL_SIZE (decl) check.
8987
8988 2006-02-23 Richard Guenther <rguenther@suse.de>
8989
8990 PR middle-end/26439
8991 * tree-ssa-structalias.c (find_func_aliases): Handle complex types
8992 like aggregate types.
8993
8994 2006-02-23 Jakub Jelinek <jakub@redhat.com>
8995
8996 * configure.ac: Add --with{,out}-long-double-128 configure option.
8997 (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
8998 * configure: Rebuilt.
8999 * config.in: Rebuilt.
9000 * doc/install.texi (Options specification): Document
9001 --with-long-double-128.
9002
9003 * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9004 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9005 * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9006 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9007
9008 2006-02-23 Aldy Hernandez <aldyh@redhat.com>
9009
9010 * config/s390/s390.c (override_options): Handle
9011 TARGET_DEFAULT_LONG_DOUBLE_128.
9012
9013 * config/alpha/alpha.c (override_options): Handle
9014 TARGET_DEFAULT_LONG_DOUBLE_128.
9015
9016 * config/sparc/sparc.c (sparc_override_options): Handle
9017 TARGET_DEFAULT_LONG_DOUBLE_128.
9018
9019 2006-02-22 Daniel Jacobowitz <dan@codesourcery.com>
9020
9021 * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
9022 (real-install-headers-tar, real-install-headers-cpio)
9023 (real-install-headers-cp): New targets.
9024
9025 2006-02-22 Richard Sandiford <richard@codesourcery.com>
9026
9027 * tree.h (variable_section): Delete.
9028 * varasm.c (variable_section): Delete.
9029
9030 2006-02-22 Paolo Bonzini <bonzini@gnu.org>
9031
9032 * install.texi: Add notes on install.texi2html.
9033 (Building in parallel): Do not use footnotes.
9034
9035 2006-02-21 Aldy Hernandez <aldyh@redhat.com>
9036
9037 PR libgomp/26234
9038 * doc/install.texi (Configuration): Document --disable-libgomp.
9039
9040 2006-02-21 Geoffrey Keating <geoffk@apple.com>
9041
9042 * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
9043
9044 2006-02-21 Alexandre Oliva <aoliva@redhat.com>
9045
9046 * config/i386/sse.md (vec_extractv2df_1_sse): New.
9047 (vec_extractv2df_0_sse): New.
9048
9049 2006-02-21 Alexandre Oliva <aoliva@redhat.com>
9050
9051 * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
9052 * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
9053 * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
9054 * dwarf2out.c (build_cfa_loc): New offset parameter. Add it
9055 to the result of the expression.
9056 (def_cfa_1): Adjust.
9057 (frame_pointer_cfa_offset): Rename to...
9058 (frame_pointer_fb_offset): ... this. Adjust all uses.
9059 (convert_cfa_to_loc_list): Rename to...
9060 (convert_cfa_to_fb_loc_list): ... this. New offset parameter.
9061 Pass it on to build_cfa_loc.
9062 (compute_frame_pointer_to_cfa_displacement): Rename to...
9063 (compute_frame_pointer_to_fb_displacement): ... this. New
9064 offset parameter. Use it in computation.
9065 (gen_subprogram_die): Compute cfa_fb_offset with the new
9066 macro, and use it to compute the fb loc list and the
9067 displacement.
9068
9069 2006-02-21 Bernd Schmidt <bernd.schmidt@analog.com>
9070
9071 * config/bfin/predicates.md (cc_operand): Delete predicate. All uses
9072 replaced with register_operand.
9073 * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
9074 non-DREG is expensive.
9075 * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
9076 * config/bfin/bfin.md (movbi): Fix constraints and template for moves
9077 involving memory.
9078
9079 2006-02-21 Joseph S. Myers <joseph@codesourcery.com>
9080
9081 * doc/install.texi2html: Use set -e.
9082
9083 2006-02-21 Richard Sandiford <richard@codesourcery.com>
9084
9085 * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9086 (ASM_OUTPUT_SHARED_LOCAL): Delete.
9087 * doc/invoke.texi (-fshared-data): Delete.
9088 * common.opt (fshared-data): Delete.
9089 * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
9090 (assemble_static_space): Remove #if 0 code.
9091 * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9092 (ASM_OUTPUT_SHARED_LOCAL): Poison.
9093 * config/cris/cris.h: Remove FIXME.
9094
9095 2006-02-21 Paolo Bonzini <bonzini@gnu.org>
9096
9097 * doc/sourcebuild.texi (Front End Directory): No more double-colon
9098 hooks.
9099
9100 2006-02-21 Jakub Jelinek <jakub@redhat.com>
9101
9102 PR middle-end/26379
9103 * combine.c (simplify_shift_const_1): Disable nested shifts
9104 optimization for vector shifts.
9105
9106 2006-02-20 Roger Sayle <roger@eyesopen.com>
9107
9108 PR tree-optimization/26361
9109 * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
9110 of unsigned integer types.
9111
9112 2006-02-20 Sebastian Pop <pop@cri.ensmp.fr>
9113
9114 * tree-chrec.c (eq_evolutions_p): New.
9115 * tree-chrec.h (eq_evolutions_p): Declared.
9116 * tree-data-ref.c: Fix formatting.
9117 (datadep_stats, dependence_stats): New.
9118 (gcd): Moved...
9119 (print_direction_vector): New.
9120 (dump_data_dependence_relation): Use print_direction_vector.
9121 (object_analysis, create_data_ref): Handle COMPONENT_REF.
9122 (compute_subscript_distance): Static.
9123 (initialize_data_dependence_relation): Static. Get the number
9124 of loops surrounding the references from the callers, and initialize
9125 DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
9126 base_object_differ_p analyzers.
9127 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
9128 compute_overlap_steps_for_affine_1_2,
9129 analyze_subscript_affine_affine): Count the classified dependences.
9130 Print a message when a test failed.
9131 (can_use_analyze_subscript_affine_affine): New.
9132 (analyze_siv_subscript): Compute the data dependences on symbolic
9133 scevs that verify can_use_analyze_subscript_affine_affine.
9134 (chrec_steps_divide_constant_p): Returns true, false, or unknown.
9135 (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
9136 Handle symbolic scevs.
9137 (analyze_overlapping_iterations): Let symbolic affine scevs to be
9138 analyzed.
9139 (subscript_dependence_tester): Moved...
9140 (build_classic_dist_vector, build_classic_dir_vector): Don't use
9141 lambda_vector_clear on newly allocated vectors. Get nb_loops from
9142 DDR_SIZE_VECT instead of getting it in parameter.
9143 (subscript_dependence_tester): ... here. Take as a parameter
9144 loop_nest_depth. Call build_classic_dist_vector and
9145 build_classic_dir_vector.
9146 (compute_affine_dependence): Update subscript_dependence_tester
9147 parameters. Update datadep_stats counters. Call
9148 compute_subscript_distance.
9149 (compute_self_dependence): Save the dist and dir vectors. Call
9150 compute_subscript_distance.
9151 (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
9152 (compute_all_dependences): Reorder parameters as they were before
9153 conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
9154 compute_subscript_distance. Update the use of
9155 compute_affine_dependence and initialize_data_dependence_relation.
9156 (find_data_references_in_loop): Handle COMPONENT_REF.
9157 (compute_data_dependences_for_loop): Initialize dependence_stats.
9158 Don't call build_classic_dist_vector and build_classic_dir_vector.
9159 Update the parameters of initialize_data_dependence_relation and
9160 compute_all_dependences. Print the statistics from datadep_stats.
9161 (analyze_all_data_dependences): Static. Not used until the pass for
9162 checking the data dependences is contributed.
9163 * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
9164 DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
9165 (initialize_data_dependence_relation, compute_affine_dependence,
9166 analyze_all_data_dependences, compute_subscript_distance): Removed.
9167 (print_direction_vector): New.
9168 * lambda.h (gcd): ... here.
9169 (lambda_vector_gcd): Moved here from gcd_vector.
9170 * lambda-code.c (gcd, gcd_vector): Removed.
9171 (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
9172 * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
9173
9174 2006-02-20 Diego Novillo <dnovillo@redhat.com>
9175
9176 * ipa-type-escape.c: Tidy some comments and white space.
9177 * tree-ssa-operands.c: Likewise.
9178
9179 2006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
9180
9181 PR tree-opt/25879
9182 * tree-pretty-print.c (debug_tree_chain): Walk the chains.
9183 (dump_decl_name): Do not walk the decl tree chains.
9184 * tree-pass.h (TDF_CHAIN): Remove.
9185
9186 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
9187
9188 * Makefile.in (C): Remove
9189 (PROTO): Remove
9190 (.PHONY): Remove C and PROTO
9191
9192 2006-02-20 Roger Sayle <roger@eyesopen.com>
9193
9194 PR middle-end/26236
9195 * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
9196 deprecated CHAR_TYPE tree code.
9197
9198 2006-02-20 Paolo Bonzini <bonzini@gnu.org>
9199
9200 * configure.ac (target_list): Add install-info, dvi, html.
9201 * configure: Regenerate.
9202
9203 * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
9204 java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
9205 treelang/Make-lang.in: Do not use double-colon rules.
9206
9207 2006-02-20 Daniel Berlin <dberlin@dberlin.org>
9208
9209 * tree.h (struct tree_memory_tag): Add is_used_alone member.
9210 (TMT_USED_ALONE): New macro.
9211 * tree-pass.h (PROP_tmt_usage): New property.
9212 (TODO_update_tmt_usage): New todo.
9213 * tree-ssa-alias.c (updating_used_alone): New variable.
9214 (recalculate_used_alone): New function.
9215 (compute_may_aliases): Set updating_used_alone, call
9216 recalculate_used_alone.
9217 * tree-sra.c (pass_sra): Note that this pass destroys
9218 PROP_tmt_usage, and add TODO_update_tmt_usage.
9219 * tree-ssa-forwprop.c (pass_forwprop): Ditto.
9220 * tree-flow.h (updating_used_alone): Prototype.
9221 (recalculate_used_alone): Ditto.
9222 * passes.c (execute_todo): Add code to set updating_used_alone,
9223 and call recalculate.
9224 * tree-ssa-operands.c (add_virtual_operand): Only append bare def
9225 for clobber if used alone, and add assert to verify used_alone
9226 status.
9227
9228 2006-02-20 Angel Nunez Mencias <anunez@de.ibm.com>
9229
9230 * config/s390/s390.c (legitimize_pic_address): Assertions checking
9231 for non tls symbols added.
9232 (legitimize_address): Do nothing for PLUS expressions if one of the
9233 addends is a tls symbol reference.
9234
9235 2006-02-20 Paolo Bonzini <bonzini@gnu.org>
9236
9237 PR bootstrap/25476
9238
9239 * Makefile.in (LDFLAGS): Define from autoconf substitution.
9240
9241 * Makefile.in (BOOTSTRAPPING): New.
9242 (quickstrap): New definition if BOOTSTRAPPING=yes.
9243
9244 * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
9245 * configure.ac: Substitute all_selected_languages with the languages
9246 that were configured. For all the other variables except
9247 lang_specs_files, include all the languages in the tree.
9248 * configure: Regenerate.
9249
9250 * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
9251 if there is one. Run the commands to run fixincludes in the same
9252 subshell.
9253
9254 * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
9255 * doc/install.texi: Document exact conventions for searching target tools.
9256 Document --with-build-time-tools. Document toplevel bootstrap. Document
9257 something more about building an Ada cross-compiler. Don't list GNU Make
9258 requirements which affect all platforms.
9259
9260 2006-02-19 Roger Sayle <roger@eyesopen.com>
9261
9262 PR middle-end/19543
9263 * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
9264 only equivalent if the have both the same mode and precision.
9265
9266 2006-02-20 Ben Elliston <bje@au.ibm.com>
9267
9268 * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
9269
9270 2006-02-19 Roger Sayle <roger@eyesopen.com>
9271 Steven Bosscher <stevenb.gcc@gmail.com>
9272
9273 * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
9274 constant pool references to identify stack mode constants.
9275 * rtlanal.c (constant_pool_constant_p): New predicate to check
9276 whether operand is a floating point constant in the pool.
9277 * rtl.h (constant_pool_constant_p): Prototype here.
9278 * loop.c (scan_loop): Avoid hoisting constants from the constant
9279 pool on STACK_REGS targets.
9280 (load_mems): Likewise.
9281 * loop-invariant.c (get_inv_cost): Make hoisting constant pool
9282 loads into x87 registers expensive in terms of register pressure.
9283
9284 2006-02-19 Roger Sayle <roger@eyesopen.com>
9285
9286 * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
9287 __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
9288
9289 2006-02-19 David Edelsohn <edelsohn@gnu.org>
9290
9291 * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
9292 * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
9293
9294 2006-02-19 Daniel Berlin <dberlin@dberlin.org>
9295
9296 * doc/invoke.texi: Document -fipa-pta.
9297 * common.opt: Add ipa-pta option.
9298 * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
9299 (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
9300 (do_ds_constraint): Ditto.
9301 (get_constraint_for): Only add to referenced_vars if
9302 referenced_vars exists.
9303 (insert_into_field_list): Rewrite to do this unsorted.
9304 (insert_into_field_list_sorted): Rename old insert_into_field_list
9305 to this.
9306 (create_function_info_for): Use insert_into_field_list_sorted.
9307 (create_variable_info_for): Rewrite so it uses unsorted version,
9308 since the field list is sorted.
9309 (intra_create_variable_infos): Only add to referenced_vars if
9310 referenced_vars exists.
9311 (ipa_pta_execute): Init heapvars, and delete when done.
9312 * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
9313
9314 2006-02-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9315
9316 * doc/install.texi: Add missing `@samp'.
9317
9318 2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
9319
9320 * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
9321 Use the arguments.
9322
9323 2006-02-18 Mark Wielaard <mark@klomp.org>
9324
9325 * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
9326 who added new 4.1 features, bug fixes and integration support.
9327
9328 2006-02-18 David Edelsohn <edelsohn@gnu.org>
9329
9330 PR target/26350
9331 * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
9332 MEM for ABI_V4 pic.
9333
9334 2006-02-18 Richard Sandiford <richard@codesourcery.com>
9335
9336 * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
9337 * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
9338 (copy_insn_1): Likewise. Don't copy each field individually.
9339 Reindent.
9340 * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
9341 of RTX_SIZE.
9342 * reload1.c (eliminate_regs): Use shallow_copy_rtx.
9343 * rtl.c (rtx_size): Rename variable to...
9344 (rtx_code_size): ...this.
9345 (rtx_size): New function.
9346 (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
9347 (copy_rtx): Use shallow_copy_rtx. Don't copy each field individually.
9348 Reindent.
9349 (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
9350 * rtl.h (rtx_code_size): New variable.
9351 (rtx_size): Change from a variable to a function.
9352 (RTX_SIZE): Rename to...
9353 (RTX_CODE_SIZE): ...this.
9354
9355 PR target/9703
9356 PR tree-optimization/17106
9357 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
9358 (Anchored Addresses): New section.
9359 * doc/invoke.texi (-fsection-anchors): Document.
9360 * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
9361 (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
9362 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
9363 * hooks.c (hook_bool_mode_rtx_false): New function.
9364 * hooks.h (hook_bool_mode_rtx_false): Declare.
9365 * gengtype.c (create_optional_field): New function.
9366 (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
9367 SYMBOL_REF_IN_BLOCK_P is true.
9368 * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
9369 (min_anchor_offset, max_anchor_offset): Likewise.
9370 (use_anchors_for_symbol_p): New hook.
9371 * toplev.c (compile_file): Call output_object_blocks.
9372 (target_supports_section_anchors_p): New function.
9373 (process_options): Check that -fsection-anchors is only used on
9374 targets that support it and when -funit-at-a-time is in effect.
9375 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
9376 if the decl doesn't have one.
9377 * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
9378 * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
9379 of force_const_mem through use_anchored_address.
9380 (expand_expr_constant): New function.
9381 (expand_expr_addr_expr_1): Call it. Use the same modifier when
9382 calling expand_expr for INDIRECT_REF.
9383 (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
9384 for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant.
9385 * expr.h (use_anchored_address): Declare.
9386 * loop-unroll.c: Don't declare rtx vectors here.
9387 * explow.c: Include output.h.
9388 (validize_mem): Call use_anchored_address.
9389 (use_anchored_address): New function.
9390 * common.opt (-fsection-anchors): New switch.
9391 * varasm.c (object_block_htab, anchor_labelno): New variables.
9392 (hash_section, object_block_entry_eq, object_block_entry_hash)
9393 (use_object_blocks_p, get_block_for_section, create_block_symbol)
9394 (use_blocks_for_decl_p, change_symbol_section): New functions.
9395 (get_variable_section): New function, split out from assemble_variable.
9396 (make_decl_rtl): Create a block symbol if use_object_blocks_p and
9397 use_blocks_for_decl_p say so. Use change_symbol_section if the
9398 symbol has already been created.
9399 (assemble_variable_contents): New function, split out from...
9400 (assemble_variable): ...here. Don't output any code for
9401 block symbols; just pass them to place_block_symbol.
9402 Use get_variable_section and assemble_variable_contents.
9403 (get_constant_alignment, get_constant_section, get_constant_size): New
9404 functions, split from output_constant_def_contents.
9405 (build_constant_desc): Create a block symbol if use_object_blocks_p
9406 says so. Or into SYMBOL_REF_FLAGS.
9407 (assemble_constant_contents): New function, split from...
9408 (output_constant_def_contents): ...here. Don't output any code
9409 for block symbols; just pass them to place_section_symbol.
9410 Use get_constant_section and get_constant_alignment.
9411 (force_const_mem): Create a block symbol if use_object_blocks_p and
9412 use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS.
9413 (output_constant_pool_1): Add an explicit alignment argument.
9414 Don't switch sections here.
9415 (output_constant_pool): Adjust call to output_constant_pool_1.
9416 Switch sections here instead. Don't output anything for block symbols;
9417 just pass them to place_block_symbol.
9418 (init_varasm_once): Initialize object_block_htab.
9419 (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
9420 (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
9421 (place_block_symbol, get_section_anchor, output_object_block)
9422 (output_object_block_htab, output_object_blocks): New functions.
9423 * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
9424 (TARGET_ASM_OUT): Include it.
9425 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
9426 (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
9427 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
9428 (TARGET_INITIALIZER): Include them.
9429 * rtl.c (rtl_check_failed_block_symbol): New function.
9430 * rtl.h: Include vec.h. Declare heap and gc rtx vectors.
9431 (block_symbol, object_block): New structures.
9432 (rtx_def): Add a block_symbol field to the union.
9433 (BLOCK_SYMBOL_CHECK): New macro.
9434 (rtl_check_failed_block_symbol): Declare.
9435 (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
9436 (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
9437 (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
9438 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
9439 * output.h (output_section_symbols): Declare.
9440 (object_block): Name structure.
9441 (place_section_symbol, get_section_anchor, default_asm_output_anchor)
9442 (default_use_anchors_for_symbol_p): Declare.
9443 * Makefile.in (RTL_BASE_H): Add vec.h.
9444 (explow.o): Depend on output.h.
9445 * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
9446 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
9447 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
9448 (rs6000_use_blocks_for_constant_p): New function.
9449
9450 2006-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9451
9452 * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
9453
9454 2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
9455
9456 PR tree-opt/25680
9457 * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
9458 IMAGPART_EXPR.
9459
9460 2006-02-18 Diego Novillo <dnovillo@redhat.com>
9461
9462 * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
9463 is_aliased.
9464 Update all users.
9465
9466 2006-02-18 Jakub Jelinek <jakub@redhat.com>
9467
9468 PR middle-end/26334
9469 * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
9470 instead of DECL_REGISTER.
9471
9472 2006-02-18 Olivier Hainque <hainque@adacore.com>
9473
9474 PR ada/13408
9475 * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
9476
9477 2006-02-18 Joseph S. Myers <joseph@codesourcery.com>
9478
9479 PR target/24837
9480 * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
9481 * opth-gen.awk: Handle Var and InverseMask together.
9482 * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
9483 * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
9484 (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
9485 (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
9486 used together.
9487 (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9488 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9489 * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
9490 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9491 LINUX_DYNAMIC_LINKER): Define.
9492 (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
9493 * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
9494 TARGET_GLIBC.
9495 * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9496 (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
9497 * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9498 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9499 (TARGET_C99_FUNCTIONS): Don't define.
9500 * config/i386/linux.h (DYNAMIC_LINKER): Rename to
9501 GLIBC_DYNAMIC_LINKER.
9502 (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
9503 * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
9504 GLIBC_DYNAMIC_LINKER64): Define.
9505 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
9506 LINUX_DYNAMIC_LINKER64.
9507 * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9508 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9509 * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
9510 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9511 * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9512 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9513 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
9514 GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
9515 UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
9516 (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
9517 and LINUX_DYNAMIC_LINKER32.
9518 * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9519 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9520 * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
9521 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9522 * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
9523 TARGET_GLIBC.
9524 * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
9525 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
9526 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9527 CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9528 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9529 (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
9530 (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
9531 * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
9532 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9533 LINUX_DYNAMIC_LINKER): Define.
9534 (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
9535 * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
9536 GLIBC_DYNAMIC_LINKER64): Define.
9537 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
9538 LINUX_DYNAMIC_LINKER64.
9539 * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9540 (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9541 * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
9542 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9543 LINUX_DYNAMIC_LINKER): Define.
9544 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9545 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
9546 * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
9547 GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
9548 UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
9549 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9550 (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
9551 (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
9552 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
9553 * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9554 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9555 * doc/invoke.texi (-muclibc): Remove caveat about supported
9556 targets.
9557
9558 2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
9559
9560 * doc/cpp.texi (__TIMESTAMP__): Document.
9561
9562 2006-02-17 Roger Sayle <roger@eyesopen.com>
9563
9564 PR middle-end/25600
9565 * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
9566 C is one less than the width of X (and related transformations).
9567 * simplify-rtx.c (simplify_unary_operation_1): Transform
9568 (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
9569 depending on STORE_FLAG_VALUE, were C is one less then the
9570 width of X.
9571
9572 2006-02-17 Daniel Berlin <dberlin@dberlin.org>
9573
9574 Fix PR tree-optimization/26341
9575 * tree-ssa-operands.c (add_virtual_operand): Remove assert
9576 about NAME_MEMORY_TAG's.
9577
9578 2006-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9579
9580 PR target/26255
9581 * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
9582 with hardware float support, and software float support. Add fcpy
9583 alternative to hardware patterns. Add alternatives to copy between
9584 general and floating-point registers to the 32-bit pattern.
9585 * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
9586 secondary reload to load a QI or HI mode constant into a floating
9587 point register.
9588 * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
9589 * pa64-regs.h (VALID_FP_MODE_P): Likewise.
9590
9591 2006-02-17 Andrew Pinski <pinskia@physics.uc.edu>
9592
9593 PR target/26272
9594 * config/rs6000/darwin.md (load_macho_picbase_si): Add
9595 pc to the pattern.
9596 (load_macho_picbase_di): Likewise.
9597
9598 2006-02-16 Jeff Law <law@redhat.com>
9599
9600 * tree-vrp.c (set_value_range_to_nonnegative): New function.
9601 (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
9602 (ssa_name_nonzero_p): Likewise.
9603 (get_value_range): Return NULL if VRP is not running.
9604 (extract_range_from_expr): Fallback to tree_expr_XXX_p if
9605 VRP routines do not discover a range.
9606 (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
9607 * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
9608 * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
9609 (tree_expr_nonnegative_p): Similarly.
9610 * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
9611 (restore_nonzero_vars_to_original_value): Remove.
9612 (unsafe_associative_fp_binop): Remove.
9613 (tree_ssa_dominator_optimize): Remove initialization and
9614 finalization of nonzero_vars and nonzero_vars_stack.
9615 (dom_opt_initialize_block): No longer push marker on
9616 nonzero_vars_stack.
9617 (dom_opt_finalize_block): No longer call
9618 restore_nonzero_vars_to_original_value.
9619 (record_equivalences_from_phis): No longer look for
9620 nonzero PHI arguments.
9621 (cprop_into_successor_phis): No longer propagate nonzero
9622 property into PHI arguments. Lose unused argument. Caller
9623 updated.
9624 (record_equivalences_from_stmt): No longer record nonzero
9625 values for SSA_NAMEs.
9626 (lookup_avail_expr): No longer use nonzero_vars.
9627
9628 * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
9629 for sizetype when sizetype is unsigned.
9630
9631 2006-02-16 Denis Nagorny <denis_nagorny@linux.intel.com>
9632
9633 PR rtl-optimization/25603
9634 * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
9635 (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
9636 * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
9637 with new meaning of SETS.
9638
9639 2006-02-16 Joseph S. Myers <joseph@codesourcery.com>
9640
9641 PR target/20353
9642 PR target/24578
9643 PR target/24837
9644 * config/linux.opt: New file.
9645 * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
9646 LINUX_DYNAMIC_LINKER): Define.
9647 (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
9648 * config.gcc (*-*-linux*): Define extra_options.
9649 (*-*-*uclibc*): Define UCLIBC_DEFAULT.
9650 (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
9651 * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
9652 GLIBC_DYNAMIC_LINKER.
9653 * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
9654 (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9655 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9656 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9657 * doc/invoke.texi (GNU/Linux Options): New section.
9658
9659 2006-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
9660
9661 * config/sparc/sparc.md (setjmp): Rewrite.
9662 (setjmp_32): Delete.
9663 (setjmp_64): Likewise.
9664
9665 2006-02-16 Daniel Berlin <dberlin@dberlin.org>
9666
9667 * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
9668 previous change.
9669
9670 2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
9671
9672 * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
9673 read-write uses.
9674
9675 2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
9676
9677 PR rtl-optimization/26296
9678 * Makefile.in (loop-invariant.c): Add except.h dependency.
9679 * loop-invariant.c: Include except.h.
9680 (find_invariant_insn): Ignore insns satisfying can_throw_internal.
9681
9682 2005-02-16 Paul Brook <paul@codesourcery.com>
9683
9684 * reload1.c (emit_reload_insns): Invalidate dead input registers used
9685 for reloads.
9686
9687 2006-02-16 Bernd Schmidt <bernd.schmidt@analog.com>
9688
9689 PR rtl-optimization/25636
9690 * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
9691 when deciding whether an insn is an initializing insn.
9692
9693 2006-02-15 Daniel Berlin <dberlin@dberlin.org>
9694
9695 * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
9696 (tree_code_size): Ditto.
9697 * tree.h (struct tree_memory_tag): Remove parent_var.
9698 (struct tree_struct_field_tag): New.
9699 (SFT_OFFSET): New.
9700 (SFT_SIZE): New.
9701 (union tree_node): Add sft member.
9702 * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
9703 specially here.
9704 (create_sft): Add size and offset argument, set SFT_OFFSET and
9705 SFT_SIZE.
9706 (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
9707 * treestruct.def: Add TS_STRUCT_FIELD_TAG.
9708 * tree-flow-inline.h (get_subvar_at): Update for
9709 SFT_OFFSET/SFT_SIZE.
9710 (var_can_have_subvars): Ditto.
9711 (overlap_subvar): Ditto.
9712 * print-tree.c (print_node): Print out interesting things for
9713 SFT's.
9714 * tree-flow.h (struct subvar): Remove offset and size members.
9715 * tree-ssa-operands.c (get_expr_operands): Update for
9716 get_indirect_ref_operands changes.
9717 (get_indirect_ref_operands): Call add_virtual_operand instead of
9718 add_stmt_operand. Only recurse on base var if requested.
9719 (access_can_touch_variable): New function.
9720 (add_stmt_operand): Split virtual operand handling into ...
9721 (add_virtual_operand): Here. Add offset, size, and for_clobber
9722 arguments. Prune alias sets.
9723 (add_call_clobber_ops): Call add_virtual_operand.
9724
9725 2006-02-15 Jakub Jelinek <jakub@redhat.com>
9726
9727 PR middle-end/26300
9728 * combine.c (make_extraction): Bail out if ORIG_POS is negative.
9729
9730 * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
9731 than TREE_CODE as index into omp_clause_num_ops array.
9732
9733 2006-02-15 Uttam Pawar <uttamp@us.ibm.com>
9734
9735 PR rtl-optimization/26184
9736 * modulo-sched.c (generate_reg_moves): Free bitmap vector
9737 uses_of_defs.
9738 * modulo-sched.c (sms_schedule): Free g_arr pointer.
9739 * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
9740 must_precede, must_follow and tobe_scheduled.
9741
9742 PR other/26147
9743 * opts.c (common_handle_option): Free new_option pointer.
9744 * df-core.c (df_analyze): Free postorder pointer.
9745
9746 2006-02-15 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
9747
9748 * Makefile.in: Fix the examples about the use of stamps
9749
9750 2006-02-15 Michael Matz <matz@suse.de>
9751
9752 PR middle-end/22275
9753
9754 * stor-layout.c (layout_decl): Zero-width bitfields aren't
9755 influenced by maximum_field_alignment or DECL_PACKED.
9756 (update_alignment_for_field): Ditto.
9757 (place_field): Ditto.
9758 * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
9759 this behaviour.
9760
9761 2006-02-15 Paolo Bonzini <bonzini@gnu.org>
9762
9763 * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
9764 (debug_flow_info): Pass it.
9765 * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
9766 * bb-reorder.c (reorder_basic_blocks): Likewise.
9767 * cfgcleanup.c (rest_of_handle_jump2): Likewise.
9768 * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
9769 * flow.c (life_analysis, recompute_reg_usage): Likewise.
9770 * gcse.c (gcse_main, bypass_jumps): Likewise.
9771 * ifcvt.c (rest_of_handle_if_conversion): Likewise.
9772 * local-alloc.c (rest_of_handle_local_alloc): Likewise.
9773 * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
9774 * profile.c (compute_branch_probabilities, branch_prob): Likewise.
9775 * rtl.h (dump_flow_info): Adjust prototype.
9776 * tracer.c (rest_of_handle_tracer, tracer): Likewise.
9777 * var-tracking.c (variable_tracking_main): Likewise.
9778 * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
9779 * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
9780 options.
9781
9782 2006-02-15 Marcin Dalecki <martin@dalecki.de>
9783
9784 * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
9785 construction.
9786
9787 2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
9788
9789 PR tree-optimization/26209
9790 * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
9791 * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
9792 eh edges.
9793 * tree-cfg.c (replace_uses_by): Do not alter cfg.
9794
9795 2006-02-14 Roger Sayle <roger@eyesopen.com>
9796
9797 PR middle-end/23670
9798 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
9799 (X,Y) and the corresponding symmetry related transformations.
9800 (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
9801 (X,Y) and its symmetry related transformations.
9802
9803 2006-02-14 Roger Sayle <roger@eyesopen.com>
9804
9805 * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
9806 and GEU.
9807
9808 2006-02-14 Adam Nemet <anemet@caviumnetworks.com>
9809
9810 * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
9811
9812 2006-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9813
9814 PR bootstrap/26053
9815 * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
9816 support COMDAT group.
9817 * configure: Regenerate.
9818
9819 2006-02-14 Roger Sayle <roger@eyesopen.com>
9820
9821 PR middle-end/26279
9822 PR middle-end/26280
9823 PR middle-end/26283
9824 * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
9825
9826 2006-02-14 Daniel Berlin <dberlin@dberlin.org>
9827
9828 Fix PR tree-optimization/26260
9829
9830 * doc/invoke.texi (max-fields-for-field-sensitive): Document
9831 param.
9832 * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
9833 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
9834 * tree-ssa-structalias.c (create_variable_info_for): Use
9835 MAX_FIELDS_FOR_FIELD_SENSITIVE.
9836
9837 2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
9838
9839 * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
9840 Document.
9841 * tree-ssa-loop-niter.c (number_of_iterations_ne,
9842 number_of_iterations_lt, number_of_iterations_cond): Remember the shape
9843 of the ending condition.
9844 * tree-ssa-loop-manip.c: Include params.h.
9845 (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
9846 tree_unroll_loop): New functions.
9847 * tree-pass.h (pass_loop_prefetch): Declare.
9848 * loop.c (rest_of_handle_loop_optimize): Test for
9849 -fprefetch-loop-arrays-rtl.
9850 * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
9851 * timevar.def (TV_TREE_PREFETCH): New timevar.
9852 * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
9853 pass_loop_prefetch): New.
9854 * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
9855 (cleanup_tree_cfg_loop): Call scev_reset.
9856 * common.opt (fprefetch-loop-arrays-rtl): Add.
9857 * tree-ssa-loop-prefetch.c: New file.
9858 * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
9859 (new_temp_expr_table): Initialize expr_vars.
9860 (free_temp_expr_table): Cleanup expr_vars.
9861 (check_replaceable, find_replaceable_in_bb): Prevent accumulating
9862 expressions from being merged into one.
9863 * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
9864 (struct tree_niter_desc): Add control, bound and cmp fields.
9865 (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
9866 Declare.
9867 * Makefile.in (tree-ssa-loop-prefetch.o): Add.
9868 (tree-cfgcleanup.o): Add SCEV_H dependency.
9869 (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
9870 * passes.c (init_optimization_passes): Add pass_loop_prefetch.
9871
9872 2006-02-14 Richard Guenther <rguenther@suse.de>
9873
9874 PR tree-optimization/26258
9875 * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
9876 in PHI argument processing.
9877
9878 2006-02-13 Adam Nemet <anemet@caviumnetworks.com>
9879
9880 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
9881 new expression in the requested machine mode.
9882
9883 2006-02-13 Roger Sayle <roger@eyesopen.com>
9884
9885 * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
9886 directly, instead let do_compare_rtx_and_jump handle this for us.
9887 * expr.c (expand_expr_real_1): Likewise.
9888 * dojump.c (do_jump_by_parts_greater_rtx): Make static. Move
9889 before do_jump_by_parts_greater.
9890 (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
9891 * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
9892
9893 2006-02-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9894
9895 * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
9896
9897 2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
9898
9899 PR rtl-optimization/26235
9900 * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
9901 (invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown
9902 format.
9903
9904 2006-02-13 Jeff Law <law@redhat.com>
9905
9906 * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
9907 TRUTH_XOR_EPR.
9908
9909 2006-02-13 Jakub Jelinek <jakub@redhat.com>
9910
9911 PR middle-end/26092
9912 * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
9913 twice if decl is a builtin. When trying again, call get_callee_fndecl
9914 first to verify it is still a builtin.
9915
9916 2006-02-13 Geoffrey Keating <geoffk@apple.com>
9917
9918 * dwarf2out.c (base_type_die): Don't add AT_name here.
9919 (subrange_type_die): Don't add AT_name here.
9920 (modified_type_die): Rearrange code flow. Do add AT_name here.
9921
9922 2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
9923
9924 PR rtl-optimization/26247
9925 PR rtl-optimization/26248
9926 * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
9927
9928 2006-02-13 Richard Sandiford <richard@codesourcery.com>
9929
9930 * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
9931 * config/fixtfdi.c: Likewise.
9932 * config/fixunstfdi.c: Likewise.
9933 * config/floatditf.c: Likewise.
9934
9935 2006-02-13 Roger Sayle <roger@eyesopen.com>
9936
9937 PR middle-end/24427
9938 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
9939 into (X,C2) if C1 is a subset of the bits of C2. Transform
9940 (X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as
9941 (X&(C1&~C2))|C2.
9942 <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
9943
9944 2006-02-13 Josh Conner <jconner@apple.com>
9945
9946 PR target/25376
9947 * varasm.c (function_section): Check for section name before
9948 calling select_section on targets that define
9949 USE_SELECT_SECTION_FOR_FUNCTIONS. On other targets, use
9950 unlikely_text_section instead of hot_function_section if
9951 first_function_block_is_cold.
9952
9953 2006-02-13 J"orn Rennecke <joern.rennecke@st.com>
9954
9955 PR middle-end/25335
9956 * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
9957
9958 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
9959
9960 PR rtl-optimization/26222
9961 * function.c (assign_stack_temp_for_type): Do not reuse stack slots
9962 after tree->rtl expansion.
9963 * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
9964 before passing it to emit_move_insn.
9965
9966 2006-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
9967
9968 * doc/invoke.texi (-Write-strings): Document that it is enabled by
9969 default.
9970 * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
9971 Clarify documentation.
9972 * c-common.h (warn_write_strings): Remove.
9973 * c-common.c (warn_write_strings): Likewise.
9974 * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
9975 default for C++.
9976
9977 2006-02-12 Roger Sayle <roger@eyesopen.com>
9978
9979 PR middle-end/25724
9980 * dojump.c (do_jump): Call do_compare_rtx_and_jump.
9981 (do_jump_parts_zero_rtx): New function renamed from
9982 do_jump_parts_equality_rtx. Made static. Add a mode argument.
9983 (do_jump_parts_equality_rtx): New function split out from
9984 do_jump_parts_equality. Old implementation renamed as above.
9985 Call do_jump_parts_zero_rtx if either operand is zero.
9986 (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
9987 do all of the heavy lifting.
9988 (do_compare_rtx_and_jump): Handle multi-word comparisons by
9989 calling either do_jump_by_parts_greater_rtx or
9990 do_jump_by_parts_equality_rtx.
9991 * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
9992 * expmed.c (do_cmp_and_jump): Now multi-word optimization has
9993 moved to do_compare_rtx_and_jump, call it directly.
9994 * stmt.c (do_jump_if_equal): Remove static prototype. Add a
9995 mode argument. Call do_compare_rtx_and_jump.
9996 (emit_case_nodes): Update calls to do_jump_if_equal.
9997
9998 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
9999
10000 PR rtl-optimization/26225
10001 * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
10002
10003 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
10004
10005 PR rtl-optimization/26232
10006 * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
10007
10008 2006-02-11 Jason Merrill <jason@redhat.com>
10009
10010 PR tree-opt/24365
10011 * tree-inline.c (declare_return_variable): Just don't use the
10012 modify target if it's a gimple complex reg and the return slot
10013 isn't.
10014
10015 2006-02-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10016
10017 * doc/contrib.texi: Update my entry.
10018
10019 2006-02-10 Geoffrey Keating <geoffk@apple.com>
10020
10021 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
10022
10023 2006-02-10 Diego Novillo <dnovillo@redhat.com>
10024
10025 * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
10026 expensive.
10027
10028 2006-02-10 Zdenek Dvorak <dvorakz@suse.cz>
10029
10030 * doc/invoke.texi (-floop-optimize2): Removed.
10031 * toplev.c (process_options): Remove handling of flag_loop_optimize2.
10032 * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
10033 Test flag_branch_on_count_reg only if HAVE_doloop_end.
10034 * common.opt (floop-optimize2): Removed.
10035 (fmove-loop-invariants): Enabled by default.
10036
10037 2006-02-10 Sebastian Pop <pop@cri.ensmp.fr>
10038
10039 * tree-if-conv.c (combine_blocks): Free the result of
10040 get_loop_exit_edges.
10041
10042 2006-02-10 Jeff Law <law@redhat.com>
10043
10044 * fold-const.c (tree_expr_nonzero_p): Fix thinko.
10045
10046 PR tree-optimization/26213
10047 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
10048 loop trying to follow SSA_NAME_VALUE chains.
10049
10050 2006-02-10 Richard Guenther <rguenther@suse.de>
10051
10052 * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
10053 deal with structures that end in implicitly variable sized arrays.
10054
10055 2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
10056
10057 PR rtl-optimization/24762
10058 * df-scan.c (df_bb_refs_record): Record correct registers defined on
10059 eh edges.
10060
10061 2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
10062
10063 * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
10064 (struct ivopts_data): Add regs_used field.
10065 (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
10066 (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
10067 instead of loop_data->regs_used;
10068 (free_loop_data): Do not free aux fields for loops.
10069 (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
10070 and tree_ssa_iv_optimize_finalize.
10071
10072 2006-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
10073
10074 * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
10075
10076 2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
10077
10078 PR target/26141
10079 * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
10080 computing the effective result type.
10081
10082 2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
10083
10084 PR inline-asm/16194
10085 * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
10086 (tree_overlaps_hard_reg_set): Declare.
10087 * stmt.c (decl_overlaps_hard_reg_set_p): Now static. Change return
10088 type and signature to match function type expected by walk_tree.
10089 (tree_overlaps_hard_reg_set): New function.
10090 (decl_conflicts_with_clobbers_p): Rename to:
10091 (tree_conflicts_with_clobbers_p). Take HARD_REG_SET * argument.
10092 Use tree_overlaps_hard_reg_set. Changed caller.
10093 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
10094 decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
10095 * cris.c (cris_md_asm_clobbers): Likewise.
10096
10097 2006-02-09 Bernd Schmidt <bernd.schmidt@analog.com>
10098
10099 * reload1.c (emit_input_reload_insns): Delete code that tries to
10100 inherit using find_equiv_reg.
10101
10102 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
10103
10104 * c-common.h (flag_const_strings): Don't declare.
10105 * c-common.c (flag_const_strings): Remove.
10106 * c.opt (fconst_strings): Remove.
10107 * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
10108 <OPT_Wwrite_strings>: Don't set flag_const_strings.
10109 (c_common_init_options): Don't set flag_const_strings.
10110 * doc/invoke.texi (-fno-const-strings): Remove documentation.
10111
10112 2006-02-09 Richard Earnshaw <richard.earnshaw@arm.com>
10113
10114 * arm.md (tlobits_cbranch): New pattern.
10115 * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
10116 testing a single bit.
10117
10118 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
10119
10120 PR tree-opt/26179
10121 * tree-ssa-pre.c (create_component_ref_by_pieces):
10122 Handle RETURN_DECL like VAR_DECL.
10123
10124 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
10125
10126 PR middle-end/26134
10127 * fold-const.c (fold_indirect_ref_1): Fold
10128 "*(foo *)&complexfoo" to "__real__ complexfoo"
10129 and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
10130
10131 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
10132
10133 * tree-flow-inline.h (var_can_have_subvars):
10134 Volatile variables should not have subvariables.
10135
10136 2006-02-09 Diego Novillo <dnovillo@redhat.com>
10137
10138 PR 26180
10139 * tree-vrp.c (vrp_int_const_binop): Detect overflow when
10140 multiplying unsigned values.
10141 Tidy comments.
10142
10143 2006-02-09 Eric Botcazou <ebotcazou@libertysurf.fr>
10144
10145 * config/sparc/sparc.c (tls_call_delay): Fix oversight.
10146
10147 2006-02-08 Jason Merrill <jason@redhat.com>
10148
10149 PR c++/25979
10150 * tree.def: Elaborate on difference from MODIFY_EXPR.
10151 * doc/c-tree.texi (INIT_EXPR): Likewise.
10152 * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
10153 (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
10154 (gimplify_target_expr): Likewise.
10155 (gimplify_cond_expr): Remove target handling.
10156 (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
10157 (gimplify_expr): Clobber it here.
10158 (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
10159 Do return slot optimization if we have an INIT_EXPR.
10160
10161 PR tree-opt/24365
10162 * tree-inline.c (declare_return_variable): Also clear
10163 DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
10164
10165 PR c++/16405
10166 * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
10167
10168 PR middle-end/22439
10169 * gimplify.c (gimplify_one_sizepos): Fix typo.
10170
10171 2006-02-08 Jeff Law <law@redhat.com>
10172
10173 PR tree-optimization/21417
10174 * tree-ssa-threadedge.c (thread_across_edge): Reject threading
10175 across a backedge if the control statement at the end of the
10176 block is data dependent on other statements in the same block.
10177 (record_temporary_equivalences_from_stmts): Remove over-conservative
10178 test for threading across backedges.
10179
10180 * tree-ssa-dce.c (remove_dead_statement): When removing a dead
10181 control statement, handle all three special cases in the same
10182 manner as they all have the same desired solution. No longer
10183 special case edge flag updating when the post dominator is
10184 the exit block.
10185
10186 2006-02-08 Roger Sayle <roger@eyesopen.com>
10187
10188 * tree.def (CHAR_TYPE): Remove.
10189 * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
10190 * dwarf2out.c (base_type_die, is_base_type): Likewise.
10191 (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
10192 (gen_string_type_die): Delete unreachable function.
10193
10194 * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
10195 * tree.c (build_int_cst_wide, type_contains_placeholder_1,
10196 type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
10197 * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
10198 * builtins.c (type_to_class): Likewise.
10199 * fold-const.c (fold_convert, build_range_check,
10200 merge_ranges): Likewise.
10201 * expr.c (count_type_elements): Likewise.
10202 * c-pretty-print.c (pp_c_type_specifier): Likewise.
10203 * stor-layout.c (layout_type): Likewise.
10204 * ipa-type-escape.c (type_to_consider): Likewise.
10205 * gimplify.c (omp_firstprivatize_type_sizes,
10206 gimplify_type_sizes): Likewise.
10207 * explow.c (promote_mode): Likewise.
10208 * tree-sra.c (is_sra_scalar_type): Likewise.
10209 * varasm.c (output_constant): Likewise.
10210 * tree-inline.c (remap_type_1): Likewise.
10211 * convert.c (convert_to_pointer, convert_to_real,
10212 convert_to_integer, convert_to_complex): Likewise.
10213
10214 2006-02-08 Daniel Berlin <dberlin@dberlin.org>
10215
10216 * df-scan.c (df_def_record_1): A set destination may
10217 be a parallel regardless of mode.
10218
10219 2006-02-08 Roger Sayle <roger@eyesopen.com>
10220
10221 PR target/22209
10222 * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
10223 * config/mips/_tilib.c: Remove.
10224 * config/fixtfdi.c: New libgcc source file.
10225 * config/fixunstfdi.c: New source file.
10226 * config/floatditf.c: New source file.
10227 * config/floatunditf.c: New souce file.
10228 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
10229 files above instead of config/mips/_tilib.c.
10230 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
10231
10232 2006-02-08 Jeff Law <law@redhat.com>
10233
10234 PR tree-optimization/26169
10235 * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
10236 threading jumps.
10237
10238 2006-02-08 Zdenek Dvorak <dvorakz@suse.cz>
10239
10240 * df.h (DF_REG_SIZE): Return the length of the initialized
10241 part of the array.
10242
10243 2006-02-08 Nathan Sidwell <nathan@codesourcery.com>
10244
10245 * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
10246 __muldf3): Return a correctly signed zero.
10247
10248 2006-02-08 Paolo Bonzini <bonzini@gnu.org>
10249
10250 * passes.c (register_one_dump_file): Accept the current properties
10251 instead of pass number. Adjust call to dump_register. Remove
10252 duplicated code.
10253 (register_dump_files): Now a wrapper around...
10254 (register_dump_files_1): ... this one. Do not modify the pass
10255 structure.
10256 (next_pass_1): Cosmetic fix.
10257 (execute_todo): Keep second parameter only. Use curr_properties
10258 instead of fetching it from the pass structure. Check and set
10259 last_verified.
10260 (execute_one_pass): Handle TODO_set_props. Use curr_properties
10261 instead of fetching it from the pass structure. Fix calls to
10262 execute_todo. Update curr_properties and initialize .vcg RTL dump
10263 after running the pass. Reset last_verified.
10264 * tree-dump.c (dump_files): Renumber consecutively. Put .cgraph dump
10265 at the beginning.
10266 (FIRST_AUTO_NUMBERED_DUMP): New.
10267 (dump_register): Remove "num" parameter, assign it within the
10268 function.
10269 (get_dump_file_name): Modify template for dumps.
10270 * tree-dump.h (dump_register): Adjust prototype.
10271 * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
10272 (PROP_trees): Add PROP_gimple_lomp.
10273 (TODO_set_props): New.
10274 * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
10275 * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
10276 * cfgexpand.c (pass_expand): Destroy PROP_trees.
10277
10278 2006-02-08 Jakub Jelinek <jakub@redhat.com>
10279
10280 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10281 (sparc64-*-linux*): Likewise.
10282 * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
10283 * config/sparc/t-linux: New file.
10284 * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
10285 __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
10286 (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
10287 -m32 -mlong-double-128.
10288
10289 * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
10290 * config/alpha/t-linux: New file.
10291 * config/alpha/libgcc-alpha-ldbl.ver: New file.
10292
10293 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
10294 __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
10295 (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
10296 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
10297 __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
10298 (CPP_ARCH32_SPEC): Remove.
10299
10300 2006-02-07 Uttam Pawar <uttamp@us.ibm.com>
10301
10302 PR tree-optimization/26145
10303 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
10304 bbs pointer.
10305
10306 2006-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10307
10308 PR target/26109
10309 * pa.c (attr_length_indirect_call): Don't return length 8 for distances
10310 >= 240000 when generating code for SOM runtime.
10311 (output_indirect_call): Don't use "b,l" instruction for indirect calls
10312 to $$dyncall when generating code for SOM runtime..
10313
10314 2006-02-07 Dirk Mueller <dmueller@suse.com>
10315
10316 PR c++/18150
10317 * doc/invoke.texi (-Wsequence-point): Update documentation
10318 that -Wsequence-point is implemented for C++ as well.
10319
10320 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
10321
10322 * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
10323 * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
10324 (LIB_SPEC): Likewise.
10325 * doc/invoke.texi (SPARC options): Document -pthread.
10326
10327 2006-02-07 Geoffrey Keating <geoffk@apple.com>
10328
10329 * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
10330 PIC addresses.
10331
10332 2006-02-07 Roger Sayle <roger@eyesopen.com>
10333
10334 * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
10335 Correct comment describing BOOLEAN_TYPE.
10336
10337 2006-02-07 Dirk Mueller <dmueller@suse.com>
10338
10339 * c.opt: C++ frontend supports -Wdiv-by-zero.
10340 * c-opts.c (c_common_handle_option): Remove dead case.
10341
10342 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
10343
10344 * configure.ac (TLS assembler check): Do not enable TLS by
10345 default on SPARC/Solaris before version 10.
10346 * configure: Regenerate.
10347
10348 2006-02-07 David Edelsohn <edelsohn@gnu.org>
10349
10350 * doc/invoke.texi (xl-compat): Document conversion and support
10351 routine names.
10352
10353 2006-02-07 Jeff Law <law@redhat.com>
10354
10355 * tree-vrp.c (find_conditional_asserts): Update comments.
10356 (simplify_stmt_for_jump_threading): New.
10357 (identify_jump_threads, finalize_jump_threads): New.
10358 (vrp_finalize): Call identify_jump_threads.
10359 (execute_vrp): Call finalize_jump_threads.
10360 * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
10361 (vrp_element, vrp_data, vrp_element_p): Remove.
10362 (vrp_hash_elt, vrp_variables_stack): Remove.
10363 (vrp_hash, vrp_eq, record_range): Remove.
10364 (simplify_cond_and_lookup_avail_expr): Remove.
10365 (extract_range_from_cond): Remove.
10366 (thread_across_edge): Relocated into tree-ssa-threadedge.c.
10367 (simplify_stmt_for_jump_threading): New.
10368 (dom_thread_across_edge): New wrapper.
10369 (tree_ssa_dominator_optimize): No longer initialize or
10370 finalize any of the VRP datastructures. Remove iteration
10371 step and simplify as a result of removal of iteration step.
10372 (pass_dominator): Perform a cfg cleanup after DOM.
10373 (dom_opt_finalize_block): Use the new common routines
10374 for threading jumps. Simplify stack management slightly.
10375 No longer need to unwind VRP state.
10376 (record_equivalences_from_incoming_edge): No longer record
10377 VRP information.
10378 (eliminate_redundant_computations): No longer call
10379 simplify_cond_and_lookup_avail_expr.
10380 * tree-flow.h (potentially_threadable_block): Prototype.
10381 (thread_across_edge): Likewise.
10382 * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
10383 (tree-ssa-threadedge.o): Add dependencies.
10384 * tree-ssa-threadedge.c: New file.
10385 * passes.c (init_optimization_passes): Merge PHIs before
10386 calling VRP. Run VRP again late in the SSA optimization pipeline.
10387
10388 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
10389
10390 * df-core.c (df_set_blocks): Do not dereference function pointers.
10391 (df_finish1): Likewise.
10392 (df_hybrid_search_forward): Likewise.
10393 (df_hybrid_search_backward): Likewise.
10394 (df_iterative_dataflow): Likewise.
10395 (df_analyze_problem): Likewise.
10396 (df_compact_blocks): Likewise.
10397 (df_dump): Likewise.
10398 * df-scan.c (df_rescan_blocks): Likewise.
10399 (df_record_entry_block_defs): Likewise.
10400
10401 * genconditions.c (write_conditions): Guard the definition of
10402 'insn_conditions' with the check on GCC version.
10403 (write_writer): Guard the traversal 'insn_conditions' with
10404 the check on GCC version.
10405
10406 2006-02-07 Richard Guenther <rguenther@suse.de>
10407
10408 PR c++/26140
10409 Revert
10410 2006-01-30 Richard Guenther <rguenther@suse.de>
10411 PR c++/23372
10412 * gimplify.c (gimplify_target_expr): Handle easy cases
10413 without creating a temporary.
10414
10415 2006-02-07 Pete Steinmetz <steinmtz@us.ibm.com>
10416
10417 * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
10418 use of float in probability computations. Use edge probabilities
10419 in place of statically computed probabilities.
10420 (min_spec_prob): New static variable.
10421 (schedule_insns): Initialize it.
10422 (GET_SRC_PROB): Removed.
10423 * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
10424
10425 2006-02-07 Alexandre Oliva <aoliva@redhat.com>
10426
10427 PR debug/24444
10428 * config/ia64/unwind-ia64.c: Revert last change.
10429 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
10430 (INCOMING_FRAME_SP_OFFSET): Define.
10431
10432 2006-02-06 Roger Sayle <roger@eyesopen.com>
10433
10434 * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
10435
10436 2006-02-07 Ben Elliston <bje@au.ibm.com>
10437
10438 * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
10439 (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
10440 (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
10441 (ix86_return_in_memory): Handle TDmode.
10442 (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
10443 (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
10444
10445 2006-02-06 Richard Sandiford <richard@codesourcery.com>
10446
10447 * reorg.c (dbr_schedule): Use dump_file instead of file.
10448
10449 2006-02-06 Steve Ellcey <sje@cup.hp.com>
10450
10451 PR target/25917
10452 * config/ia64/predicates.md (extr_len_operand): New predicate.
10453 * config/ia64/ia64.md (extv): Tighten constraints.
10454 (extzv): Ditto.
10455 (*tbit_and_2): Ditto.
10456 (*tbit_and_3): Ditto.
10457 (*tbit_or_2): Ditto.
10458 (*tbit_or_3): Ditto.
10459 (*bit_zero): Ditto.
10460 (*bit_one): Ditto.
10461
10462 2006-02-06 Andrew Pinski <pinskia@physics.uc.edu>
10463
10464 PR target/23359
10465 * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
10466
10467 2006-02-06 Zdenek Dvorak <dvorakz@suse.cz>
10468
10469 * tree-vrp.c (execute_vrp): Do not pass dump argument to.
10470 loop_optimizer_init and loop_optimizer_finalize
10471 * tree-ssa-sink.c (execute_sink_code): Ditto.
10472 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
10473 * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
10474 tree_ssa_loop_done): Ditto.
10475 * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
10476 * sched-ebb.c: Include output.h.
10477 (schedule_ebbs): Do not use dump argument.
10478 * value-prof.h (struct profile_hooks): Remove profile_dump_file.
10479 * loop.c (loop_dump_stream): Removed.
10480 (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
10481 argument.
10482 (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
10483 emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
10484 final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
10485 loop_iterations, strength_reduce, record_biv, record_giv,
10486 final_giv_value, check_final_value, check_ext_dependent_givs,
10487 combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
10488 try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
10489 dump_file instead of loop_dump_stream.
10490 * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
10491 argument dump_file.
10492 * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
10493 dump argument.
10494 * flow.c (life_analysis, rest_of_handle_life): Ditto.
10495 * haifa-sched.c: Include output.h
10496 (schedule_insns, sched_init): Do not use dump argument.
10497 * mode-switching.c (optimize_mode_switching): Ditto.
10498 * modulo-sched.c (stats_file): Removed.
10499 (print_node_sched_params): Do not call argument dump_file.
10500 (sms_schedule_by_order, loop_canon_p, sms_schedule,
10501 rest_of_handle_sms): Do not use dump argument. Use dump_file instead
10502 of stats_file.
10503 * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
10504 use dump argument.
10505 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
10506 rtl_loop_init, rtl_loop_done): Ditto.
10507 * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
10508 * predict.c (combine_predictions_for_bb, tree_estimate_probability):
10509 Ditto.
10510 * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
10511 * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
10512 * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
10513 rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
10514 * emit-rtl.c (renumber_insns): Ditto.
10515 * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
10516 expand_gimple_basic_block, tree_expand_cfg): Ditto.
10517 * regclass.c (regclass): Ditto.
10518 * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
10519 remove_ssa_form, rewrite_out_of_ssa): Ditto.
10520 * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
10521 convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
10522 Ditto.
10523 * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
10524 * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
10525 to regclass.
10526 * gcse.c (gcse_file, debug_stderr): Removed.
10527 (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
10528 rest_of_handle_gcse): Do not use dump argument.
10529 (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
10530 one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
10531 pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
10532 compute_code_hoist_vbeinout, compute_code_hoist_data,
10533 one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
10534 compute_store_table, build_store_vectors, insert_insn_start_bb,
10535 insert_store, remove_reachable_equiv_notes, replace_store_insn,
10536 store_motion): Use dump_file instead of gcse_file.
10537 * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
10538 * profile.c (profile_dump_file): Removed.
10539 (branch_prob): Use dump_file instead of profile_dump_file.
10540 * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
10541 dump_file.
10542 * tree-ssa-copy.c (dump_copy_of): Ditto.
10543 * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
10544 dump file to life_analysis.
10545 * bt-load.c (branch_target_load_optimize): Ditto.
10546 * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
10547 renumber_insns.
10548 * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
10549 regclass, dbr_schedule): Declaration changed.
10550 * sched-int.h (sched_init): Declaration changed.
10551 * tree-profile.c (tree_profile_dump_file): Removed.
10552 (tree_profile_hooks): Removed profile_dump_file hook.
10553 * rtl-profile (rtl_profile_dump_file): Removed.
10554 (rtl_profile_hooks): emoved profile_dump_file hook.
10555 * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
10556 changed.
10557 * c-gimplify.c (c_genericize): Do not call local variable dump_file.
10558 * tree-cfg.c (build_tree_cfg): Ditto.
10559 * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
10560 * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
10561 Declaration changed.
10562 * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
10563 life_analysis and schedule_insns.
10564 * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
10565 life_analysis.
10566 * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
10567 dbr_schedule.
10568 * config/mips/mips.c (mips_reorg): Ditto.
10569 * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
10570 schedule_ebbs.
10571
10572 2006-02-06 Aldy Hernandez <aldyh@redhat.com>
10573
10574 * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
10575 (s390_mangle_fundamental_type): New.
10576 * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10577 Define.
10578
10579 * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
10580 (alpha_mangle_fundamental_type): New.
10581 * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10582 Define.
10583
10584 * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10585 Define.
10586 * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10587 Define.
10588 * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
10589 (sparc_mangle_fundamental_type): New.
10590
10591 2006-02-06 Jakub Jelinek <jakub@redhat.com>
10592
10593 * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
10594 (s390x-*-linux*): Likewise.
10595 * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
10596 * config/s390/t-linux: New file.
10597
10598 2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
10599
10600 * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
10601 sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
10602
10603 2006-02-06 Daniel Berlin <dberlin@dberlin.org>
10604
10605 * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
10606 (ANTIC_SAFE_LOADS): New macro.
10607 (find_or_generate_expression): Add prototype.
10608 (set_contains_value): Allow null set for sake of not always having
10609 to allocate ANTIC_SAFE_LOADS.
10610 (phi_translate): Move placement of AGGREGATE_TYPE_P check.
10611 Allow COMPONENT_REF too.
10612 (valid_in_set): Allow COMPONENT_REF.
10613 Check ANTIC_SAFE_LOADS too.
10614 (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
10615 (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
10616 rename.
10617 (can_PRE_operation): Add COMPONENT_REF.
10618 (create_component_ref_by_pieces): New function.
10619 (create_expression_by_pieces): Use create_component_ref_by_pieces.
10620 (insert_aux): Move AGGREGATE_TYPE_P check here.
10621 (compute_avail): Set bb local stmt uids.
10622 (pass_pre): Use TODO_update_ssa_only_virtuals.
10623
10624 2006-02-06 Ben Elliston <bje@au.ibm.com>
10625
10626 * configure.ac: Unconditionally disable decimal float by default.
10627 * configure: Regenerate.
10628
10629 2006-02-06 Ben Elliston <bje@au.ibm.com>
10630
10631 * read-rtl.c (read_name): Terminate reading on EOF.
10632
10633 2006-02-06 Ben Elliston <bje@au.ibm.com>
10634
10635 * dfp.c (decimal_real_arithmetic): Change second argument type
10636 from int to enum tree_code. Do not always return true, but now
10637 return result of any call to decimal_do helper functions.
10638 * dfp.h (decimal_real_arithmetic): Update prototype.
10639
10640 2006-02-05 Eric Botcazou <ebotcazou@libertysurf.fr>
10641
10642 * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
10643
10644 2006-02-05 Andrew Pinski <pinskia@physics.uc.edu>
10645
10646 PR tree-opt/25251
10647 * tree-cfg.c (cleanup_dead_labels): Also don't remove
10648 forced labels.
10649
10650 2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
10651
10652 * tree-vrp.c (cfg_loops): Removed.
10653 (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
10654 Use current_loops instead of cfg_loops. Pass flags to
10655 loop_optimizer_init.
10656 * cfgloopmanip.c (fix_loop_structure): Update only available
10657 information.
10658 * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
10659 loop_optimizer_init.
10660 * modulo-sched.c (build_loops_structure): Removed.
10661 (sms_schedule): Use loop_optimizer_init.
10662 * loop-init.c (loop_optimizer_init): Use flags to determine
10663 which properties of loops to prepare.
10664 (rtl_loop_init): Pass flags to loop_optimizer_init.
10665 * tree-ssa-sink.c (execute_sink_code): Ditto.
10666 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
10667 * tree-ssa-pre.c (init_pre): Ditto.
10668 * cfgloop.h (LOOPS_NORMAL): New.
10669 (loop_optimizer_init): Declaration changed.
10670
10671 2006-02-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10672
10673 * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
10674 * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
10675 pa/t-pa.
10676 * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
10677 pa/t-pa.
10678 * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
10679 pa/x-ada.
10680 * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
10681 * pa/t-pa64: Delete quadlib.c rule.
10682 * pa/x-ada: Revert last change.
10683 * pa/t-pa: Revert last change. Delete quadlib.c rule.
10684
10685 2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
10686
10687 PR rtl-optimization/26087
10688 * rtlanal.c (canonicalize_condition): Do not cross basic block
10689 boundaries.
10690
10691 2006-02-04 Alexandre Oliva <aoliva@redhat.com>
10692
10693 PR debug/24444
10694 * config/ia64/ia64.c: Include debug.h.
10695 (MAX_ARTIFICIAL_LABEL_BYTES): New.
10696 (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
10697 (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
10698 (process_epilogue, process_set, process_for_unwind_directive):
10699 Output unwind info only if requested. Add CFA info if requested.
10700 Add new arguments as needed. Adjust callers.
10701 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
10702 incorrect default.
10703 (DWARF2_FRAME_INFO): Define to zero.
10704 * config/ia64/unwind-ia64.c: Remove code that compensated for
10705 the CFA offset error fixed above.
10706 * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
10707 * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
10708 (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
10709 -funwind-tables and -fexceptions to enable frame info.
10710 (dwarf2out_frame_init): Define initial CFA even if
10711 DWARF2_UNWIND_INFO is disabled. Call initial_return_save if
10712 DWARF2_UNWIND_INFO is nonzero, not just defined.
10713 (dwarf2out_frame_finish): Output non-EH call frame info only
10714 if DWARF2_FRAME_INFO is nonzero.
10715 (convert_cfa_to_loc_list,
10716 compute_frame_pointer_to_cfa_displacement): Define even if
10717 unwind info is not supported.
10718 (gen_subprogram_die): Use the above unconditionally. Remove
10719 legacy alternate code.
10720 * toplev.c (compile_file): Compile in call to
10721 dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
10722 (lang_dependent_init): Ditto for dwarf2out_frame_init.
10723
10724 2006-02-04 David Edelsohn <edelsohn@gnu.org>
10725 Jakub Jelinek <jakub@redhat.com>
10726
10727 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
10728 IBM extended float format long double as "g" on powerpc*-linux.
10729
10730 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10731
10732 PR target/25926
10733 * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
10734 * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
10735
10736 2006-02-03 Jason Merrill <jason@redhat.com>
10737
10738 PR c++/25979
10739 * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
10740
10741 PR middle-end/25977
10742 * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
10743 on the return slot if it's an NRV.
10744
10745 2006-02-03 Zdenek Dvorak <dvorakz@suse.cz>
10746
10747 * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
10748 (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
10749 rewrite_use): Do not handle USE_OUTER.
10750 (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
10751 add_iv_outer_candidates, may_replace_final_value,
10752 determine_use_iv_cost_outer, rewrite_use_outer): Removed.
10753 (find_interesting_uses_op): Functionality of
10754 find_interesting_uses_outer_or_nonlin moved here.
10755 (find_interesting_uses_outside): Use find_interesting_uses_op.
10756
10757 2006-02-03 Alan Modra <amodra@bigpond.net.au>
10758
10759 PR target/25960
10760 * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
10761
10762 2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
10763 Ulrich Weigand <uweigand@de.ibm.com>
10764
10765 PR target/25864
10766 * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
10767 "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
10768 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
10769 * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
10770 and dxr fields.
10771 (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
10772 (s390_rtx_costs): Use the new fields to calculate rtx costs.
10773 (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
10774 Define secondary reloads for TFmode moves.
10775 (constant_modes): Add TFmode.
10776 (NR_C_MODES): Set to 8.
10777 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
10778 builtin define.
10779 (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
10780 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
10781 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
10782 CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
10783 * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
10784 fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
10785 (FPR mode macro): Add TFmode.
10786 (DSF mode macro): New.
10787 (<de>, <dee> mode attributes): Removed.
10788 (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
10789 ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
10790 "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
10791 "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
10792 "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
10793 "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
10794 "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
10795 "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
10796 "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
10797 "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
10798 "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
10799 "*negabs<mode>2", "sqrt<mode>2"):
10800 Changed <de> to <xde>. R constraint replaced by <Rf>.
10801 ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
10802 <Rf>.
10803 ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
10804 ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
10805 ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
10806 splitters.
10807 ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
10808 "extenddftf2", "extendsftf2"): New expanders.
10809 ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
10810 "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
10811 "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
10812 * config/s390/s390.opt (mlong-double-128, mlong-double-64):
10813 New options.
10814 * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
10815 * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
10816 __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
10817 __floatditf): Add a GCC_4.1.0 symbol version tag.
10818 * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
10819 the new options.
10820
10821 2006-02-02 Andrew Pinski <pinskia@physics.uc.edu>
10822
10823 PR target/25377
10824 * config/i386/i386.c (ix86_function_ok_for_sibcall):
10825 Use targetm.binds_local_p instead of TREE_PUBLIC.
10826
10827 2006-02-02 Roger Sayle <roger@eyesopen.com>
10828
10829 * tree.h (TYPE_STRING_FLAG): Document that this field may be used
10830 on INTEGER_TYPEs to indicate that it denotes a character type.
10831 * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
10832 signed_char_type_node, unsigned_char_type_node and char_type_node.
10833 * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
10834 INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit
10835 a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
10836
10837 2006-02-02 Zdenek Dvorak <dvorakz@suse.cz>
10838 Daniel Berlin <dberlin@dberlin.org>
10839
10840 * tree-tailcall.c (arg_needs_copy_p): New function.
10841 (eliminate_tail_call): Use arg_needs_copy_p.
10842 (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
10843 (add_virtual_phis): New function.
10844
10845 2006-02-02 Jakub Jelinek <jakub@redhat.com>
10846
10847 * config/sparc/sparc.c (sparc_output_scratch_registers): Use
10848 #ignore instead of #scratch for %g7 .register directive.
10849
10850 2006-02-02 Andreas Tobler <a.tobler@schweiz.ch>
10851
10852 * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
10853 object files.
10854
10855 2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
10856
10857 * flow.c (calculate_global_regs_live): Assert that there aren't any
10858 EDGE_FAKE edges.
10859
10860 2006-02-02 Paolo Bonzini <bonzini@gnu.org>
10861
10862 * tree-flow-inline.h (bsi_after_labels): Rewrite, return
10863 what its name says.
10864 * lambda-code.c (perfect_nestify): Use bsi_insert_before on
10865 bsi_after_labels iterator.
10866 * tree-if-conv.c (find_phi_replacement_condition,
10867 replace_phi_with_cond_modify_expr): Likewise.
10868 * tree-scalar-evolution.c (scev_const_prop): Likewise.
10869 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
10870
10871 2006-02-02 Diego Novillo <dnovillo@redhat.com>
10872
10873 * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
10874
10875 2006-02-02 Diego Novillo <dnovillo@redhat.com>
10876
10877 PR 25990
10878 * tree-cfg.c (move_block_to_fn): Clear out the basic block
10879 array after growing it.
10880
10881 2006-02-01 Steve Ellcey <sje@cup.hp.com>
10882
10883 PR middle-end/24901
10884 * fold-const.c (fold_checksum_tree): Change type of buf.
10885
10886 2006-02-01 Bernd Schmidt <bernd.schmidt@analog.com>
10887
10888 * reload.c (push_secondary_reload): Initialize t_icode.
10889
10890 2006-02-01 Jakub Jelinek <jakub@redhat.com>
10891
10892 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
10893 -msoft-float -mlong-double-128 only issue a warning, but don't
10894 swich to DFmode long double.
10895
10896 2006-02-01 Hans-Peter Nilsson <hp@axis.com>
10897
10898 * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
10899 has a constant equivalent, iterate over equivalents for arg0,
10900 calling simplify_relational_operation and if there's a result
10901 cheaper than X, apply fold_rtx and return the result.
10902
10903 2006-02-01 Jan Hubicka <jh@suse.cz>
10904
10905 * opts.c (no_unit_at_a_time_default): New global variable.
10906 (decode_options): Use it.
10907 * opts.h (no_unit_at_a_time_default): Declare.
10908
10909 2006-02-01 Paul Brook <paul@codesourcery.com>
10910
10911 * function.c (assign_parm_setup_reg): Use function argument promotion
10912 rules.
10913 * expr.c (expand_expr_real_1): Use function argument promotion rules
10914 for PARM_DECLs.
10915
10916 2006-02-01 Steve Ellcey <sje@cup.hp.com>
10917
10918 * gcc.c (process_command): Change j to 'unsigned int'.
10919
10920 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
10921
10922 PR middle-end/26001
10923 * expr.c (expand_expr_real_1) <case ARRAY_REF>:
10924 Use the corrected index for the character
10925 out of the string constant.
10926
10927 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
10928
10929 * mode-switching.c (optimize_mode_switching): Fix size
10930 allocated for bb_info[n_entities].
10931
10932 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
10933
10934 * gcc.c (main): Correct type that is allocated for
10935 explicit_link_files.
10936
10937 2006-01-31 Jakub Jelinek <jakub@redhat.com>
10938
10939 * config/s390/s390.c (init_alignment_context): Set
10940 ALIAS_SET_MEMORY_BARRIER on the MEM.
10941 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
10942
10943 2006-01-31 Uttam Pawar <uttamp@us.ibm.com>
10944
10945 PR middle-end/25933
10946 * loop-unroll.c (unroll_loop_runtime_iterations): Free
10947 dom_bbs pointer.
10948 * tree-ssa-live.c (type_var_init): Allocate bitmap after
10949 call to tpa_init.
10950
10951 2006-01-31 Marcin Dalecki <martin@dalecki.de>
10952
10953 * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
10954 * regrename.c: Ditto.
10955 * tree-ssa-loop-im.c: Ditto.
10956 * tree-dump.c: Ditto.
10957 * tree-complex.c: Ditto.
10958 * genrecog.c: Ditto.
10959 * tree-ssa-threadupdate.c: Ditto.
10960 * tracer.c: Ditto.
10961 * java/class.c: Ditto.
10962 * java/jcf-parse.c: Ditto.
10963 * java/resource.c: Ditto.
10964 * java/except.c: Ditto.
10965 * java/jvspec.c: Ditto.
10966 * java/jcf-write.c: Ditto.
10967 * java/jcf-path.c: Ditto.
10968 * java/gjavah.c: Ditto.
10969 * java/zextract.c: Ditto.
10970 * java/jcf-io.c: Ditto.
10971 * java/jcf.h: Ditto.
10972 * java/buffer.c: Ditto.
10973 * java/lang.c: Ditto.
10974 * java/parse-scan.y: Ditto.
10975 * java/lex.c: Ditto.
10976 * java/lex.h: Ditto.
10977 * cfgloopmanip.c: Ditto.
10978 * postreload-gcse.c: Ditto.
10979 * tree-ssa-loop-manip.c: Ditto.
10980 * postreload.c: Ditto.
10981 * tree-ssa-loop-ch.c: Ditto.
10982 * loop.c: Ditto.
10983 * ipa-cp.c: Ditto.
10984 * cppspec.c: Ditto.
10985 * diagnostic.c: Ditto.
10986 * final.c: Ditto.
10987 * genoutput.c: Ditto.
10988 * gcc.c: Ditto.
10989 * cfghooks.c: Ditto.
10990 * cfgloopanal.c: Ditto.
10991 * objc/objc-act.c: Ditto.
10992 * gcov.c: Ditto.
10993 * genextract.c: Ditto.
10994 * genautomata.c: Ditto.
10995 * pretty-print.c: Ditto.
10996 * genemit.c: Ditto.
10997 * cgraphunit.c: Ditto.
10998 * flow.c: Ditto.
10999 * df-scan.c: Ditto.
11000 * haifa-sched.c: Ditto.
11001 * dominance.c: Ditto.
11002 * dbxout.c: Ditto.
11003 * tree-ssa-loop-ivopts.c: Ditto.
11004 * df-core.c: Ditto.
11005 * mode-switching.c: Ditto.
11006 * modulo-sched.c: Ditto.
11007 * graph.c: Ditto.
11008 * ipa-pure-const.c: Ditto.
11009 * cse.c: Ditto.
11010 * fix-header.c: Ditto.
11011 * web.c: Ditto.
11012 * tree-stdarg.c: Ditto.
11013 * ipa-utils.c: Ditto.
11014 * loop-init.c: Ditto.
11015 * ipa-inline.c: Ditto.
11016 * cfganal.c: Ditto.
11017 * global.c: Ditto.
11018 * alloc-pool.c: Ditto.
11019 * dwarf2out.c: Ditto.
11020 * opts.c: Ditto.
11021 * genattrtab.c: Ditto.
11022 * tree-ssa-loop-ivcanon.c: Ditto.
11023 * predict.c: Ditto.
11024 * timevar.c: Ditto.
11025 * lcm.c: Ditto.
11026 * fortran/gfortranspec.c: Ditto.
11027 * regmove.c: Ditto.
11028 * local-alloc.c: Ditto.
11029 * langhooks.c: Ditto.
11030 * function.c: Ditto.
11031 * tree-vectorizer.c: Ditto.
11032 * gcse.c: Ditto.
11033 * ipa-type-escape.c: Ditto.
11034 * alias.c: Ditto.
11035 * tree-if-conv.c: Ditto.
11036 * profile.c: Ditto.
11037 * ipa.c: Ditto.
11038 * tree-data-ref.c: Ditto.
11039 * loop-unroll.c: Ditto.
11040 * treelang/treetree.c: Ditto.
11041 * calls.c: Ditto.
11042 * bt-load.c: Ditto.
11043 * ggc-common.c: Ditto.
11044 * except.c: Ditto.
11045 * coverage.c: Ditto.
11046 * cselib.c: Ditto.
11047 * tree-cfgcleanup.c: Ditto.
11048 * tree-ssa-pre.c: Ditto.
11049 * cfgcleanup.c: Ditto.
11050 * loop-invariant.c: Ditto.
11051 * loop-iv.c: Ditto.
11052 * ipa-prop.c: Ditto.
11053 * print-tree.c: Ditto.
11054 * conflict.c: Ditto.
11055 * ggc-page.c: Ditto.
11056 * sched-deps.c: Ditto.
11057 * regclass.c: Ditto.
11058 * tree-object-size.c: Ditto.
11059 * combine.c: Ditto.
11060 * bb-reorder.c: Ditto.
11061 * resource.c: Ditto.
11062 * var-tracking.c: Ditto.
11063 * cfgloop.c: Ditto.
11064 * df-problems.c: Ditto.
11065 * reg-stack.c: Ditto.
11066 * tlink.c: Ditto.
11067 * gccspec.c: Ditto.
11068 * sched-rgn.c: Ditto.
11069 * tree-ssa-structalias.c: Ditto.
11070 * tree-ssa-reassoc.c: Ditto.
11071 * config/darwin-c.c: Ditto.
11072 * config/darwin.c: Ditto.
11073 * config/arm/arm.c: Ditto.
11074 * cfgrtl.c: Ditto.
11075 * collect2.c: Ditto.
11076 * reload1.c: Ditto.
11077
11078 2006-01-31 Nicolas Pitre <nico@cam.org>
11079
11080 * arm.md (smaxsi3): Make aware of smax_m1.
11081 (smax_m1): New.
11082
11083 2006-01-31 Nathan Sidwell <nathan@codesourcery.com>
11084
11085 * config/m68k/lb1sf68.asm: Use moveq to load small constants.
11086
11087 2006-01-31 Richard Guenther <rguenther@suse.de>
11088
11089 * doc/invoke.texi (-msselibm): Document.
11090 * target.h (expand_library_builtin): New target hook.
11091 * builtins.c (expand_builtin): Use expand_library_builtin.
11092 (default_expand_library_builtin): New function.
11093 * gcc.c (LINK_GCC_MATH_SPEC): Define.
11094 (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
11095 (link_gcc_math_spec): Declare.
11096 (static_specs): Add link_gcc_math_spec.
11097 * expr.h (default_expand_library_builtin): Declare.
11098 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11099 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
11100 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
11101 * config/i386/i386.opt (msselibm): New target option.
11102 * config/i386/i386.c (ix86_builtin_function_variants): New array.
11103 (ix86_init_sse_abi_builtins): New function.
11104 (ix86_expand_library_builtin): Likewise.
11105 (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11106 (override_options): Handle error conditions wrt -msselibm.
11107 (ix86_builtins): Add function codes for SSE2 ABI builtins.
11108 (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
11109 * doc/extend.texi (__builtin_sse2_*): Document new target specific
11110 builtins.
11111
11112 2006-01-31 Richard Guenther <rguenther@suse.de>
11113 Paolo Bonzini <bonzini@gnu.org>
11114
11115 * doc/install.texi (--disable-libgcc-math): Document.
11116
11117 2006-01-30 Marcin Dalecki <martin@dalecki.de>
11118
11119 * expr.h (expand_normal): new inline function.
11120 * builtins.c: use it, use EXPAND_NORMAL explicitely.
11121 * dojump.c: use it.
11122 * dwarf2out.c: use it.
11123 * expr.c: use it.
11124 * calls.c: use it.
11125 * expmed.c: use it.
11126 * except.c: use it.
11127 * config/sparc/sparc.c: use it.
11128 * config/i386/i386.c: use it.
11129 * config/rs6000/rs6000.c: use it.
11130 * config/arm/arm.c: use it.
11131 * config/mips/mips.c: use it.
11132 * stmt.c: use it, use EXPAND_NORMAL explicitely.
11133
11134 2006-01-30 Roger Sayle <roger@eyesopen.com>
11135
11136 * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
11137 argv to the appropriate type.
11138
11139 2006-01-30 Zdenek Dvorak <dvorakz@suse.cz>
11140
11141 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
11142 unreachable code.
11143
11144 2006-01-30 Ulrich Weigand <uweigand@de.ibm.com>
11145
11146 PR target/26018
11147 * config/s390/s390.c (struct machine_function): New flag
11148 decomposed_literal_pool_addresses_ok_p.
11149 (s390_reorg): Set it before final stage of literal pool transforms.
11150 (s390_decompose_address): Only accept displacements of the form
11151 (minus (label_ref ...) (label_ref ...)) if that flag is set.
11152
11153 2006-01-30 Carlos O'Donell <carlos@codesourcery.com>
11154
11155 * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
11156 the comparison routine return.
11157
11158 2006-01-30 Michael Matz <matz@suse.de>
11159
11160 * global.c (find_reg): Only evict for global regs.
11161 Take n_refs into account and dump more info.
11162
11163 2006-01-30 J"orn Rennecke <joern.rennecke@st.com>
11164
11165 PR target/14798:
11166 * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
11167 (pragma_trap, pragma_nosave_low_regs): Likewise.
11168 (current_function_anonymous_args): Likewise.
11169 (sh_deferred_function_attributes): New variable.
11170 (sh_deferred_function_attributes_tail): Likewise.
11171 (print_operand): For '@', look up trap_exit attribute.
11172 (calc_live_regs): Look up trapa_handler attribute. For trapa
11173 handlers, save/restore fpscr, but don't do any other
11174 interrupt-specific saves.
11175 Don't save r0..r7 if the nosave_low_regs attribute is in effect.
11176 Fix check for partially saved registers to check for SHmedia.
11177 (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
11178 (sh_output_function_epilogue): Don't clear any of the removed
11179 variables.
11180 (sh_insert_attributes): Don't check pragma_interrupt.
11181 Insert deferred attributes. Check that interrupt attribute is
11182 present for other attributes that require its presence.
11183 (sh_attribute_table): Add new attributes trapa_handler and
11184 nosave_low_regs.
11185 (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
11186 Don't check for pragma_interrupt. Don't store argument.
11187 * sh.h (pragma_interrupt, sp_switch): Don't declare.
11188 (sh_deferred_function_attributes): Declare.
11189 (sh_deferred_function_attributes_tail): Likewise.
11190 * sh.md (sp_switch_1): Add operand. Change generator caller.
11191 (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
11192 (*return_i): Don't use when trap_exit attribute is in effect.
11193 (*return_trapa): New insn pattern.
11194 * sh-c.c: New file.
11195 * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
11196 setting c_target_objs and cxx_target_objs.
11197 * t-sh: Add rule for sh-c.o.
11198
11199 2006-01-30 Richard Guenther <rguenther@suse.de>
11200
11201 PR c++/23372
11202 * gimplify.c (gimplify_target_expr): Handle easy cases
11203 without creating a temporary.
11204
11205 2006-01-30 Nathan Sidwell <nathan@codesourcery.com>
11206
11207 * vec.h (safe_grow): Remove duplicated line.
11208
11209 2006-01-29 Diego Novillo <dnovillo@redhat.com>
11210
11211 PR 25874
11212 * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
11213 (expand_omp): ... here.
11214 (expand_omp_parallel): Only remove barriers for combined
11215 parallel+workshare constructs.
11216
11217 2006-01-29 Eric Botcazou <ebotcazou@adacore.com>
11218
11219 Revert
11220
11221 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
11222 * tree.c (build_qualified_type): Chain the new type to the original
11223 type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
11224 a POINTER_TYPE or a REFERENCE_TYPE respectively.
11225 (build_pointer_type_for_mode): Only return unqualified types.
11226 (build_reference_type_for_mode): Likewise.
11227
11228 2006-01-29 Gabriel Dos Reis <gdr@integgrable-solutions.net>
11229
11230 * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
11231 * Makefile.in (CXX_COMPAT_WARN): Define.
11232 * configure: Regenerate.
11233
11234 2006-01-29 Dorit Nuzman <dorit@il.ibm.com>
11235
11236 PR tree-opt/25911
11237 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
11238 to an if check.
11239
11240 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
11241
11242 * toplev.c: Fix thinko.
11243
11244 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
11245 Marcin Dalecki <martin@dalecki.de>
11246
11247 * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
11248 (push_srcloc): Use XNEW.
11249 (init_asm_output, default_get_pch_validity): Use XNEWVEC.
11250
11251 2006-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
11252
11253 * df-core.c (df_set_blocks): Deleted all variable.
11254
11255 2006-01-28 Ian Lance Taylor <ian@airs.com>
11256
11257 * cgraphunit.c (cgraph_assemble_pending_functions): Call
11258 cgraph_output_pending_asms.
11259
11260 2006-01-28 Zack Weinberg <zackw@panix.com>
11261
11262 * c.opt: Add -W(no-)overlength-strings.
11263 * doc/invoke.texi: Document it.
11264 * c-opts.c (c_common_handle_option): -pedantic implies
11265 -Woverlength-strings, if not explicitly disabled already.
11266 (c_common_post_options): -Woverlength-strings defaults to off, and
11267 is always off for C++.
11268 * c-common.c (fix_string_type): Issue warning about strings longer
11269 than is portable only if warn_overlength_strings. Rearrange code
11270 a little for clarity.
11271 * configure.in: Check for -Wno-overlength-strings as well before
11272 enabling -pedantic in stage 1.
11273 * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
11274 (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
11275
11276 * genconditions.c (write_header, write_one_condition)
11277 (write_conditions, write_writer): Consolidate very long strings
11278 that were broken up to fit in C89 portable limit. Don't use
11279 printf when fputs will do.
11280
11281 2006-01-28 Adam Nemet <anemet@caviumnetworks.com>
11282
11283 * combine.c (simplify_comparison <AND>): Check
11284 TRULY_NOOP_TRUNCATION before start using a subreg.
11285
11286 * config/mips/mips.md (*branch_zero<mode>,
11287 *branch_zero<mode>_inverted, *branch_equality<mode>,
11288 *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
11289 Remove mode check from comparisons.
11290
11291 2006-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
11292
11293 * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
11294
11295 2006-01-28 Kazu Hirata <kazu@codesourcery.com>
11296
11297 * expmed.c (const_mult_add_overflow_p): Remove.
11298 * expr.h: Remove the prototype for const_mult_add_overflow_p.
11299
11300 * recog.c (validate_replace_rtx_subexp): Remove.
11301 * recog.h: Remove the prototype for
11302 validate_replace_rtx_subexp.
11303
11304 * integrate.h: Remove the prototype for
11305 copy_decl_for_inlining.
11306 * rtl.h: Remove the prototype for mark_constant_function.
11307 * tree-vectorizer.h: Remove the prototype for
11308 vect_strip_conversion.
11309
11310 * modulo-sched.c (create_partial_schedule,
11311 free_partial_schedule, reset_partial_schedule): Make them
11312 static.
11313
11314 * hooks.c (hook_bool_rtx_int_false): Remove.
11315 * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
11316
11317 2006-01-28 David Edelsohn <edelsohn@gnu.org>
11318
11319 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11320 and -mlong-double-128 are incompatible.
11321 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
11322 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
11323 (TARGET_LIBGCC2_CFLAGS): Define.
11324 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
11325 (TARGET_LIBGCC2_CFLAGS): Same.
11326 * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
11327
11328 2006-01-28 Kazu Hirata <kazu@codesourcery.com>
11329
11330 PR c/19606.
11331 * c-typeck.c (build_binary_op): Perform implicit casts of
11332 operands before shortening them.
11333
11334 * cfgloopmanip.c (split_loop_bb): Remove.
11335 * cfgloop.h: Remove the prototype for split_loop_bb.
11336
11337 * cfgloop.c (flow_loop_outside_edge_p): Remove.
11338 * cfgloop.h: Remove the prototype for
11339 flow_loop_outside_edge_p.
11340
11341 * emit-rtl.c (init_virtual_regs): Make it static.
11342 * function.h: Remove the prototype for init_virtual_regs.
11343
11344 * recog.c (peephole2_optimize): Make it static.
11345 * recog.h: Remove the prototype for peephole2_optimize.
11346
11347 2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
11348
11349 * df-scan.c (df_record_entry_block_defs): Check if
11350 INCOMING_RETURN_ADDR_RTX is defined.
11351
11352 2006-01-27 Daniel Berlin <dberlin@dberlin.org>
11353 Kenneth Zadeck <zadeck@naturalbridge.com>
11354
11355 PR rtl-optimization/24762
11356 * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
11357 * targhooks.c (hook_void_bitmap): New hook prototype.
11358 * targhoohs.h (hook_void_bitmap): Ditto.
11359 * bitmap.h (bitmap_head_def): Moved to coretypes.h.
11360 * coretypes.h (bitmap_head_def): Moved from bitmap.h.
11361 * target.h (live_on_entry): New function pointer.
11362 * df-scan.c (df_all_hard_regs): Removed.
11363 (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
11364 (df_scan_free_internal): Added df->entry_block_defs.
11365 (df_scan_alloc): Ditto.
11366 (df_scan_dump): Ditto.
11367 (df_uses_record): Plumbed flag field properly thru calls.
11368 Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
11369 This part fixes PR24762.
11370 (df_bb_refs_record): Added code to make the frame and arg
11371 pointers live in EH blocks.
11372 (df_refs_record): Added call to df_record_entry_block_defs.
11373 (df_record_entry_block_defs): New function.
11374 * df-core.c: Added comments to describe new artifical defs.
11375 * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
11376 (entry_block_defs): New field in struct df.
11377 (df_all_hard_regs): Deleted.
11378 * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
11379 * df-problems.c (df_ru_bb_local_compute_process_def):
11380 Added code to handle artifical defs in the entry to a function.
11381 (df_ru_bb_local_compute): Ditto.
11382 (df_rd_bb_local_compute_process_def): Ditto.
11383 (df_rd_bb_local_compute): Ditto.
11384 (df_lr_bb_local_compute): Ditto.
11385 (df_ur_bb_local_compute): Ditto.
11386 (df_urec_bb_local_compute): Ditto.
11387 (df_chain_create_bb): Ditto.
11388 (df_ur_local_finalize): Removed entry.
11389 (df_urec_init): Ditto.
11390 (df_urec_local_finalize): Ditto.
11391 (df_ri_bb_compute): Added detection of last use of pseudos.
11392 * Makefile.in (df-scan.o): Updated dependencies.
11393 * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
11394 * config/mips/mips.c (mips_set_live_on_entry): Added.
11395 * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
11396 for target hook.
11397 * dce.c (marked_insn_p): Added code to handle artifical defs.
11398
11399 2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
11400
11401 * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
11402 intrinsic.
11403 (_mm_cvtsi128_si64): Likewise.
11404 (_mm_cvtsd_si64): Likewise.
11405 (_mm_cvttsd_si64): Likewise.
11406 (_mm_cvtsi64_sd): Likewise.
11407 (_mm_cvtsi64_si128): Likewise.
11408 * config/i386/mmintrin.h (_m_from_int64): Likewise.
11409 (_mm_cvtsi64_m64): Likewise.
11410 (_m_to_int64): Likewise.
11411 (_mm_cvtm64_si64): Likewise.
11412 * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
11413 (_mm_cvttss_si64): Likewise.
11414 (_mm_cvtsi64_ss): Likewise.
11415 (_mm_cvtss_f32): Likewise.
11416
11417 2006-01-27 Carlos O'Donell <carlos@codesourcery.com>
11418
11419 * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
11420 for pragma redefine_extname.
11421
11422 2006-01-27 Jakub Jelinek <jakub@redhat.com>
11423
11424 PR target/25864
11425 * libgcc-std.ver: Add GCC_4.1.0 symbol version.
11426 * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
11427 -mno-minimal-toc to previous content.
11428 (bispecs): Remove goal.
11429 * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
11430 * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
11431 compatibility aliases on powerpc-*-*gnu*.
11432 * config/rs6000/libgcc-ppc-glibc.ver: New file.
11433 * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
11434 libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
11435 (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
11436 (ldblspecs): New goal.
11437 * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
11438 * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
11439 _df_to_tf.
11440 * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
11441 L_sf_to_tf or L_df_to_tf is defined.
11442
11443 2006-01-27 David Edelsohn <edelsohn@gnu.org>
11444 Alan Modra <amodra@bigpond.net.au>
11445
11446 PR target/25864
11447 * config/rs6000/linux.h (POWERPC_LINUX): Define.
11448 * config/rs6000/linux64.h (POWERPC_LINUX): Define.
11449 * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
11450 * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
11451 * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
11452 * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
11453 (rs6000_override_options): Initialize rs6000_ieeequad.
11454 Initialize TFmode format to ibm_extended_format if not
11455 TARGET_IEEEQUAD.
11456 (rs6000_handle_option): Accept -mabi= ibmlongdouble and
11457 ieeelongdouble.
11458 (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
11459 (rs6000_return_in_memory): Only return IEEEQUAD in memory.
11460 (function_arg_advance): IBM long double passed in two FPRs, not
11461 split.
11462 (function_arg): IBM long double passed in FPRs.
11463 (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
11464 (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
11465 Only multireg GPR aligned.
11466 (rs6000_init_libfuncs): Enable IBM long double functions if not
11467 IEEEQUAD.
11468 (rs6000_generate_compare): Use IBM long double compare if not
11469 TARGET_IEEEQUAD.
11470 * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
11471 (TARGET_IEEEQUAD): Define.
11472 (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
11473 not TARGET_IEEEQUAD.
11474 * config/rs6000/rs6000.md: Enable TFmode patterns if
11475 !TARGET_IEEEQUAD.
11476 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11477 * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11478 and -mlong-double-128 are incompatible.
11479 * doc/invoke.texi (-mabi): Collect options together. Add
11480 ibmlongdouble and ieeelongdouble.
11481
11482 2006-01-27 Richard Sandiford <richard@codesourcery.com>
11483
11484 * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
11485 opaque type.
11486 * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
11487 * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
11488 (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
11489 * rtl.h (rtunion_def): Remove rt_ptr.
11490 (X0PTR): Delete.
11491 (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
11492 (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
11493 * config/i386/winnt.c (i386_pe_mark_dllexport)
11494 (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
11495
11496 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
11497
11498 * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
11499
11500 2006-01-26 Alexandre Oliva <aoliva@redhat.com>
11501
11502 PR other/24829
11503 PR target/24831
11504 * gthr-dce.h: Do not gthrw-ify pthread_once_init,
11505 pthread_key_delete. From John David Anglin. gthrw-ify
11506 pthread_getunique_np only if it it's not a macro. Delete
11507 UNUSED macro.
11508 (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
11509 __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
11510 __gthread_objc_condition_signal, __gthread_key_delete): Add
11511 "__attribute__ ((__unused__))" to unused arguments.
11512 (__gthread_recursive_mutex_init_function): Add missing return.
11513 * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
11514 gthr-posix95.h: Use macro-based approach for name redirection
11515 on targets missing weakref.
11516
11517 2006-01-26 Zack Weinberg <zackw@panix.com>
11518
11519 * genconditions.c (write_header): In generated code, #ifdef out
11520 all includes and fake declarations, except includes of bconfig.h
11521 and system.h, unless GCC_VERSION >= 3001. Do not include
11522 gensupport.h in any case.
11523 (write_conditions): Generate a definition of struct c_test. Add
11524 a comment to the generated #endif.
11525 (write_one_condition): Escape backslashes in string too.
11526 (write_writer): Generated code must escape backslashes and quote
11527 marks (but not newlines) in the strings it writes.
11528 * Makefile.in (build/gencondmd.o): Update dependencies.
11529
11530 2006-01-26 Steve Ellcey <sje@cup.hp.com>
11531
11532 PR target/25961
11533 * Makefile.in (insn-automata.o): Add header file dependencies.
11534 * genautomata.c: Add includes.
11535
11536 2006-01-26 Steve Ellcey <sje@cup.hp.com>
11537
11538 PR target/25961
11539 * Makefile.in (insn-automata.o): Add -Wno-error flag.
11540
11541 2006-01-26 Paolo Bonzini <bonzini@gnu.org>
11542
11543 * configure.ac: Expect target tools paths to be passed from the toplevel
11544 and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of
11545 AS_SET_VAR_IF.
11546 * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
11547
11548 2006-01-26 Alexandre Oliva <aoliva@redhat.com>
11549
11550 PR c/25892
11551 * c.opt (Wpointer-sign): Init to -1.
11552 * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
11553 OPT_pedantic, to 0 otherwise.
11554 * doc/invoke.texi: Update.
11555
11556 2006-01-26 Paolo Bonzini <bonzini@gnu.org>
11557
11558 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
11559 constants provided by 80387 instructions in the destination mode.
11560
11561 2006-01-26 Richard Guenther <rguenther@suse.de>
11562 Andrew Pinski <pinskia@physics.uc.edu>
11563
11564 PR tree-opt/21470
11565 partial PR tree-opt/17064
11566 * tree-ssa-structalias.c (intra_create_variable_infos):
11567 Create heap variables for incoming parameters if
11568 flag_argument_noalias > 1.
11569 (find_what_p_points_to): Look through default defs of
11570 parameter decls.
11571
11572 2006-01-26 Jeff Law <law@redhat.com>
11573
11574 PR ada/25900
11575 * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
11576 with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
11577 within the VR_RANGE, use the VR_RANGE as the result, not the
11578 VR_ANTI_RANGE.
11579 (adjust_range_with_scev): Reject ranges from SCEV which are out of
11580 bounds for the type.
11581
11582 2006-01-26 Daniel Berlin <dberlin@dberlin.org>
11583
11584 * tree-ssa-alias.c (maybe_create_global_var): Change
11585 subvar walking to an assertion that we don't have subvar'd variables.
11586
11587 2006-01-26 Andrew Pinski <pinskia@physics.uc.edu>
11588
11589 PR C/25861
11590 * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
11591 Use a new variable, inner. PARM_DECLs are always non-weak.
11592
11593 2006-01-26 Shantonu Sen <ssen@opendarwin.org>
11594
11595 * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
11596 --disable-checking.
11597
11598 2006-01-26 Adam Nemet <anemet@caviumnetworks.com>
11599
11600 * config/mips/mips.md (*clear_upper32): New combiner pattern.
11601
11602 2006-01-26 Richard Earnshaw <richard.earnshaw@arm.com>
11603
11604 * arm.md (smaxsi3, sminsi3): Convert to define_expand.
11605 (smax_insn, smin_insn, smax_0, smin_0): New.
11606
11607 2006-01-26 Hans-Peter Nilsson <hp@axis.com>
11608
11609 PR target/25947
11610 * config/cris/cris.c (cris_order_for_addsi3): New function.
11611 * config/cris/cris-protos.h: Prototype it.
11612 * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
11613 (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
11614 (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
11615 (split for "op.S1 [rx=rx+i],ry (swapped)")
11616 (split for "op(s|u).S1 [rx=rx+i],ry")
11617 (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
11618 Apply cris_order_for_addsi3 when generating addsi3 insns.
11619
11620 2006-01-25 Diego Novillo <dnovillo@redhat.com>
11621
11622 * tree.h (TREE_RANGE_CHECK): Fix range predicate.
11623 (TREE_BLOCK): Add call to EXPR_CHECK.
11624
11625 2006-01-25 Diego Novillo <dnovillo@redhat.com>
11626
11627 PR 25886
11628 * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
11629 * tree-pretty-print.c (dump_omp_clause): Extract from ...
11630 (dump_omp_clauses): ... here.
11631 (dump_generic_node): Handle OMP_CLAUSE.
11632 * tree.c (omp_clause_num_ops): New.
11633 (omp_clause_code_name): New.
11634 (tree_code_size): Handle OMP_CLAUSE.
11635 (tree_size): Likewise.
11636 (make_node): Document handling of OMP_CLAUSE.
11637 (tree_node_structure): Handle OMP_CLAUSE.
11638 (omp_clause_check_failed): New.
11639 (omp_clause_range_check_failed): New.
11640 (omp_clause_operand_check_failed): New.
11641 (build_omp_clause): New.
11642 (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
11643 * tree.h (enum omp_clause_code): Declare.
11644 (OMP_CLAUSE_SUBCODE_CHECK): Define.
11645 (OMP_CLAUSE_RANGE_CHECK): Define.
11646 (OMP_CLAUSE_ELT_CHECK): Define.
11647 (omp_clause_check_failed): Declare.
11648 (omp_clause_operand_check_failed): Declare.
11649 (omp_clause_range_check_failed): Declare.
11650 (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
11651 (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
11652 (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
11653 (OMP_CLAUSE_LASTPRIVATE): Likewise.
11654 (OMP_CLAUSE_IF_EXPR): Likewise.
11655 (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
11656 (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
11657 (OMP_CLAUSE_REDUCTION_CODE): Likewise.
11658 (OMP_CLAUSE_REDUCTION_INIT): Likewise.
11659 (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
11660 (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
11661 Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
11662 (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
11663 (OMP_CLAUSE_DEFAULT_KIND): Likewise.
11664 (OMP_CLAUSE_CODE): Define.
11665 (OMP_CLAUSE_SET_CODE): Define.
11666 (OMP_CLAUSE_CODE): Define.
11667 (OMP_CLAUSE_OPERAND): Define.
11668 (struct tree_omp_clause): Declare.
11669 (union tree_node): Add field 'omp_clause'.
11670 * treestruct.def (TS_OMP_CLAUSE): Define.
11671 * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
11672 OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
11673 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
11674 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
11675 OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
11676 OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
11677 (OMP_CLAUSE): Define.
11678 * print-tree.c (print_node): Handle OMP_CLAUSE.
11679 * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
11680 * c-typeck.c: Likewise.
11681 * gimplify.c: Likewise.
11682 * c-omp.c: Likewise.
11683 * tree-nested.c: Likewise.
11684 * tree-inline.c: Likewise.
11685 * c-parser.c: Likewise.
11686 * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
11687 clauses.
11688
11689 2006-01-25 Roger Sayle <roger@eyesopen.com>
11690
11691 PR rtl-optimization/25703
11692 * combine.c (try_combine): Handle zero_extract and strict_low_part
11693 of non-lowpart SUBREGs for constant reg_subword_p set optimization.
11694
11695 2006-01-25 Peter Bergner <bergner@vnet.ibm.com>
11696
11697 * global.c: Fix comment typos.
11698
11699 2006-01-25 Andrew Pinski <pinskia@physics.uc.edu>
11700
11701 PR target/25758
11702 * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
11703 Use output_addr_const instead of assemble_name.
11704
11705 2006-01-25 Paolo Bonzini <bonzini@gnu.org>
11706
11707 * Makefile.in (sched-vis.o): Update dependencies.
11708 * haifa-sched.c (sched_finish): Clear current_sched_info.
11709 * cfg.c (dump_bb_info): New, split from dump_flow_info.
11710 (dump_flow_info): Call it.
11711 * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
11712 a slim RTL dump.
11713 * basic-block.h (dump_bb_info): Declare.
11714 * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
11715 option, and apply options only for dump files whose TDF_RTL,
11716 TDF_TREE, or TDF_IPA bits match.
11717 * rtl.h: Declare new functions exported from sched-vis.c.
11718 * sched-vis.c: Enable also if scheduling is not used.
11719 (print_value): Print the mode of registers if not inside scheduling.
11720 (print_insn): Make it work outside the scheduler. Beautify the output
11721 a bit.
11722 (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
11723
11724 2006-01-25 Richard Sandiford <richard@codesourcery.com>
11725
11726 * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
11727 * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
11728 a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
11729 depending on the value of CONSTANT_POOL_ADDRESS_P.
11730 * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
11731 SYMBOL_REF_DECL.
11732 * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
11733 rather than SYMBOL_REF_DECL.
11734 (rtx_constant_pool): Remove const_rtx_sym_htab.
11735 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
11736 (init_varasm_status): Don't initialize const_rtx_sym_htab.
11737 (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
11738 Remove handling of const_rtx_sym_htab.
11739 (find_pool_constant): Delete.
11740 (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
11741 rather than find_pool_constant.
11742 (get_pool_constant_for_function): Delete.
11743 (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
11744 find_pool_constant.
11745 * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
11746 (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
11747 (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
11748 (SYMBOL_REF_CONSTANT): New macro.
11749 (get_pool_constant_for_function): Delete.
11750 * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
11751 rather than SYMBOL_REF_DECL.
11752 (i386_pe_mark_dllimport): Likewise.
11753 * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
11754 rather than SYMBOL_REF_DECL.
11755 * config/darwin.c (machopic_indirect_data_reference): Likewise.
11756 (machopic_indirect_call_target): Likewise.
11757
11758 2006-01-25 Eric Botcazou <ebotcazou@adacore.com>
11759
11760 * flow.c (delete_noop_moves): Add missing EOL to dump message.
11761
11762 2006-01-25 Richard Sandiford <richard@codesourcery.com>
11763
11764 * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
11765
11766 2006-01-25 Kaz Kojima <kkojima@gcc.gnu.org>
11767
11768 * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
11769
11770 2006-01-24 David Daney <ddaney@avtrex.com>
11771
11772 PR java/25816
11773 * configure.ac (enable_tls): New enable option.
11774 (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
11775 * configure: Regenerate.
11776 * doc/install.texi (--enable-tls): Document new option.
11777 (--disable-tls): Ditto.
11778
11779 2006-01-24 Richard Henderson <rth@redehat.com>
11780
11781 * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
11782 * alias.c (true_dependence): Respect it.
11783 (canon_true_dependence, write_dependence_p): Likewise.
11784 * builtins.c (get_builtin_sync_mem): Set it.
11785
11786 2006-01-25 Zdenek Dvorak <dvorakz@suse.cz>
11787
11788 * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
11789 efficient way.
11790
11791 2006-01-24 DJ Delorie <dj@redhat.com>
11792
11793 * expmed.c (store_bit_field): Don't arbitrarily deny using insv
11794 for storing constants in single-bit bitfields.
11795
11796 2006-01-25 Ben Elliston <bje@au.ibm.com>
11797
11798 * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
11799
11800 2006-01-24 Andrew Pinski <pinskia@physics.uc.edu>
11801
11802 PR tree-opt/25860
11803 * tree-ssa-pre.c (phi_translate): Return NULL
11804 for AGGREGATE_TYPE's.
11805
11806 2006-01-24 Zack Weinberg <zackw@panix.com>
11807
11808 * genautomata.c (process_state_for_insn_equiv_partition):
11809 Use xcalloc for insn_arcs_array.
11810 * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
11811 (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
11812
11813 2006-01-24 Richard Henderson <rth@redhat.com>
11814
11815 * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
11816 update all callers.
11817
11818 2006-01-23 Paolo Bonzini <bonzini@gnu.org>
11819
11820 PR rtl-optimization/25890
11821 PR rtl-optimization/25905
11822 * combine.c (expand_compound_operation, expand_field_assignment):
11823 Fail if the bitfield's final position is out of bounds.
11824
11825 2006-01-24 Ian Lance Taylor <ian@airs.com>
11826
11827 PR middle-end/25930
11828 * cgraphunit.c (cgraph_output_in_order): Don't clear
11829 cgraph_asm_nodes until after asm strings have been output.
11830
11831 2006-01-23 Adam Nemet <anemet@caviumnetworks.com>
11832
11833 * fix-header.c (read_scan_file): Add new parameter imultilib when
11834 calling register_include_chains.
11835
11836 2006-01-23 Diego Novillo <dnovillo@redhat.com>
11837
11838 * omp-low.c: Update documentation.
11839
11840 2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
11841 Daniel Berlin <dberlin@dberlin.org>
11842
11843 PR tree-opt/25315
11844 PR tree-opt/25857
11845 * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
11846 return from the function.
11847
11848 2006-01-22 Zack Weinberg <zackw@panix.com>
11849
11850 * rtl.def (match_code): Add second argument.
11851 * genpreds.c (write_extract_subexp): New function.
11852 (write_match_code): Add path argument. Use write_extract_subexp.
11853 (write_predicate_expr): Pass path to write_match_code.
11854 (mark_mode_tests): MATCH_CODE applied to a subexpression does
11855 not perform a mode test.
11856 * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
11857 a subexpression does not constrain the top-level code set.
11858 * read-rtl.c (read_rtx_variadic): New function.
11859 (read_rtx_1): Use it; allow AND and IOR to be variadic.
11860 * doc/md.texi: Document new notation.
11861 * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
11862 (cmpsi_operand): ... here, using new notation.
11863
11864 2006-01-22 Zack Weinberg <zackw@panix.com>
11865
11866 * varray.c: Remove GENERATOR_FILE #ifdefs.
11867
11868 2006-01-22 Zack Weinberg <zackw@panix.com>
11869
11870 * genautomata.c (output_reserved_units_table): Emit nothing if
11871 description->query_units_num is zero. Remove extra blank line.
11872 (output_cpu_unit_reservation_p): Short circuit
11873 if description->query_units_num is zero.
11874
11875 2006-01-22 Zack Weinberg <zackw@panix.com>
11876
11877 * genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE
11878 and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls
11879 nor any of the random handful of variables that used to be necessary
11880 when this program was linked with rtlanal.o. Prune set of forward
11881 function declarations.
11882 (struct attr_desc): Remove static_p field.
11883 (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
11884 (check_attr_test, make_internal_attr, make_numeric_value): Make static.
11885 (attr_string): Do not read the character one past the length of
11886 the string.
11887 (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
11888 (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
11889 (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
11890 (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
11891 (make_automaton_attrs): New.
11892 (main): Do not call into genautomata. Call local gen_bypass
11893 and gen_insn_reserv as appropriate. Call make_automaton_attrs.
11894 Remove special case for insn_alts.
11895 * genautomata.c: Include gensupport.h; not genattrtab.h nor
11896 varray.h (leftover from previous change). Prune set of forward
11897 function declarations. Remove state_alts fields from all
11898 structures. Remove state_alts_table from struct automaton.
11899 Make everything except main static. Do not maintain num_dfa_decls.
11900 Do not maintain state_alts fields of various structures.
11901 (process_decls): Don't validate condexp for dm_insn_reserv decls.
11902 (add_arc): Remove state_alts argument. All callers updated.
11903 (output_reserved_units_table): Emit #ifdef here...
11904 (output_tables): ...not here. Don't generate state_alts tables.
11905 (expand_automata): Don't generate attributes.
11906 (write_automata): Don't generate state_alts functions.
11907 (main): New function.
11908 (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
11909 (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
11910 (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
11911 (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
11912 (BYPASS_P_FUNC_NAME, output_state_alts_table)
11913 (output_automata_list_state_alts_code, output_internal_state_alts_func)
11914 (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
11915 (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
11916 Delete.
11917 * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
11918 * genattrtab.h: Delete file.
11919 * Makefile.in (OBJS-common): Add insn-automata.o.
11920 (insn-automata.o): New rule.
11921 (simple_generated_c): Add insn-automata.c.
11922 (build/genattrtab.o, build/genautomata.o): Update dependencies.
11923 (genprogmd): Add automata.
11924 (build/genattrtab): Needs no extra objects nor libraries.
11925 (build/genautomata): Needs build/vec.o and -lm.
11926
11927 2006-01-22 Zack Weinberg <zackw@panix.com>
11928
11929 * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
11930 (output_dfa_max_issue_rate, locked_states_num): Delete.
11931 (struct automaton): Add locked_states field.
11932 (output_dead_lock_vect): Save number of locked states in
11933 automaton->locked_states. If it is zero, don't print anything.
11934 (output_max_insn_queue_index_def): Define max_insn_queue_index const.
11935 (output_internal_dead_lock_func): Only test the dead_lock_vect
11936 for automata that have locked states.
11937 (output_statistics): Always print the number of locked states for
11938 each automaton. Calculate total number of locked states here.
11939 (write_automata): Don't call output_dfa_max_issue_rate.
11940 * genattrtab.c: Define length_unit_log as a const variable.
11941 * genattr.c: Don't emit MAX_DFA_ISSUE_RATE. Declare
11942 max_insn_queue_index const.
11943 * final.c (length_unit_log): Declare const.
11944 * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
11945
11946 2006-01-22 Zack Weinberg <zackw@panix.com>
11947
11948 * genautomata.c: Include vec.h, not varray.h.
11949 Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
11950 VLA_HWINT_ macros. Change vla_hwint_t to a typedef for
11951 VEC(vect_el_t,heap) *. Convert all uses of VLA_* macros to
11952 VEC_* macros operating on appropriately typed vectors, or to
11953 malloced arrays when the size is known in advance. Const-ify
11954 many char* variables and function arguments. No functional changes.
11955 * Makefile.in (build/varray.o): Delete rule.
11956 (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
11957 (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
11958
11959 2006-01-22 Zack Weinberg <zackw@panix.com>
11960
11961 * gensupport.c: Define get_insn_name and record_insn_name here.
11962 (read_md_rtx): Call record_insn_name as appropriate.
11963 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
11964 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
11965 * genpreds.c, genrecog.c: Don't define get_insn_name nor
11966 record_insn_name.
11967 * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
11968 (BUILD_VARRAY): Delete.
11969 (genprognormal): Rename genprogmd. Fold in all programs from
11970 genprognoprint; also attrtab.
11971 (build/genattrtab): Just mention genautomata.o and varray.o.
11972 Reorganize a bit, add comments to make the categories clearer.
11973
11974 2006-01-22 Zack Weinberg <zackw@panix.com>
11975
11976 * genconditions.c (condition_table, add_condition): Delete.
11977 (write_conditions): Don't emit n_insn_conditions nor
11978 insn_elision_unavailable. Issue the gcc version #ifdef here,
11979 inside the table, with no #else clause ...
11980 (write_header): ...not here.
11981 (write_writer): New function.
11982 (main): Don't initialize condition_table. Use add_c_test.
11983 Call write_writer.
11984 * gensupport.c (init_md_reader_args_cb): Handle multiple input
11985 files on the command line.
11986 (maybe_eval_c_test): Don't check insn_elision_unavailable.
11987 Return -1 if there is no entry in the table, don't abort.
11988 (add_c_test, traverse_c_tests): New functions.
11989 * gensupport.h (insn_elision_unavailable, insn_conditions)
11990 (n_insn_conditions): Delete declarations.
11991 (add_c_test, traverse_c_tests): Declare.
11992 * read-rtl.c: Include gensupport.h.
11993 (read_conditions): New function.
11994 (read_rtx): If read_rtx_1 returns 0, treat as EOF.
11995 (read_rtx_1): If we get EOF when we were looking for an initial
11996 open paren, return 0. Call read_conditions when appropriate.
11997 * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
11998 dummy-conditions.o. Eliminate references to insn-conditions.o,
11999 or change them to build/gencondmd.o, as appropriate. Remove
12000 insn-constants.h from $(simple_generated_h) and insn-conditions.c
12001 from $(simple_generated_c). For all files remaining in those
12002 two lists, add insn-conditions.md to the generator command line.
12003 Give insn-constants.h/s-constants their own rules. Add rules
12004 for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
12005 (build/read-rtl.o): Depend on gensupport.h.
12006 (genprognormal): Include preds.
12007 (genprogearly): Rename genprognoprint; only difference is now that
12008 they don't link with $(BUILD_PRINT).
12009 * dummy-conditions.c: Delete.
12010
12011 2006-01-22 Zack Weinberg <zackw@panix.com>
12012
12013 * genextract.c: Don't include insn-config.h. Do include vec.h.
12014 Declare vectors of int, char, and locstr.
12015 (locstr): New typedef.
12016 (struct extraction): Make all array fields into bare pointers.
12017 (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
12018 (insn_code_number): Delete.
12019 (accum_extract): New struct.
12020 (VEC_safe_set_locstr, VEC_char_to_string): New functions.
12021 (gen_insn): Take insn_code_number as an argument. Use an
12022 accum_extract structure instead of loading data directly into
12023 a struct extraction, and having to know how big it might get.
12024 (walk_rtx): Operate entirely on an accum_extract structure.
12025 (print_path): Avoid unnecessary use of printf.
12026 (print_header): New function, split out of main. Distinguish
12027 more carefully between an unrecognizable insn and an insn that
12028 has the code number of a define_expand.
12029 (main): Pass insn_code_number to gen_insn. Call print_header
12030 only after parsing. Avoid unnecessary use of printf.
12031 * Makefile.in (build/vec.o): New rule.
12032 (build/genextract): Depend on build/vec.o.
12033 (build/genextract.o): Don't depend on insn-config.h.
12034
12035 2006-01-22 Zack Weinberg <zackw@panix.com>
12036
12037 * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
12038 $(RUN_GEN). Use pattern rules to factor out as much boilerplate as
12039 practical. Eliminate per-generator-program link rules.
12040
12041 2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
12042
12043 PR middle-end/24437
12044 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
12045 with a call expr to ...
12046 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
12047
12048 2006-01-23 Richard Guenther <rguenther@suse.de>
12049
12050 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
12051 before make_edge with conditional EDGE_TRUE_VALUE.
12052
12053 2006-01-23 Steven Bosscher <stevenb.gcc@gmail.com>
12054 Jan Hubicka <jh@suse.cz>
12055 Richard Guenther <rguenther@suse.de>
12056
12057 PR rtl-optimization/25654
12058 * cfgexpand.c (aggregate_contains_union_type): New function.
12059 (add_alias_set_conflicts): Call it. Make sure to add conflicts
12060 for structure variables that contain a union type.
12061
12062 2006-01-23 Richard Sandiford <richard@codesourcery.com>
12063
12064 * gengtype.c (new_structure): Return the structure.
12065 (create_option): Add an extra "next" argument.
12066 (create_field): New function.
12067 (adjust_field_rtx_def): Use create_option and create_field.
12068 Remove a now-unnecessary call to find_structure.
12069 (adjust_field_tree_def): Likewise.
12070 (note_yacc_type): Remove an unnecessary call to find_structure.
12071 * gengtype.h (new_structure): Return the structure.
12072 (create_option): Add an extra argument.
12073 * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
12074 (option): Adjust calls to create_option.
12075
12076 2006-01-22 David Edelsohn <edelsohn@gnu.org>
12077
12078 * config/rs6000/aix.h (STACK_BOUNDARY): Define.
12079
12080 2006-01-22 Paul Brook <paul@codesourcery.com>
12081 Peter Barada <peter@the-baradas.com>
12082
12083 * config/m68k/m68k.md: Add Coldfire FPU support.
12084 Define FP mode macro and associated attributes.
12085 Use it for float mode patterns.
12086 * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
12087 (LIBCALL_VALUE): Use m68k_libcall_value.
12088 * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
12089 (m68k_function_value): Ditto.
12090 (emit_move_sequence): Ditto.
12091 * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
12092 * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
12093 * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
12094 (MULTILIB_EXCEPTIONS): Ditto.
12095 * config/m68k/m68k.opt: Add mcfv4e.
12096 * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
12097 (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
12098 (m68k_output_function_prologue): Save ColdFire FPU registers.
12099 (m68k_output_function_epilogue): Restore ColdFire FPU registers.
12100 (force_mode, fp_reg_operand, emit_move_sequence): New functions.
12101 (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
12102 ColdFire FPU registers.
12103 (m68k_libcall_value, m68k_function_value): New functions.
12104 * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
12105 (LIBCALL_VALUE): Use m68k_libcall_value.
12106 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
12107 (MASK_COLDFIRE): Add MASK_CFV4E.
12108 (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
12109 (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
12110 (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
12111 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
12112 (GO_IF_LEGITIMATE_ADDRESS): Use it.
12113 (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
12114 * doc/invoke.tex: Document -mcfv4e on m68k.
12115
12116 2006-01-22 Ranjit Mathew <rmathew@gcc.gnu.org>
12117
12118 * doc/contribute.texi: Change CVS to SVN and update the corresponding
12119 URL.
12120
12121 2006-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
12122
12123 PR c++/16190
12124 * c-opts.c (c_common_handle_option): Don't include
12125 -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
12126 * doc/invoke.texi (C++ Dialect Options): Document that
12127 -Wnon-virtual-dtor is no longer included in -Wall.
12128
12129 2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
12130
12131 * gcov.c (print_version), gcov-dump.c (print_version),
12132 mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
12133 dates.
12134
12135 2006-01-21 Kenneth Zadeck <zadeck@naturalbridge.com>
12136
12137 * df-scan.c (problem_SCAN): Added NULL reset function.
12138 (df_scan_reset_blocks): Added code to call reset block function
12139 (df_bb_refs_delete) Fixed comment.
12140 (df_insn_refs_delete): Made tolerant of deleting non existent info
12141 for dataflow problems that need to be reset.
12142 * df-core.c (df_set_blocks): Ditto.
12143 * df.h (struct df_problem): Added reset_fun.
12144 * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
12145 problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
12146 (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
12147 functions to clear out all references to def-use or use-def chains.
12148
12149 2006-01-21 Ben Elliston <bje@au.ibm.com>
12150
12151 * varasm.c (assemble_real): Initialise data array.
12152
12153 2006-01-20 Paul Brook <paul@codesourcery.com>
12154
12155 Merge from csl-arm-branch.
12156 2005-09-21 Kazu Hirata <kazu@codesourcery.com>
12157 * config/arm/arm.md (movdi): Force operands[1] to a register
12158 if we have a non-register source.
12159 (*arm_movdi, *movdf_soft_insn): Require that one of the
12160 operands be a register.
12161 * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
12162 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
12163
12164 2006-01-20 DJ Delorie <dj@redhat.com>
12165
12166 * varasm.c (initializer_constant_valid_p): Allow pointers
12167 initialized from integer constants of lesser precision.
12168 (output_constant): Allow non-int-sized pointer modes to be
12169 initialized from integer constants.
12170
12171 2006-01-20 Joseph S. Myers <joseph@codesourcery.com>
12172
12173 PR libstdc++/25524
12174 * cppdefault.h (struct default_include): Add multilib flag.
12175 * cppdefault.c (cpp_include_defaults): Set it.
12176 * c.opt (-imultilib): New option.
12177 * c-opts.c (imultilib): New.
12178 (c_common_handle_option): Handle -imultilib.
12179 (c_common_post_options): Likewise.
12180 * c-incpath.c (add_standard_paths, register_include_chains):
12181 Likewise.
12182 * c-incpath.h (register_include_chains): Add extra parameter.
12183 * gcc.c (do_spec_1): Generate -imultilib option.
12184 (The Specs Language): Update %I description.
12185 (process_command): Update copyright notice.
12186 * doc/cppopts.texi (-imultilib): Document.
12187 * doc/invoke.texi (-imultilib): Include in option summary.
12188 (%I): Update specs documentation.
12189
12190 2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
12191
12192 * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
12193
12194 2006-01-20 Richard Sandiford <richard@codesourcery.com>
12195
12196 * stmt.c (case_bit_test_cmp): Stabilize the sort using code
12197 label numbers.
12198
12199 2006-01-20 Richard Guenther <rguenther@suse.de>
12200 Steven Bosscher <stevenb.gcc@gmail.com>
12201
12202 PR rtl-optimization/24626
12203 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
12204 EDGE_TRUE_VALUE if in RTL mode.
12205
12206 Revert
12207 2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
12208 * cfgrtl.c (rtl_verify_flow_info_1): Fix.
12209
12210 2006-01-20 Dirk Mueller <dmueller@suse.com>
12211
12212 PR c++/5520
12213 * c-parser.c (c_parser_if_body): Use build_empty_stmt()
12214 instead of a special NOP marker.
12215 * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
12216 NOP marker handling.
12217 * c-common.h (empty_body_warning): Add forward declaration.
12218 * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
12219 Now uses IS_EMPTY_STMT() instead of special NOP markers.
12220
12221 2006-01-20 Paul Brook <paul@codesourcery.com>
12222
12223 * Makefile.in (lang_checks): Keep going if mkdir fails.
12224
12225 2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
12226
12227 * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
12228 be able to clean out basic block when not necessary.
12229 (df_scan_free): Fixed to properly delete information if df is
12230 unused before calling df_finish.
12231 (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
12232 df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
12233 or comment typos.
12234 (df_bb_refs_delete): New function.
12235 (df_refs_delete): Moved per block code to df_bb_refs_delete.
12236 * df-core.c (df_set_blocks): Added code to properly clean out
12237 unused blocks if they are not part of the blocks to consider.
12238 Added additional null check.
12239 (df_compact_blocks): Added basic block parameter to free_bb_fun to
12240 be able to clean out basic block when not necessary
12241 * df.h (df_free_bb_function): Ditto.
12242 (df_bb_refs_delete): New function.
12243 * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
12244 df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
12245 basic block parameter to be able to clean out basic block when not
12246 necessary.
12247 (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
12248 (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
12249 Fixed to properly delete information if df is unused before
12250 calling df_finish.
12251
12252 2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
12253
12254 PR rtl-optimization/25799
12255 * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
12256 Corrected confluence operator to remove bits from op2 before oring
12257 with op1 rather than removing bits from op1.
12258 (df_ru_transfer_function): Corrected test on wrong bitmap which
12259 caused infinite loop. Both of these problems were introduced in
12260 the dataflow rewrite.
12261
12262 2006-01-19 DJ Delorie <dj@redhat.com>
12263
12264 * reload1.c (find_reload_regs): Note the details of reload
12265 failures in the dump file.
12266 (spill_failure): Likewise.
12267
12268 2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
12269
12270 * loop-iv.c: Include df.h and hashtab.h.
12271 (enum iv_grd_result): New enum.
12272 (DF_REF_IV, DF_REF_IV_SET): New macros.
12273 (struct biv_entry): New.
12274 (df, bivs): New global variables.
12275 (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
12276 assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
12277 Removed.
12278 (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
12279 iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
12280 analyzed_for_bivness_p, record_biv): New functions.
12281 (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
12282 get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
12283 iv_analyze, biv_p, iv_analysis_done): Work with df representation of
12284 UD chains.
12285 (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
12286 analysed.
12287 (iv_number_of_iterations): Use new interface to iv analysis.
12288 * loop-unroll.c: Do not include varray.h.
12289 (analyze_iv_to_split_insn): Use new interface to iv
12290 analysis.
12291 * loop-unswitch.c (may_unswitch_on): Ditto.
12292 * df.c (df_bitmaps_free): Only work for bbs for that structures are
12293 allocated.
12294 (df_bb_modify): Realloc tables to the new index.
12295 (df_find_use): New function.
12296 * df.h (df_find_use): Declare.
12297 * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
12298 outmode.
12299 * cfgloop.h (struct rtx_iv): Remove analysed field.
12300 (iv_get_reaching_def): Removed.
12301 (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
12302 * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
12303 (loop-iv.o): Add df.h and hashtab.h dependency.
12304 * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
12305
12306 2006-01-20 Alan Modra <amodra@bigpond.net.au>
12307
12308 PR target/25668
12309 * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
12310 Double TFmode.
12311 (__floatundisf, __floatundidf): Likewise.
12312 * libgcc2.h (IS_IBM_EXTENDED): Define.
12313
12314 2006-01-19 DJ Delorie <dj@redhat.com>
12315
12316 * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
12317
12318 2006-01-19 Paul Brook <paul@codesourcery.com>
12319
12320 * config/arm/arm.c (arm_compute_func_type): Treat all functions
12321 as nothrow when unwinding tables are disabled.
12322
12323 2006-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12324
12325 PR testsuite/25171
12326 * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
12327 of bit-field" when in system header.
12328
12329 2006-01-19 DJ Delorie <dj@redhat.com>
12330
12331 * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
12332 the 16 bit shift limit of the m16c.
12333
12334 2006-01-19 Andrew Pinski <pinskia@physics.uc.edu>
12335
12336 PR target/22099
12337 * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
12338 * config/i386/i386.c (output_set_got): Output the label if we have one
12339 for the TARGET_DEEP_BRANCH_PREDICTION case.
12340
12341 2006-01-19 Jan Hubicka <jh@suse.cz>
12342 H.J. Lu <hongjiu.lu@intel.com>
12343 Evandro Menezes <evandro.menezes@amd.com>
12344
12345 * invoke.texi (generic): Document
12346 (i686) Update.
12347 * config.gcc: Make x86_64-* and i686-* default to generic tunning.
12348 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
12349 TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
12350 (x86_use_incdec, x86_pad_returns): New variables
12351 (TARGET_CPU_DEFAULT_generic): New constant
12352 (TARGET_CPU_DEFAULT_NAMES): Add generic.
12353 (enum processor_type): Add generic32 and generic64.
12354 * i386.md (cpu attribute): Add generic32/generic64
12355 (movhi splitter): Behave sanely when both partial_reg_dependency and
12356 partial_reg_stall are set.
12357 (K8 splitters): Enable for generic as well.
12358 * predicates.md (incdec_operand): Use TARGET_INCDEC
12359 (aligned_operand): Avoid memory mismatch stalls.
12360 * athlon.md: Enable for generic64, new patterns for 128bit moves.
12361 * ppro.md: Enable for generic32
12362 * i386.c (generic64_cost, generic32_cost): New.
12363 (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
12364 (x86_use_leave): Enable for generic64. (x86_use_sahf,
12365 x86_ext_80387_constants): Enable for generic32. (x86_push_memory,
12366 x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
12367 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
12368 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
12369 x86_partial_reg_dependency, x86_memory_mismatch_stall,
12370 x86_accumulate_outgoing_args, x86_prologue_using_move,
12371 x86_epilogue_using_move, x86_arch_always_fancy_math_387,
12372 x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
12373 Enable for generic.
12374 (x86_use_incdec, x86_pad_returns): New.
12375 (override_options): Add generic32 and generic64, translate "generic"
12376 to generic32/generic64 and "i686" to "generic32", refuse
12377 "generic32"/"generic64" as arch target.
12378 (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
12379 (ix86_reorg): Honor PAD_RETURNS.
12380
12381 2006-01-19 Diego Novillo <dnovillo@redhat.com>
12382
12383 * tree-pretty-print.c (dump_generic_node): Handle
12384 OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
12385 * cgraph.c (cgraph_expand_queue): Rename from
12386 cgraph_analyze_queue. Update all users.
12387 * cgraphunit.c (cgraph_assemble_pending_functions): Process
12388 cgraph_expand_queue.
12389 (cgraph_expand_all_functions): Likewise.
12390 (cgraph_finalize_pending_functions): Remove. Update callers.
12391
12392 * tree.h (OMP_DIRECTIVE_P): Define.
12393 (OMP_PARALLEL_FN): Define.
12394 (OMP_PARALLEL_DATA_ARG): Define.
12395 (OMP_SECTIONS_SECTIONS): Define.
12396 * tree-pass.h (pass_expand_omp): Declare.
12397 * omp-low.c (struct omp_region): Declare.
12398 (struct omp_context): Remove fields 'parallel_type',
12399 'parallel_start_ix' and 'parallel_start_additional_args'.
12400 Update all users.
12401 (struct omp_for_data): Rename from struct expand_omp_for_data.
12402 (omp_regions): New static variable.
12403 (root_omp_region): New static variable.
12404 (find_omp_clause): Make static.
12405 (is_in_combined_parallel_ctx): Remove.
12406 (is_combined_parallel): New.
12407 (extract_omp_for_data): Move earlier in the file.
12408 (workshare_safe_to_combine_p): New.
12409 (get_ws_args_for): New.
12410 (determine_parallel_type): Move earlier in the file.
12411 (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
12412 child function.
12413 (omp_copy_decl): Likewise.
12414 (create_omp_child_function): Likewise.
12415 (lookup_omp_region): New.
12416 (dump_omp_region): New.
12417 (debug_omp_region): New.
12418 (debug_all_omp_regions): New.
12419 (new_omp_region): New.
12420 (scan_omp_parallel): If parallel_nesting_level > 1, the
12421 directive is nested within another parallel directive.
12422 Set OMP_PARALLEL_FN.
12423 (scan_omp_for): Do not try to handle combined parallel+for
12424 cases.
12425 Remove FIXME comment.
12426 (scan_omp_nested): Remove.
12427 (scan_omp_1): Do not call scan_omp_nested when
12428 parallel_nesting_level is > 1.
12429 Do not change the DECL_CONTEXT of local variables found.
12430 (lookup_decl_in_outer_ctx): New.
12431 (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
12432 (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
12433 (lower_reduction_clauses): Rename from expand_reduction_clauses.
12434 (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
12435 If CTX is nested, lookup VAR in the outer context when
12436 building copy assignment.
12437 (lower_send_clauses): Rename from expand_send_clauses.
12438 If CTX is nested, lookup VAR in the outer context when
12439 building copy assignments.
12440 (lower_send_shared_vars): Rename from expand_send_shared_vars.
12441 If CTX is nested, lookup VAR in the outer context when
12442 building copy assignments.
12443 (expand_parallel_call): Rename from build_parallel_call.
12444 Handle combined parallel+workshare cases.
12445 Re-implement to emit code into the CFG.
12446 (list2chain): New.
12447 (expand_omp_parallel): Re-implement to emit code into the CFG.
12448 Call move_sese_region_to_fn to outline the sub-graph
12449 containing the parallel region.
12450 (expand_omp_for_1): Remove.
12451 (expand_omp_for_generic): Re-implement to emit code into the
12452 CFG.
12453 (expand_omp_for_static_nochunk): Likewise.
12454 (expand_omp_for_static_chunk): Likewise.
12455 (expand_omp_for): Likewise.
12456 (expand_omp_sections): Likewise.
12457 (remove_exit_barriers): New.
12458 (expand_omp_synch): New.
12459 (expand_omp): New.
12460 (build_omp_regions_1): New.
12461 (build_omp_regions): New.
12462 (execute_expand_omp): New.
12463 (gate_expand_omp): New.
12464 (pass_expand_omp): Define.
12465 (lower_omp_sections): Rename from expand_omp_sections.
12466 Set OMP_SECTIONS_SECTIONS.
12467 (lower_omp_single_simple): Rename from expand_omp_single_simple.
12468 (lower_omp_single_copy): Rename from expand_omp_single_copy.
12469 (lower_omp_single): Rename from expand_omp_simple.
12470 (lower_omp_master): Rename from expand_omp_master.
12471 (lower_omp_ordered): Rename from expand_omp_ordered.
12472 (lower_omp_critical): Rename from expand_omp_critical.
12473 (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
12474 (lower_omp_for): Re-implement.
12475 (lower_omp_parallel): Re-implement.
12476 (lower_regimplify): Rename from expand_regimplify.
12477 (lower_omp_1): Rename from expand_omp_1.
12478 If there are syntax errors in the program, replace every
12479 OpenMP directive with NOP.
12480 Call lower_omp_* instead of expand_omp_*.
12481 (lower_omp): Rename from expand_omp.
12482
12483 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
12484 * tree-gimple.h (enum omp_parallel_type): Remove.
12485 (gimple_boolify): Declare extern.
12486 (find_omp_clause, determine_parallel_type): Remove.
12487
12488 * gimple-low.c (lower_omp_directive): New.
12489 (lower_stmt): Call it.
12490 (record_vars_into): Move from ...
12491 (record_vars): ... here.
12492 Call record_vars_into with current_function_decl.
12493
12494 * gimplify.c (struct gimplify_ctx): Remove fields
12495 combined_pre_p and combined_ctxp. Update users.
12496 (get_formal_tmp_var): Add documentation.
12497 (gimple_boolify): Make extern.
12498 (gimplify_expr_in_ctx): Remove. Update callers.
12499 (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
12500 will always be a BIND_EXPR.
12501 (gimplify_expr): Handle OMP_RETURN_EXPR.
12502 * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
12503 (OMP_PARALLEL): Add 3 operands.
12504 (OMP_SECTIONS): Add 1 operand.
12505 (OMP_RETURN_EXPR): Define.
12506
12507 * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
12508 (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
12509 * tree-iterator.c (alloc_stmt_list): Assert that we are not
12510 creating a circular free list.
12511 (free_stmt_list): Assert that we are not freeing stmt_list_cache.
12512
12513 * tree-flow.h (move_sese_region_to_fn): Declare.
12514 (record_vars_into): Declare.
12515 * tree-cfg.c (make_omp_sections_edges): New.
12516 (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
12517 OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
12518 OMP_SECTIONS and OMP_SECTION.
12519 (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
12520 (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
12521 (verify_stmt): Do not handle OMP_DIRECTIVE_P.
12522 (gather_blocks_in_sese_region): New.
12523 (struct move_stmt_d): Declare.
12524 (move_stmt_r): New.
12525 (move_block_to_fn): New.
12526 (move_sese_region_to_fn): New.
12527
12528 * passes.c (init_optimization_passes): Schedule
12529 pass_expand_omp after pass_init_datastructures.
12530
12531 * tree-ssa-operands.c (get_expr_operands): Handle
12532 OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
12533 OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
12534
12535 2006-01-19 Jeff Law <law@redhat.com>
12536
12537 * tree-vrp.c (extract_range_from_assert): Refine the result range
12538 if the variable referenced by the ASSERT_EXPR has a range and
12539 either the tentative result range or the previous range is a
12540 VR_ANTI_RANGE.
12541
12542 2006-01-19 Richard Sandiford <richard@codesourcery.com>
12543
12544 * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
12545
12546 2006-01-19 Jan Hubicka <jh@suse.cz>
12547
12548 * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
12549
12550 2006-01-19 Paolo Bonzini <bonzini@gnu.org>
12551
12552 * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
12553 (expand_compound_operation, expand_field_assignment): Fail if the
12554 bit lengths of an extract operation are out of range.
12555 (make_extraction): Compute wanted_inner_mode based on the position
12556 and length of the extraction. Make it extraction_mode for non-constant
12557 positions, and do not modify offset in that case. When generating a
12558 new MEM, use a mode that can hold the extraction while keeping correct
12559 alignment. Remove code that supported MEMs wrapped by USEs.
12560 (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
12561
12562 2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
12563
12564 * config/s390/s390.md ("Y", "y"): New mode attribute.
12565 ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
12566 "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
12567 "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
12568 "*addsi3_imm_cc", "*addsi3_carry1_cc",
12569 "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
12570 "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
12571 "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
12572 "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
12573 "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
12574 "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
12575 "addsi3", "subsi3"): Insn patterns removed.
12576 ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
12577 "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
12578 "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
12579 "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
12580 "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
12581 "*sub<mode>3_cconly2"): New insn patterns.
12582 ("addsi3", "subsi3"): New expanders.
12583
12584 2006-01-19 Dorit Nuzman <dorit@il.ibm.com>
12585
12586 * Makefile.in (tree-vect-patterns.o): Add rule for new file.
12587 * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
12588 existing STMT_VINFO_VECTYPE if available.
12589 (vect_mark_relevant): Add special handling for stmts that are
12590 marked as STMT_VINFO_IN_PATTERN_P.
12591 (vect_analyze_loop): Call vect_pattern_recog.
12592 * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
12593 * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
12594 stmt_info.
12595 (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
12596 (vect_recog_func_ptr): New function-pointer type.
12597 * tree-vect-patterns.c: New file.
12598 (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
12599 (vect_recog_dot_prod_pattern, vect_pattern_recog):
12600 (vect_pattern_recog_1): New functions.
12601 (vect_pattern_recog_funcs): New array of function pointers.
12602
12603 * tree-vectorizer.h (ternary_op): New enum value.
12604 * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
12605 declaration. Revised documentation. Removed redundant dump prints.
12606 Removed redundant argument. Added support for reduction patterns.
12607 (vectorizable_reduction): Added support for reduction patterns.
12608 (vect_transform_stmt): Added support for patterns.
12609
12610 * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
12611 * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
12612 * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
12613 (expand_widen_pattern_expr): New function.
12614 (init_optabs): Initialize new optabs udot_prod_optab,
12615 sdot_prod_optab.
12616 * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
12617 (sdot_prod_optab, udot_prod_optab): Define new optabs.
12618 (expand_widen_pattern_expr): New function declaration.
12619 * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
12620 tree-codes.
12621 * tree-inline.c (estimate_num_insns_1): Added cases for new
12622 tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
12623 * tree-pretty-print.c (dump_generic_node): Likewise.
12624 (op_prio): Likewise.
12625 (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
12626 * tree-ssa-operands.c (get_expr_operands): Added case for
12627 DOT_PROD_EXPR.
12628 * tree-vect-patterns.c (widened_name_p): New function.
12629 (vect_recog_dot_prod_pattern): Added function implementation.
12630 * tree-vect-transform.c (get_initial_def_for_reduction): Added
12631 cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
12632 * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
12633 * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
12634
12635 * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
12636 * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
12637 * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
12638 (init_optabs): Initialize new optabs widen_ssum_optab,
12639 widen_usum_optab.
12640 * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
12641 (widen_ssum_optab, widen_usum_optab): Define new optabs.
12642 * tree-vect-generic.c: (expand_vector_operations_1): Check type of
12643 use instead of type of def.
12644 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
12645 function implementation.
12646 * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
12647 widen_ssumv8hi): New.
12648
12649 * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
12650 patterns.
12651
12652 2006-01-19 Richard Sandiford <richard@codesourcery.com>
12653
12654 PR c/25805
12655 * c-decl.c (add_flexible_array_elts_to_size): New function.
12656 (finish_decl): Use it.
12657
12658 2006-01-18 Andrew Pinski <pinskia@physics.uc.edu>
12659
12660 * diagnostic.h: Include options.h.
12661 * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
12662 dependancies for diagnostic.h.
12663 * Makefile.in (DIAGNOSTIC_H): Add options.h.
12664
12665 2006-01-16 Daniel Berlin <dberlin@dberlin.org>
12666
12667 * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
12668 (ssa_ro_call_cache_valid): Ditto.
12669 * tree-ssa-alias.c (sort_tags_by_id): New function.
12670 (init_transitive_clobber_worklist): Ditto.
12671 (add_to_worklist): Ditto.
12672 (mark_aliases_call_clobbered): Ditto.
12673 (compute_tag_properties): Ditto.
12674 (set_initial_properties): Ditto.
12675 (compute_call_clobbered): Ditto.
12676 (compute_may_aliases): Call compute_call_clobbered and grouping.
12677 (compute_flow_sensitive_aliasing): Remove clobbering related code.
12678 (compute_flow_insensitive_aliasing): Grouping now happens in our
12679 caller.
12680 (setup_pointers_and_addressables): Remove clobbering related code.
12681 (add_may_alias): Ditto.
12682 (replace_may_alias): Ditto.
12683 (get_nmt_for): Ditto.
12684 (create_global_var):
12685 (is_escape_site): Return an escape_type enumeration.
12686 * tree-flow-inline.h (is_call_clobbered): Global var does not
12687 imply call clobbered.
12688 (mark_call_clobbered): Take a reason for marking this. Remove
12689 marking of globalness, and cache invalidation.
12690 (clear_call_clobbered): Remove cache invalidation code.
12691 * tree-dfa.c (dump_variable): If details is on, dump the reason
12692 for escaping.
12693 * tree-outof-ssa.c (create_temp): Copy escape mask from original
12694 variable.
12695 * tree-flow.h (struct ptr_info_def): Add escape mask member.
12696 (struct var_ann_d): Ditto.
12697 (enum escape_type): New.
12698 (mark_call_clobbered): Adjust prototype.
12699 * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
12700 are never call clobbered.
12701 Record reasons for escaping.
12702 * tree-ssa-structalias.h (is_escape_site): Update prototype.
12703 * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
12704 (ssa_ro_call_cache_valid): Ditto.
12705 (clobbered_v_may_defs): Ditto.
12706 (clobbered_vuses): Ditto.
12707 (ro_call_vuses): Ditto.
12708 (clobber_stats): New.
12709 (init_ssa_operands): Zero out clobber stats.
12710 (fini_ssa_operands): Print out clobber stats.
12711 (get_call_expr_operands): Pass callee fndecl to
12712 add_call_read_ops).
12713 (add_call_clobber_ops): Remove use of cache.
12714 Add use of PURE_CONST information.
12715 (add_call_read_ops): Remove use of cache.
12716 Add use of static not_read information.
12717
12718 2006-01-18 Alexandre Oliva <aoliva@redhat.com>
12719
12720 Introduce TLS descriptors for i386 and x86_64.
12721 * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
12722 (TARGET_ANY_GNU_TLS): New macro.
12723 (enum tls_dialect): Added TLS_DIALECT_GNU2.
12724 (struct machine_function): Add tls_descriptor_call_expanded_p.
12725 (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
12726 (ix86_current_function_calls_tls_descriptor): Likewise.
12727 * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
12728 (override_options): Introduce gnu2 tls dialect.
12729 (ix86_frame_pointer_required): Functions containing TLSCALLs are
12730 not leaves.
12731 (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
12732 Likewise.
12733 (legitimize_tls_address): Adjust logic for GNU2 TLS.
12734 (ix86_init_machine_status): Initialize new field.
12735 (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
12736 (ix86_tls_module_base): New.
12737 * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
12738 * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
12739 (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
12740 (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
12741 (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
12742 (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
12743 (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
12744 (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
12745 * config/i386/predicates.md (tls_modbase_operand): New.
12746 (tp_or_register_operand): New.
12747
12748 2006-01-18 Daniel Berlin <dberlin@dberlin.org>
12749
12750 * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
12751 (look_for_address_of): Ditto.
12752 (ipa_init): Walk the function decls.
12753 (static_execute): Don't set readonly on FUNCTION_DECL's.
12754
12755 2006-01-18 Roger Sayle <roger@eyesopen.com>
12756
12757 * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
12758 for shifts where the source and destination registers are different.
12759
12760 2006-01-18 Paul Brook <paul@codesourcery.com>
12761
12762 Merge from csl-arm-branch.
12763 2005-03-14 Julian Brown <julian@codesourcery.com>
12764 * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
12765 (aeabi_llsl): Likewise.
12766 (ashrdi3): Likewise.
12767 (aeabi_lasr): Likewise.
12768 (lshrdi3): Likewise.
12769 (aeabi_llsr): Likewise.
12770 2005-03-10 Julian Brown <julian@codesourcery.com>
12771 * config.gcc: Disable shared libgcc for SymbianOS.
12772 * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
12773
12774 2006-01-18 DJ Delorie <dj@redhat.com>
12775
12776 * c-pragma.c (handle_pragma_diagnostic): New.
12777 (init_pragma): Register it.
12778 * doc/extend.texi: Document it.
12779
12780 * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
12781 * diagnostic.h (diagnostic_classify_diagnostic): Declare.
12782 (diagnostic_context): Add classify_diagnostic[].
12783 * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
12784 as errors if they're overridden to DK_WARNING.
12785 (diagnostic_initialize): Initialize classify_diagnostic[].
12786 (diagnostic_set_kind_override): New.
12787 (diagnostic_report_diagnostic): Check for kind changes.
12788 * opts.c (common_handle_option): Take lang_mask. Update callers.
12789 Handle OPT_Werror_.
12790 * common.opt (Werror=): New.
12791 * doc/invoke.texi: Document -Werror=*
12792
12793 2006-01-18 Jeff Law <law@redhat.com>
12794
12795 * tree-vrp.c (test_for_singularity): Correct test for new
12796 min limit. Use operand_equal_p rather than pointer equality
12797 for testing if new min/max values are equal.
12798
12799 * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
12800 using range information until after propagation and folding.
12801
12802 2006-01-18 Richard Henderson <rth@redhat.com>
12803 Aldy Hernandez <aldyh@redhat.com>
12804 Jakub Jelinek <jakub@redhat.com>
12805 Diego Novillo <dnovillo@redhat.com>
12806
12807 * omp-low.c: New file.
12808 * c-omp.c: New file.
12809
12810 2006-01-18 Richard Henderson <rth@redhat.com>
12811 Jakub Jelinek <jakub@redhat.com>
12812 Diego Novillo <dnovillo@redhat.com>
12813
12814 * doc/invoke.texi: Document -fopenmp.
12815 * tree-dump.h (debug_function): Declare.
12816 * hooks.c (hook_bool_tree_bool_false): New function.
12817 (hook_tree_tree_null): Remove.
12818 (hook_tree_tree_tree_null): New.
12819 * hooks.h: Update to match.
12820 * tree-pretty-print.c (debug_tree_chain): New.
12821 (print_generic_expr): Handle TDF_CHAIN.
12822 (dump_generic_node): Handle BLOCK.
12823 Do not abort with incomplete SWITCH_EXPRs.
12824 Do not dump body of an OpenMP directive if TDF_SLIM is given.
12825 <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
12826 print space after directive name.
12827 <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
12828 Handle OMP_MASTER and OMP_ORDERED.
12829 Handle printing of OMP_BODY just in one place, goto
12830 dump_omp_body in the rest of OMP_* nodes that have
12831 OMP_BODY.
12832 Don't handle clause nodes here. Update omp statements to
12833 use dump_omp_clauses.
12834 Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
12835 OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
12836 OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
12837 GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
12838 GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
12839 GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
12840 Adjust output for GOMP_PARALLEL.
12841 (dump_omp_clauses): New.
12842 (print_declaration): Dump DECL_VALUE_EXPR.
12843 (op_symbol_1): Split out of op_symbol.
12844 (dumping_stmts): Remove. Update all users.
12845 * cgraph.c (cgraph_analyze_queue): New.
12846 (cgraph_add_new_function): New.
12847 * cgraph.h (cgraph_analyze_queue): Declare.
12848 (cgraph_add_new_function): Declare.
12849 (cgraph_lower_function): Remove.
12850 * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
12851 nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
12852 and TYPE_P nodes in its default clause.
12853 (empty_body_p): New.
12854 (tree_range_check_failed): New.
12855 (build5_stat): New.
12856 * tree.h (OMP_CLAUSE_REDUCTION_INIT,
12857 OMP_CLAUSE_REDUCTION_MERGE,
12858 OMP_CLAUSE_REDUCTION_PLACEHOLDER,
12859 OMP_CLAUSE_PRIVATE_DEBUG,
12860 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
12861 OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
12862 OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
12863 OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
12864 OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
12865 OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
12866 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
12867 OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
12868 OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
12869 OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
12870 OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
12871 OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
12872 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
12873 OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
12874 (TREE_RANGE_CHECK): New.
12875 (empty_body_p): Declare.
12876 (enum omp_clause_default_kind): New.
12877 (build_string_literal): Declare.
12878 (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
12879 (build5_stat, build5): Declare.
12880 * tree-pass.h (TDF_CHAIN): Define.
12881 * tree-pass.h (PROP_gimple_lomp): Define.
12882 (pass_lower_omp): Declare.
12883 * diagnostic.h (debug_tree_chain): Declare.
12884 * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
12885 mode_for_size.
12886 (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
12887 * builtins.c (build_string_literal): Make extern.
12888 * gcc.c (include_spec_function): New.
12889 (static_spec_functions): Add it.
12890 (main): Move load of libgomp.spec ...
12891 (LINK_COMMAND_SPEC): ... here.
12892 (link_gomp_spec): New.
12893 (static_specs): Include it.
12894 (LINK_COMMAND_SPEC): Add link_gomp.
12895 (GOMP_SELF_SPECS): New.
12896 (driver_self_specs): Include it.
12897 (switch_matches): Don't mark inline.
12898 (main): Load libgomp.spec.
12899 * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
12900 OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
12901 and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
12902 * tree-gimple.h (enum omp_parallel): Declare.
12903 (determine_parallel_type): Declare.
12904 (omp_firstprivatize_variable): Declare.
12905 (omp_reduction_init): Declare.
12906 (diagnose_omp_structured_block_errors): Declare.
12907 (struct walk_stmt_info): Add want_return_expr.
12908 (struct walk_stmt_info): Add want_bind_expr, want_locations.
12909 (find_omp_clause): Declare.
12910 (insert_field_into_struct): Declare.
12911 (struct walk_stmt_info): Move from tree-nested.c
12912 (walk_stmts): Declare.
12913 * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
12914 to 200505.
12915 * cgraphunit.c (cgraph_lower_function): Make static.
12916 (cgraph_finalize_pending_functions): New.
12917 (cgraph_finalize_function): Call it.
12918 (cgraph_finalize_compilation_unit): Likewise.
12919 * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
12920 BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
12921 (BT_FN_UINT_UINT): New.
12922 (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
12923 DEF_FUNCTION_TYPE_VAR_4): Document.
12924 (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
12925 BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
12926 BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
12927 BT_FN_VOID_OMPFN_PTR_UINT_UINT,
12928 BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
12929 BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
12930 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
12931 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
12932 * builtins.def: Update DEF_BUILTIN comment to include COND argument.
12933 Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
12934 into separate files.
12935 (DEF_GOMP_BUILTIN): New.
12936 (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
12937 BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
12938 BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
12939 BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
12940 BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
12941 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
12942 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
12943 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
12944 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
12945 BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
12946 BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
12947 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
12948 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
12949 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
12950 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
12951 BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
12952 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
12953 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
12954 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
12955 BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
12956 BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
12957 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
12958 BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
12959 BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
12960 BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
12961 BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
12962 * sync-builtins.def: New file, moved from builtins.def.
12963 * omp-builtins.def: New file, moved from builtins.def.
12964 * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
12965 * gimple-low.c (lower_function_body): Clear data.
12966 (lower_stmt): Do not handle COMPOUND_EXPR.
12967 Remove call to print_node_brief.
12968 * c-tree.h (c_finish_omp_clauses): New prototype.
12969 (C_DECL_THREADPRIVATE_P): Define.
12970 (lookup_name_no_remap, c_omp_remap_private): Remove
12971 (c_begin_omp_parallel, c_finish_omp_parallel): Update.
12972 (check_for_loop_decls): Update decl.
12973 (lookup_name_no_remap, c_omp_remap_private): Declare.
12974 (build_indirect_ref, build_modify_expr, pushdecl,
12975 pushdecl_top_level): Move to c-common.h.
12976 * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
12977 before the switch, but just in the 2 places that need it.
12978 * c-decl.c (diagnose_mismatched_decls): Do not check for
12979 mismatched thread-local attributes when OLDDECL is marked
12980 threadprivate and NEWDECL has no thread-local attributes.
12981 (merge_decls): Merge C_DECL_THREADPRIVATE_P.
12982 (c_gimple_diagnostics_recursively): Rename from
12983 c_warn_unused_result_recursively. Invoke
12984 diagnose_omp_structured_block_errors.
12985 (check_for_loop_decls): Return a singular decl found.
12986 * langhooks.c (lhd_omp_predetermined_sharing): Return
12987 OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
12988 (lhd_omp_firstprivatize_type_sizes): New.
12989 (lhd_omp_assignment): New.
12990 (lhd_omp_predetermined_sharing): New.
12991 * langhooks.h (struct gimplify_omp_ctx): Forward declare.
12992 (struct lang_hooks_for_types): Add
12993 omp_firstprivatize_type_sizes, omp_privatize_by_reference,
12994 omp_predetermined_sharing, omp_disregard_value_expr,
12995 omp_private_debug_clause, omp_clause_default_ctor,
12996 omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
12997 (c_finish_omp_clauses): New.
12998 (c_finish_bc_stmt): Diagnose break within omp for.
12999 (c_begin_omp_parallel, c_finish_omp_parallel): New.
13000 (build_unary_op): Return error_mark after reporting
13001 a readonly_error.
13002 (build_modify_expr): Likewise.
13003 * gimplify.c: Include optabs.h and pointer-set.h.
13004 (enum gimplify_omp_var_data): Declare.
13005 (struct gimplify_omp_ctx): Declare.
13006 (struct gimplify_ctx): Add fields prev_context, combined_pre_p
13007 and combined_ctxp.
13008 (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
13009 (push_gimplify_context, pop_gimplify_context): Allow nesting.
13010 (splay_tree_compare_decl_uid): New.
13011 (new_omp_context): New.
13012 (delete_omp_context): New.
13013 (gimple_add_tmp_var): Call omp_add_variable.
13014 (gimplify_bind_expr): Likewise.
13015 (gimplify_var_or_parm_decl): If omp_notice_variable returned
13016 true, disregard DECL_VALUE_EXPR on the decl if any.
13017 (gimplify_expr_in_ctx): New.
13018 (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
13019 omp_add_variable, omp_notice_variable, omp_is_private
13020 gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
13021 gimplify_adjust_omp_clauses, gimplify_omp_parallel
13022 gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
13023 gimplify_omp_atomic_fetch_op, goa_stabilize_expr
13024 gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
13025 gimplify_omp_atomic): New.
13026 (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13027 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13028 OMP_CRITICAL and OMP_ATOMIC.
13029 (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
13030 * c-pragma.h (enum pragma_kind): Add
13031 PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
13032 PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
13033 PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
13034 PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
13035 PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
13036 PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
13037 PRAGMA_OMP_THREADPRIVATE.
13038 * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13039 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13040 OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
13041 OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
13042 OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
13043 OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
13044 OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
13045 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
13046 OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
13047 * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
13048 * tree-ssa-dce.c (find_control_dependence): Do not assume that
13049 ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
13050 * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
13051 OpenMP directives.
13052 (struct nesting_info): Add field_map,
13053 suppress_expansion, debug_var_chain.
13054 (create_nesting_tree): Initialize them.
13055 (lookup_field_for_decl): Use field_map.
13056 (get_nonlocal_debug_decl, get_local_debug_decl): New.
13057 (convert_local_omp_clauses): New.
13058 (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
13059 (walk_body): Split out of walk_function.
13060 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
13061 (convert_nonlocal_reference): Handle omp statements.
13062 (convert_local_reference): Likewise.
13063 (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
13064 (unnest_nesting_tree): New.
13065 (lower_nested_functions): Call it.
13066 (insert_field_into_struct): Make extern.
13067 (struct walk_stmt_info): Move to tree-gimple.h.
13068 (walk_stmts): Make extern.
13069 * omp-builtins.def: New file.
13070 * tree-iterator.c (expr_only): Clarify comment.
13071 * c-common.h (pushdecl_top_level, pushdecl,
13072 build_modify_expr, build_indirect_ref,
13073 c_finish_omp_master, c_finish_omp_critical,
13074 c_finish_omp_ordered, c_finish_omp_barrier,
13075 c_finish_omp_atomic, c_finish_omp_flush,
13076 c_finish_omp_for, c_split_parallel_clauses,
13077 omp_clause_default_kind, c_omp_sharing_predetermined,
13078 c_omp_remap_decl): Declare.
13079 * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
13080 (OBJS-common): Add omp-low.o.
13081 (c-omp.o, omp-low.o): Add.
13082 (gimplify.o): Add dependency on $(OPTABS_H).
13083 (GTFILES): Add omp-low.c.
13084 (gt-stringpool.h): Add.
13085 * tree-cfg.c (set_bb_for_stmt): Do not update the
13086 block-to-labels map if we are currently expanding to RTL.
13087 (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
13088 checks.
13089 Handle IDENTIFIER_NODE.
13090 (tree_verify_flow_info): Do not ICE when emitting error
13091 messages about invalid labels.
13092 (dump_function_to_file): Reset CFUN before emitting the body
13093 of the function.
13094 (debug_function): New.
13095 * passes.c (init_optimization_passes): Schedule
13096 pass_lower_omp.
13097 * langhooks-def.h (lhd_omp_predetermined_sharing,
13098 lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
13099 Declare.
13100 (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
13101 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
13102 (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
13103 LANG_HOOKS_OMP_PREDETERMINED_SHARING,
13104 LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
13105 LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
13106 LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
13107 LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
13108 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
13109 LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
13110 (LANG_HOOK_DECLS): Use them.
13111
13112 2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
13113 Richard Henderson <rth@redhat.com>
13114 Jakub Jelinek <jakub@redhat.com>
13115 Diego Novillo <dnovillo@redhat.com>
13116
13117 * c-parser.c (pragma_omp_clause): Define.
13118 (c_parser_declaration_or_fndef): Document OpenMP syntax.
13119 (c_parser_compound_statement): Likewise.
13120 (c_parser_statement): Likewise.
13121 (c_parser_pragma): Handle omp pragmas.
13122 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
13123 OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
13124 (c_parser_omp_clause_name, check_no_duplicate_clause,
13125 c_parser_omp_variable_list,
13126 c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
13127 c_parser_omp_clause_copyprivate,
13128 c_parser_omp_clause_default,
13129 c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
13130 c_parser_omp_clause_lastprivate,
13131 c_parser_omp_clause_nowait,
13132 c_parser_omp_clause_num_threads,
13133 c_parser_omp_clause_ordered, c_parser_omp_clause_private,
13134 c_parser_omp_clause_reduction,
13135 c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
13136 c_parser_omp_all_clauses, c_parser_omp_structured_block,
13137 c_parser_omp_atomic, c_parser_omp_barrier,
13138 c_parser_omp_critical, c_parser_omp_flush,
13139 c_parser_omp_for_loop, c_parser_omp_for,
13140 c_parser_omp_master, c_parser_omp_ordered,
13141 c_parser_omp_sections_scope, c_parser_omp_sections,
13142 c_parser_omp_parallel, c_parser_omp_single,
13143 c_parser_omp_construct, c_parser_omp_threadprivate): New.
13144 * c-pragma.c (init_pragma): Do omp pragma registration here.
13145 * c.opt (fopenmp): New flag.
13146
13147 2006-01-18 Eric Christopher <echristo@apple.com>
13148
13149 * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
13150 * config/darwin.h (GOMP_SELF_SPECS): Define.
13151
13152 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
13153
13154 * rtl.h: Remove the prototype for reg_alloc.
13155
13156 2006-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13157
13158 PR target/25731
13159 * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
13160 hppa[12]*-*-hpux11*): Override default shared libgcc version for both
13161 sjlj and dwarf2 exception handling.
13162 * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
13163 Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
13164 * pa/pa.c (function_value): Treat complex and vector types as
13165 aggregates.
13166 (function_arg): Likewise. Only pass scalar floats in the floating
13167 point argument registers.
13168 * pa/t-slibgcc-dwarf-ver: New file.
13169 * pa/t-slibgcc-sjlj-ver: New file.
13170 * pa/t-slibgcc-elf-ver: Delete file.
13171
13172 2006-01-19 Alan Modra <amodra@bigpond.net.au>
13173
13174 * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
13175 unlikely_test_section_p test.
13176
13177 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
13178
13179 * mode-switching.c (optimize_mode_switching): Make it static.
13180 * basic-block.h: Remove the prototype for
13181 optimize_mode_switching.
13182
13183 * modulo-sched.c (sms_schedule): Make it static.
13184 * rtl.h: Remove the prototype for sms_schedule.
13185
13186 * postreload-gcse.c (gcse_after_reload_main): Make it static.
13187 * rtl.h: Remove the prototype for gcse_after_reload_main.
13188
13189 * reg-stack.c (reg_to_stack): Make it static.
13190 * rtl.h: Remove the prototype for reg_to_stack.
13191
13192 * regrename.c (regrename_optimize, copyprop_hardreg_forward):
13193 Make them static.
13194 * rtl.h: Remove the prototypes for regrename_optimize and
13195 copyprop_hardreg_forward.
13196
13197 2006-01-18 Eric Botcazou <ebotcazou@adacore.com>
13198
13199 * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
13200 alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments.
13201 Test against the appropriate null constant for the mode.
13202 If 'fixup_overlap' is true, swap the operands if they overlap.
13203 (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
13204 * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
13205 alpha_split_tmode_pair and adjust for above change.
13206 * config/alpha/alpha.md (movtf_internal): Adjust call to
13207 alpha_split_tfmode_pair and rely on it to swap the operands.
13208 (movti_internal): New insn and post-reload splitter.
13209 (movti): New expander.
13210
13211 2006-01-18 Philippe De Muyter <phdm@macqel.be>
13212
13213 * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
13214 operands.
13215
13216 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
13217
13218 * rtlanal.c (global_reg_mentioned_p_1,
13219 global_reg_mentioned_p): Remove.
13220 * rtl.h: Remove the prototype for global_reg_mentioned_p.
13221
13222 * flow.c (initialize_uninitialized_subregs): Make it static.
13223 * rtl.h: Remove the prototype for
13224 initialize_uninitialized_subregs.
13225
13226 * function.c (instantiate_virtual_regs): Make it static.
13227 * function.h: Remove the prototype for
13228 instantiate_virtual_regs.
13229
13230 * regmove.c (regmove_optimize, combine_stack_adjustments):
13231 Make them static.
13232 * rtl.h: Remove the prototypes for regmove_optimize and
13233 combine_stack_adjustments.
13234
13235 2006-01-17 Roger Sayle <roger@eyesopen.com>
13236
13237 * config/i386/i386.c (COSTS_N_BYTES): New macro.
13238 (size_cost): Encode costs in bytes so that a reg-reg addition is
13239 equivalent to COSTS_N_INSNS(1).
13240 (override_options): Use the size_cost.branch_cost as the default
13241 ix86_branch_cost when optimizing for size.
13242
13243 2006-01-18 Ben Elliston <bje@au.ibm.com>
13244
13245 * Makefile.in (D32PBIT_FUNCS): New.
13246 (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
13247 (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
13248 D64PBIT_FUNCS and D128PBIT_FUNCS.
13249 (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
13250 * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
13251 D128PBIT are set.
13252 (decnumber_dep): Define.
13253 * doc/libgcc.texi (Decimal float library routines): New node.
13254 * config/dfp-bit.h, config/dfp-bit.c: New files.
13255
13256 2006-01-18 Ben Elliston <bje@au.ibm.com>
13257
13258 * expr.c (emit_move_change_mode): Always adjust addresses, not
13259 just during reload. Copy replacements only during reload.
13260 (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
13261 emit_move_via_integer.
13262
13263 2006-01-17 Shantonu Sen <ssen@opendarwin.org>
13264
13265 * Makefile.in (check-%, check-consistency): Use $${srcdir}
13266 instead of $(srcdir) and ${srcdir}.
13267
13268 2006-01-17 Richard Earnshaw <rearnsha@arm.com>
13269
13270 PR target/592
13271 PR middle-end/11135
13272 * arm.h (struct machine_function): Add pic_reg.
13273 * arm.c (arm_pic_register): Make unsigned.
13274 (arm_override_options): Only set arm_pic_register if
13275 TARGET_SINGLE_PIC_BASE.
13276 (use_return_insn): Only test for a pic register if it is fixed.
13277 (arm_compute_save_reg0_reg12_mask): Likewise.
13278 (thumb_compute_save_reg_mask): Likewise.
13279 (legitimate_pic_operand): Factor out some known invariants.
13280 (legitimize_pic_address): If we don't have a fixed pic register,
13281 then set up a pseudo in the function entry sequence. Handle the
13282 pic base being in a pseudo.
13283 (arm_load_pic_register): Handle the pic register being in a pseudo.
13284 (arm_expand_prologue): Only set up the pic register if it is fixed.
13285 (thumb_expand_prologue): Likewise.
13286 * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
13287 (pic_load_addr_based_insn): Likewise.
13288 (builtin_setjmp_receiver): Don't restore the pic base if it isn't
13289 fixed.
13290
13291 2006-01-18 Ben Elliston <bje@au.ibm.com>
13292
13293 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
13294 decimal float modes for all floating point registers.
13295
13296 * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
13297 match_code "mem" with match_test "macho_lo_sum_memory_operand".
13298
13299 2006-01-17 Jakub Jelinek <jakub@redhat.com>
13300
13301 PR c/25682
13302 * c-typeck.c (build_unary_op): Fold offsetof-like expressions
13303 even when the pointer is not NULL.
13304
13305 2006-01-16 Ian Lance Taylor <ian@airs.com>
13306
13307 * common.opt (ftoplevel-reorder): New option.
13308 * cgraph.c (cgraph_asm_nodes): New global variable.
13309 (cgraph_asm_last_node): New static variable.
13310 (cgraph_order): New global variable.
13311 (cgraph_create_node): Set new order field.
13312 (cgraph_varpool_node): Likewise.
13313 (decide_is_variable_needed): Return true if not
13314 flag_toplevel_reorder.
13315 (cgraph_add_asm_node): New function.
13316 * cgraph.h (struct cgraph_node): Add order field.
13317 (struct cgraph_varpool_node): Add order field.
13318 (struct cgraph_asm_node): Define.
13319 (cgraph_asm_nodes, cgraph_order): Declare.
13320 (cgraph_add_asm_node): Declare.
13321 * cgraphunit.c (cgraph_varpool_assemble_decl): New static
13322 function.
13323 (cgraph_varpool_assemble_pending_decls): Call it.
13324 (cgraph_output_pending_asms): New static function.
13325 (cgraph_finalize_compilation_unit): Call it.
13326 (struct cgraph_order_sort): Define.
13327 (cgraph_output_in_order): New static function.
13328 (cgraph_optimize): Call cgraph_output_pending_asms. Add code for
13329 !flag_toplevel_reorder case.
13330 * c-parser.c: Include "cgraph.h".
13331 (c_parser_asm_definition): Call cgraph_add_asm_node rather than
13332 assemble_asm.
13333 * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
13334 than -fno-unit-at-a-time.
13335 * doc/invoke.texi (Option Summary): Mention
13336 -fno-toplevel-reorder.
13337 (Optimize Options): Document -fno-toplevel-reorder. Mention it in
13338 -funit-at-a-time documentation.
13339
13340 2006-01-17 Hans-Peter Nilsson <hp@axis.com>
13341 Kazu Hirata <kazu@codesourcery.com>
13342
13343 * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
13344
13345 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
13346
13347 * Makefile.in (FUNCTION_H): New. Use it instead of
13348 function.h throughout the file.
13349 * function.h: Include tree.h.
13350
13351 2006-01-17 Ben Elliston <bje@au.ibm.com>
13352
13353 * recog.c: Separate some functions with whitespace.
13354
13355 2006-01-16 Richard Henderson <rth@redhat.com>
13356
13357 Merge from gomp branch:
13358 * Makefile.in (TREE_INLINE_H): New. Use it as needed.
13359 * tree-inline.h (struct copy_body_data): Move from tree-inline.c
13360 and rename from struct inline_data. Rename callee* to dst*;
13361 caller* to src*; add copy_decl hook, transform_call_graph_edges,
13362 transform_new_cfg, transform_return_to_modify, and
13363 transform_lang_insert_block flags; remove cloning_p, versioning_p,
13364 update_clones_p.
13365 (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
13366 (copy_decl_for_dup): Remove.
13367 * tree-inline.c (struct inline_data): Move to header.
13368 (insert_decl_map): Export.
13369 (remap_decl): Update for member name changes. Use copy_decl hook.
13370 Allow for replacement to be a non-decl. Remove dead code.
13371 (remap_type_1): Check for existing mapping.
13372 (remap_type): Export.
13373 (remap_decls): Update for member name changes.
13374 (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
13375 (copy_body, setup_one_parameter, declare_return_variable): Likewise.
13376 (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
13377 (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
13378 (tree_function_versioning, build_duplicate_type): Likewise.
13379 (copy_body_r): Likewise. Export.
13380 (copy_decl_for_dup): Split into ...
13381 (copy_decl_for_dup_finish, copy_decl_to_var,
13382 copy_decl_no_change, copy_decl_maybe_to_var): ... these.
13383 (replace_ref_tree, inlining_p): Remove.
13384
13385 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13386
13387 * ifcvt.c (if_convert): Make it static.
13388 * rtl.h: Remove the prototype for if_convert.
13389
13390 * local-alloc.c (local_alloc): Make it static.
13391 * rtl.h: Remove the prototype for local_alloc.
13392
13393 * loop.c (loop_optimize): Make it static.
13394 * cfgloop.h: Remove the prototype for loop_optimize.
13395 * rtl.h: Likewise.
13396
13397 2006-01-16 DJ Delorie <dj@redhat.com>
13398
13399 * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
13400 mems.
13401
13402 2006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13403
13404 * pa.md: Disparage copies between general and floating-point registers
13405 in 32-bit move patterns.
13406
13407 2006-01-16 H.J. Lu <hongjiu.lu@intel.com>
13408
13409 PR testsuite/25741
13410 * Makefile.in (check-%): Depend on site.exp instead of
13411 $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
13412 directories.
13413
13414 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13415
13416 * global.c (global_alloc): Make it static.
13417 * rtl.h: Remove the prototype for global_alloc.
13418
13419 2006-01-16 Richard Guenther <rguenther@suse.de>
13420
13421 * tree-ssa-alias.c (struct used_part): Add write_only field.
13422 (get_or_create_used_part_for): Initialize it to true.
13423 (create_overlap_variables_for): Don't create structure variables
13424 for structures that only are written to.
13425 (find_used_portions): Handle MODIFY_EXPR to track whether a
13426 structure is only written to.
13427
13428 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13429
13430 * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
13431 static.
13432 * basic-block.h: Remove the prototype for
13433 partition_hot_cold_basic_blocks.
13434
13435 2006-01-16 Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
13436
13437 * cppspec.c (lang_specific_spec_functions): Remove.
13438 * gcc.c (lookup_spec_function): Use static_spec_functions directly.
13439 * gcc.h (lang_specific_spec_functions): Remove.
13440 * gccspec.c (lang_specific_spec_functions): Remove.
13441
13442 2006-01-16 Paolo Bonzini <bonzini@gnu.org>
13443
13444 * combine.c (record_value_for_reg): Invalidate registers
13445 if INSN is null.
13446 (record_dead_and_set_regs_1): Likewise, by passing them to
13447 record_value_for_reg.
13448 (record_dead_and_set_regs): Invalidate stores made by a
13449 call. We do not combine across a call, but we still
13450 relied on equivalences.
13451
13452 2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
13453
13454 * tree-vrp.c (extract_range_from_binary_expr): Cope with
13455 vrp_int_const_binop returning non-constant nodes.
13456
13457 2006-01-16 Paul Brook <paul@codesourcery.com>
13458
13459 * config/m68k/m68k.c (output_move_const_into_data_reg):
13460 Output correct mnemonic for mvz and mvs.
13461
13462 2006-01-16 Gabor Loki <loki@gcc.gnu.org>
13463
13464 * rtl-factoring.c: Add sequence abstraction algorithm.
13465 * cfgcleanup.c (outgoing_edges_match): Extra checks.
13466 (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
13467 ABNORMAL edges.
13468 (block_has_preserve_label): New function.
13469 * common.opt: Register new pass.
13470 * Makefile.in: Ditto.
13471 * passes.c: Ditto.
13472 * timevar.def: Ditto.
13473 * tree-pass.h: Ditto.
13474 * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
13475 * rtl.h (make_jump_insn_raw): Add forward decl.
13476 * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
13477
13478 2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
13479 Roger Sayle <roger@eyesopen.com>
13480
13481 * fold-const.c (fold_minmax): New static function.
13482 (fold_binary) <MIN_EXPR>: Call it.
13483 <MAX_EXPR>: Likewise.
13484 * stor-layout.c (place_field): Use DECL_SIZE consistently
13485 in the computation of the new record size.
13486
13487 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13488
13489 * cse.c (cse_condition_code_reg): Make it static.
13490 * rtl.h: Remove the prototype for cse_condition_code_reg.
13491
13492 * combine.c (combine_instructions): Make it static.
13493 * rtl.h: Remove the prototype for combine_instructions.
13494
13495 2006-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13496
13497 PR target/25168
13498 * tree.c (get_file_function_name_long): Concatenate the first global
13499 object name with a string derived from the input filename of the object
13500 for type "F".
13501
13502 2006-01-16 Ben Elliston <bje@au.ibm.com>
13503
13504 * config/i386/winnt-stubs.c: Update FSF address.
13505 * config/xtensa/ieee754-df.S: Ditto.
13506 * config/xtensa/ieee754-sf.S: Ditto.
13507
13508 2006-01-14 Ian Lance Taylor <ian@airs.com>
13509
13510 * ifcvt.c (noce_init_if_info): New static function, broken out of
13511 noce_process_if_block.
13512 (noce_process_if_block): Call noce_init_if_info.
13513 (check_cond_move_block): New static function.
13514 (cond_move_process_if_block): New static function.
13515 (process_if_block): Call cond_move_process_if_block.
13516
13517 2006-01-15 Kazu Hirata <kazu@codesourcery.com>
13518
13519 * cselib.c (hash_table): Rename to cselib_hash_table.
13520 (cselib_clear_table, discard_useless_values,
13521 remove_useless_values, cselib_lookup_mem, cselib_lookup,
13522 cselib_init, cselib_finish): Adjust uses of hash_table.
13523
13524 2006-01-14 Kazu Hirata <kazu@codesourcery.com>
13525
13526 PR tree-optimization/25485
13527 * tree-vrp.c (extract_range_from_binary_expr): Handle cases
13528 where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
13529 is known to be false and true, respectively.
13530
13531 2006-01-14 Richard Guenther <rguenther@suse.de>
13532
13533 PR tree-optimization/22548
13534 PR tree-optimization/22555
13535 PR tree-optimization/22501
13536 * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
13537 * params.def (salias-max-array-elements): New parameter.
13538 * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
13539 * doc/invoke.texi (salias-max-array-elements): Document.
13540 * tree-flow-inline.h (var_can_have_subvars): We also handle
13541 arrays now.
13542 * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
13543 COMPONENT_REF.
13544 * tree-ssa-structalias.c (params.h): Include.
13545 (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
13546 (find_func_aliases): Handle multiple constraints from ARRAY_REF.
13547 (get_constraint_for): For ADDR_EXPR operating on something
13548 containing an ARRAY_REF, add all subvars to the solution.
13549 (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
13550 * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
13551 for creating MUST_DEFs.
13552 (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
13553
13554 2006-01-14 Zdenek Dvorak <dvorakz@suse.cz>
13555
13556 * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
13557 functions.
13558 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
13559 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
13560 number_of_iterations_le): New functions.
13561 (number_of_iterations_special): Removed.
13562 (number_of_iterations_exit): Do not use number_of_iterations_special.
13563 * tree.c (unsigned_type_for): Always return integer type.
13564
13565 2006-01-14 Steven Bosscher <stevenb.gcc@gmail.com>
13566 Richard Guenther <rguenther@suse.de>
13567
13568 PR rtl-optimization/24257
13569 * gcse.c (find_moveable_store): Only consider a store movable
13570 when the SET_SRC of the insn can be assigned to a register.
13571
13572 2006-01-14 Ian Lance Taylor <ian@airs.com>
13573
13574 * tree.c (tree_not_class_check_failed): New function.
13575 * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
13576 (tree_not_class_check_failed): Declare.
13577
13578 2006-01-13 Ian Lance Taylor <ian@airs.com>
13579
13580 * reload1.c (do_output_reload): Add assertion rejecting a
13581 CALL_INSN.
13582
13583 2006-01-13 Adam Nemet <anemet@caviumnetworks.com>
13584
13585 * combine.c (struct reg_stat): Add new fields truncation_label and
13586 truncated_to_mode.
13587 (record_value_for_reg): Reset truncated_to_mode.
13588 (record_truncated_value): New function.
13589 (check_promoted_subreg): Call it. Rename to check_conversions.
13590 (combine_instructions): Rename check_promoted_subreg to
13591 check_conversions.
13592 (reg_truncated_to_mode): New function.
13593 (make_extraction): Use it. Check TRULY_NOOP_TRUNCATION.
13594 (gen_lowpart_or_truncate): New function.
13595 (force_to_mode): Use it instead of gen_lowpart.
13596
13597 2006-01-13 Diego Novillo <dnovillo@redhat.com>
13598
13599 * tree-ssa-alias.c (add_type_alias): Fix typo. Test whether
13600 VAR is a tag, not its type tag.
13601
13602 2006-01-13 Alexandre Oliva <aoliva@redhat.com>
13603
13604 * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
13605 alternatives to match style of other entries.
13606 (*vec_extractv2di_1_sse): Likewise. Fix mode attr.
13607
13608 2006-01-13 Daniel Berlin <dberlin@dberlin.org>
13609
13610 PR tree-optimization/25771
13611 * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
13612 SSA_NAMES.
13613
13614 2006-01-13 Andrew Pinski <pinskia@physics.uc.edu>
13615
13616 PR tree-opt/24365
13617 * tree-inline.c (declare_return_variable): If the return variable
13618 was marked as a non gimple complex, set the return slot variable
13619 to be a non gimple comple variable.
13620
13621 2006-01-13 Richard Guenther <rguenther@suse.de>
13622
13623 * builtins.c (expand_builtin_sincos): New function.
13624 (expand_builtin_mathfn_3): Remove dead code, sin and cos
13625 do not set errno.
13626 (expand_builtin): Expand sincos using expand_builtin_sincos.
13627
13628 2006-01-12 DJ Delorie <dj@redhat.com>
13629
13630 * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
13631 shift counts, separate SI shifts for m32c vs m16c, pass shift type
13632 so that constant shifts can be split.
13633 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
13634 (m32c_valid_pointer_mode): Make static.
13635 (shift_gen_func_for): New.
13636 (m32c_prepare_shift): Use it. Split large const shifts into
13637 multiple shifts.
13638 * config/m32c/predicates.md (shiftcount_operand): Allow more
13639 general operands.
13640 (longshiftcount_operand): New.
13641 * doc/md.texi (Machine Constraints): Document In6.
13642
13643 2006-01-13 Ben Elliston <bje@au.ibm.com>
13644
13645 * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
13646 REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
13647 documentation.
13648
13649 2006-01-12 Daniel Berlin <dberlin@dberlin.org>
13650
13651 * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
13652 to try to avoid clobbering pieces of structures when we know
13653 something about the whole structure.
13654 * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
13655
13656 2006-01-13 Ben Elliston <bje@au.ibm.com>
13657
13658 * doc/rtl.texi (Insns): Remove statement that libcalls cannot
13659 return in memory, as this is no limitation is no longer present.
13660
13661 2006-01-12 DJ Delorie <dj@redhat.com>
13662
13663 * config/m32c/addsub.md (addhi3): Add two more alternatives, for
13664 mova with fb, and for fb+0 -> An.
13665
13666 * config/m32c/mov.md (peephole2): Fix enabling logic.
13667
13668 * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
13669 DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
13670 DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
13671 FINI_ARRAY_SECTION_ASM_OP): Define.
13672
13673 * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
13674 variable.
13675 (m32c_legitimize_reload_address): New logic to reload FB to An.
13676 (m32c_output_reg_push): Add newline.
13677 (m32c_output_reg_pop): Likewise.
13678
13679 2006-01-12 Ulrich Weigand <uweigand@de.ibm.com>
13680
13681 * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
13682
13683 2006-01-11 Andrew Pinski <pinskia@physics.uc.edu>
13684
13685 * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
13686
13687 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
13688
13689 * config/sh/predicates.md (sh_rep_vec): Add parallel to
13690 match_code.
13691
13692 2006-01-11 Ben Elliston <bje@au.ibm.com>
13693
13694 * rtlanal.c (find_reg_note): Assert insn is not null.
13695
13696 2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
13697
13698 * df-scan.c (df_hard_reg_init): Move declaration of i outside
13699 ifdef.
13700
13701 2006-01-11 Jeff Law <law@redhat.com>
13702
13703 * tree-ssa-threadupdate.c (threaded_edges): New VEC to
13704 hold edge pairs.
13705 (mark_threaded_blocks, register_jump_thread): New functions.
13706 (thread_through_all_blocks): Remove unwanted argument. No
13707 longer rely on e->aux to communicate thread target info.
13708 Call mark_threaded_blocks. Release the threaded_blocks
13709 bitmap and threaded_edges vector when complete.
13710 * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
13711 (threaded_blocks): Remove.
13712 (tree_ssa_dominator_optimize): Remove initialization and
13713 finalization of threaded_blocks. Simplify call to
13714 thread_through_all_blocks.
13715 (thread_across_edge): Call register_jump_thread rather than
13716 storing thread information into e->aux.
13717 (free_all_edge_infos): Simplify now that e->aux is no longer
13718 used to communicate with thread_through_all_blocks.
13719 * tree-flow.h (thread_through_all_blocks): Update prototype.
13720 (register_jump_thread): Prototype.
13721
13722 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
13723
13724 * df-core.c (df_compact_blocks, df_bb_replace): Use
13725 SET_BASIC_BLOCK instead of BASIC_BLOCK.
13726
13727 2006-01-11 Richard Guenther <rguenther@suse.de>
13728
13729 PR tree-optimization/25734
13730 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
13731 stop propagation after successful propagation to the LHS.
13732
13733 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
13734
13735 * basic-block.h (control_flow_graph): Change the type of
13736 x_basic_block_info to VEC(basic_block,gc) *.
13737 (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
13738 basic_block_info.
13739 (SET_BASIC_BLOCK): New.
13740 * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
13741 instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
13742 * cfgbuild.c (find_basic_blocks): Likewise.
13743 * cfglayout.c (fixup_reorder_chain): Likewise.
13744 * cfgrtl.c (create_basic_block_structure,
13745 rtl_create_basic_block): Likewise.
13746 * ifcvt.c (find_if_case_1): Likewise.
13747 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
13748 Likewise.
13749
13750 2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
13751
13752 * Makefile.in: Removed rotted odf.c entry.
13753
13754 2006-01-11 Hans-Peter Nilsson <hp@axis.com>
13755
13756 PR target/25706
13757 * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
13758 ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
13759 ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
13760 output pattern modifier, not %e.
13761 * config/cris/cris.c (cris_op_str): Update comment about pattern
13762 modifier.
13763 (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
13764 before falling through into...
13765 <case 'E'>: Redefined from old 'e' case.
13766
13767 2006-01-11 Jan Hubicka <jh@suse.cz>
13768
13769 PR target/25042
13770 * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
13771
13772 2006-01-11 Jan Hubicka <jh@suse.cz>
13773
13774 * i386.h (TARGET_DECOMPOSE_LEA): Kill.
13775 * i386.c (x86_decompose_lea): Kill.
13776 (ix86_rtx_costs): Kill.
13777
13778 2006-01-11 Jan Hubicka <jh@suse.cz>
13779
13780 * cgraph.c (cgraph_insert_node_to_hashtable): New function.
13781 * cgraph.h (cgraph_node): Add inline_decl.
13782 (cgraph_insert_node_to_hashtable): Declare.
13783 (save_inline_function_body): Declare.
13784 * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
13785 clones.
13786 (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
13787 (cgraph_function_versioning): Update call of tree_function_versioning.
13788 (save_inline_function_body): New function.
13789 * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
13790 saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
13791 * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
13792 (cgraph_default_inline_p): Likewise.
13793 (cgraph_decide_inlining_incrementally): Likewise.
13794 * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
13795 (copy_bb): Kill saving; do updating of clones.
13796 (copy_cfg_body): Kill saving.
13797 (initialize_inlined-parameters): Likewise.
13798 (expand_call_inline): Likewise.
13799 (save_body): Kill.
13800 (tree_function_versioning): New parameter "update_clones".
13801 (inlining_p): Kill saving.
13802 * tree-inline.h (tree_function_versioning): Update prototype.
13803 * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
13804 saving.
13805
13806 2006-01-11 Ian Lance Taylor <ian@airs.com>
13807
13808 * combine.c (struct undo): Remove is_int. Enumify types of undos.
13809 Allow undoing set of machine mode.
13810 (do_SUBST): Use enums instead of is_int.
13811 (do_SUBST_MODE): New function.
13812 (SUBST_MODE): New macro.
13813 (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
13814 reg and trying to replace reg_regno_rtx with a new register.
13815 (undo_all): Use new enums, handle undoing a PUT_MODE change.
13816 (simplify_set): Use SUBST_MODE.
13817 (distribute_notes): Remove code that tried to update reg notes
13818 for regno_reg_rtx changes.
13819
13820 2006-01-11 Paolo Bonzini <bonzini@gnu.org>
13821
13822 PR tree-optimization/23109
13823 PR tree-optimization/23948
13824 PR tree-optimization/24123
13825
13826 * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
13827 * tree-cfg.c (single_noncomplex_succ): New.
13828 * tree-flow.h (single_noncomplex_succ): Declare it.
13829 * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
13830 * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
13831 (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
13832 insert_bb, register_division_in, insert_reciprocals,
13833 replace_reciprocal, free_bb): New.
13834 (execute_cse_reciprocals_1): Rewritten.
13835 (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
13836 Do not commit any edge insertion. Always compute dominators and
13837 create the allocation pool.
13838 * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
13839 * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
13840 * targhooks.c (default_min_divistions_for_recip_mul): New.
13841 * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
13842 * passes.c (init_optimization_passes): Run recip after tree loop
13843 optimizations.
13844 * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
13845
13846 2006-01-11 Danny Berlin <dberlin@dberlin.org>
13847 Kenneth Zadeck <zadeck@naturalbridge.com>
13848
13849 * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
13850 DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
13851 DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
13852 DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
13853 DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
13854 DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
13855 DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
13856 DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
13857 DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
13858 DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
13859 DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
13860 DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
13861 DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
13862 DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
13863 DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
13864 DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
13865 DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
13866 DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
13867 DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
13868 DF_SCAN_POST_ALLOC): New macros.
13869 (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
13870 df_free_bb_function, df_local_compute_function, df_init_function,
13871 df_dataflow_function, df_confluence_function_0,
13872 df_confluence_function_n, df_transfer_function,
13873 df_finalizer_function, df_free_function, df_dump_problem_function,
13874 df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
13875 df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
13876 df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
13877 df_urec_bb_info, ) New types.
13878 (df_invalidated_by_call, df_all_hard_regs, df_state) New public
13879 variables.
13880 (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
13881 df_analyze_simple_change_some_blocks,
13882 df_analyze_simple_change_one_block, df_compact_blocks,
13883 df_bb_replace, df_bb_regno_last_use_find,
13884 df_bb_regno_first_def_find, df_bb_regno_last_def_find,
13885 df_insn_regno_def_p, df_find_def, df_find_use,
13886 df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
13887 df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
13888 df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
13889 debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
13890 debug_df_chain, df_get_dependent_problem, df_chain_create,
13891 df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
13892 df_grow_bb_info, df_chain_dump, df_print_bb_index,
13893 df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
13894 df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
13895 df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
13896 df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
13897 df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
13898 df_rescan_blocks, df_ref_create, df_get_artificial_defs,
13899 df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
13900 df_ref_remove, df_insn_refs_delete, df_refs_delete,
13901 df_reorganize_refs, df_set_state, df_hard_reg_init,
13902 df_read_modify_subreg_p) New public functions.
13903 * df-core.c: The core dataflow solver and glue routines for rtl
13904 dataflow.
13905 (df_init, df_add_problem, df_set_blocks, df_finish,
13906 df_hybrid_search_forward, df_hybrid_search_backward,
13907 df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
13908 df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
13909 df_bb_regno_last_use_find, df_bb_regno_first_def_find,
13910 df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
13911 df_reg_defined, df_find_use, df_reg_used, df_dump,
13912 df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
13913 df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
13914 debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
13915 debug_df_useno, reset_df_after_reload): New functions.
13916 * df-scan.c: The scanning fuctions, once in df.c, completely
13917 rewritten so that they now fully model the functionality of
13918 register usage at the backend.
13919 (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
13920 df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
13921 df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
13922 df_grow_insn_info, df_rescan_blocks, df_ref_create,
13923 df_get_artificial_defs, df_get_artificial_uses,
13924 df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
13925 df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
13926 df_refs_delete, df_reorganize_refs, df_set_state,
13927 df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
13928 df_def_record_1, df_defs_record, df_uses_record,
13929 df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
13930 df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
13931 df_record_exit_block_uses, df_hard_reg_init): New functions.
13932
13933 * df-problems.c: Seven concrete dataflow problems that use the
13934 scanning in df-scan.c and are solved by the engine in df-core.c.
13935 (df_get_dependent_problem, df_chain_create, df_chain_unlink,
13936 df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
13937 df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
13938 df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
13939 df_ru_free_bb_info, df_ru_alloc,
13940 df_ru_bb_local_compute_process_def,
13941 df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
13942 df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
13943 df_ru_transfer_function, df_ru_free, df_ru_dump,
13944 df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
13945 df_rd_free_bb_info, df_rd_alloc,
13946 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
13947 df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
13948 df_rd_transfer_function, df_rd_free, df_rd_dump,
13949 df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
13950 df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
13951 df_lr_local_compute, df_lr_init, df_lr_confluence_0,
13952 df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
13953 df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
13954 df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
13955 df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
13956 df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
13957 df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
13958 df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
13959 df_urec_mark_reg_change, df_urec_check_earlyclobber,
13960 df_urec_mark_reg_use_for_earlyclobber,
13961 df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
13962 df_urec_local_compute, df_urec_init, df_urec_local_finalize,
13963 df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
13964 df_urec_dump, df_urec_add_problem, df_chain_alloc,
13965 df_chain_create_bb_process_use, df_chain_create_bb,
13966 df_chain_finalize, df_chain_free, df_chains_dump,
13967 df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
13968 df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
13969 df_reg_lifetime): New functions.
13970 * df.c: Deleted file.
13971 * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
13972 consistent with new df api.
13973 * modulo-sched.c (sms_schedule, rest_of_handle_sms,
13974 rest_of_handle_sms): Ditto.
13975 * web.c (unionfind_union, union_defs, entry_register, web_main):
13976 Ditto.
13977 * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
13978 invariant_expr_equal_p, find_defs, check_dependencies,
13979 find_invariant_insn, find_invariants_to_move, move_invariant_reg,
13980 free_inv_motion_data, move_loop_invariants): Ditto.
13981 * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
13982 Update dependencies.
13983 (odf.c): Added defective entry that was deleted later in day.
13984 * sched-deps.c (sched_analyze_1): Ditto.
13985
13986 2006-01-11 Zdenek Dvorak <dvorakz@suse.cz>
13987
13988 * tree-ssa-operands.c (get_expr_operands): Record addressable
13989 variables directly. Do not call add_stmt_operands for CONST_DECLs
13990 and ARRAY_DECLs.
13991 (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
13992 (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
13993
13994 2006-01-11 Ben Elliston <bje@au.ibm.com>
13995
13996 * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
13997 function returns true in the positive case.
13998
13999 2006-01-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14000
14001 PR target/20754
14002 * config/pa/pa.md: Create separate 32 and 64-bit move patterns
14003 for SI, DI, SF and DF modes. Add alternatives to copy between
14004 general and floating point registers to the 32-bit patterns.
14005 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
14006 * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
14007 (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
14008 generating 64-bit code.
14009 * config/pa/pa.c (output_move_double): Handle copies between general
14010 and floating registers.
14011
14012 2006-01-10 Stuart Hastings <stuart@apple.com>
14013
14014 * config/i386/i386.md (set_got): Update.
14015 (set_got_labelled): New. (UNSPEC_LD_MPIC): New.
14016 (builtin_setjmp_receiver): Mach-O support.
14017 * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
14018 (GOT_SYMBOL_NAME): Define.
14019 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
14020 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
14021 * config/i386/i386.c (override_options): Revise for Darwin.
14022 (USE_HIDDEN_LINKONCE): Enable for Mach-O. (ix86_file_end): Mach-O
14023 support. (darwin_x86_file_end): New. (output_set_got): Add label
14024 parameter, revise for Mach-O. (x86_output_mi_thunk): Likewise.
14025 * config/i386/i386-protos.h (output_set_got): Likewise.
14026 * config/darwin.c (machopic_legitimize_pic_address): Update
14027 regs_ever_live[].
14028
14029 2006-01-10 Kaz Kojima <kkojima@gcc.gnu.org>
14030
14031 * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
14032 when MODE isn't BLKmode.
14033
14034 2006-01-10 Eric Botcazou <ebotcazou@libertysurf.fr>
14035
14036 PR rtl-optimization/25367
14037 * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
14038
14039 2006-01-10 Hans-Peter Nilsson <hp@axis.com>
14040
14041 PR target/25718
14042 * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
14043 for a negative bound.
14044
14045 2006-01-10 Richard Guenther <rguenther@suse.de>
14046
14047 * tree-ssa-structalias.c (get_constraint_for_component_ref):
14048 Never override with anything constraint.
14049
14050 2006-01-10 Jan Beulich <jbeulich@novell.com>
14051
14052 * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
14053 256 bits when optimize_size.
14054
14055 2006-01-10 Jan Beulich <jbeulich@novell.com>
14056
14057 * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
14058 MASK_ALIGN_DOUBLE.
14059 * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
14060 * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
14061 arguments.
14062
14063 2006-01-10 Ben Elliston <bje@au.ibm.com>
14064
14065 * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
14066 float modes.
14067 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
14068 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
14069 (USE_FP_FOR_ARG): Reject decimal float modes.
14070 (function_arg_advance): Likewise.
14071 (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
14072 (rs6000_handle_altivec_attribute): Do not permit decimal floating
14073 point types in AltiVec vectors.
14074 (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
14075 (rs6000_libcall_value): Likewise.
14076
14077 2006-01-09 Bob Wilson <bob.wilson@acm.org>
14078
14079 * config/xtensa/ieee754-df.S: New file.
14080 * config/xtensa/ieee754-sf.S: New file.
14081 * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
14082 (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
14083 * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
14084
14085 2006-01-09 Kazu Hirata <kazu@codesourcery.com>
14086
14087 * config/sh/predicates.md (binary_float_operator,
14088 binary_logical_operator, commutative_float_operator,
14089 equality_comparison_operator, greater_comparison_operator,
14090 less_comparison_operator, logical_operator,
14091 noncommutative_float_operator, shift_operator,
14092 symbol_ref_operand, unary_float_operator): Remove redundant
14093 conditionals.
14094
14095 2006-01-09 Jeff Law <law@redhat.com>
14096
14097 * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
14098 code to propagate the RHS of a cast into COND_EXPR_COND. Remove
14099 now unused arguments. Callers updated.
14100 (eliminate_redundant_computations): Remove now unused arguments,
14101 callers updated.
14102 (local_fold): Remove, no longer used.
14103 (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
14104 and moved to...
14105 * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
14106 (simplify_cond): New function.
14107 (forward_propagate_into_cond): Call simplify_cond.
14108
14109 2006-01-09 Alexandre Oliva <aoliva@redhat.com>
14110
14111 * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
14112 (*vec_extractv2di_1_sse): New.
14113
14114 2006-01-09 Ben Elliston <bje@au.ibm.com>
14115
14116 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
14117
14118 2006-01-08 Richard Guenther <rguenther@suse.de>
14119
14120 * tree-ssa-structalias.c (get_constraint_for): Remove
14121 anyoffset argument.
14122 (get_constraint_for_component_ref): Likewise.
14123 (do_deref): Likewise.
14124 (get_constraint_for): Likewise.
14125 (do_structure_copy): Likewise.
14126 (handle_ptr_arith): Likewise.
14127 (find_func_aliases): Likewise. Remove unused need_anyoffset
14128 variable.
14129
14130 2006-01-08 J"orn Rennecke <joern.rennecke@st.com>
14131 Kaz Kojima <kkojima@gcc.gnu.org>
14132
14133 * config/sh/sh.h (CONST_OK_FOR_K16): Define.
14134 (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
14135 (EXTRA_CONSTRAINT_C16): Remove.
14136 (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
14137 (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
14138 EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
14139 * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
14140 constants of SHmedia. Handle nested constant expressions of
14141 SHmedia correctly.
14142 (andcosts): Fix the costs for SHmedia constants.
14143 (sh_rtx_costs): Take account of outer_code for SHmedia constants.
14144 * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
14145 (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
14146 (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
14147 (movv4hi_i, movv2si_i): Likewise.
14148 (movsi_const): Adjust the second operand of ior so to match with
14149 the Csu constraint.
14150 (movdi_const, movdi_const_32bit): Likewise.
14151 (movdi_const_16bit+1): Don't sign-extend LOW.
14152 (movdi_const_16bit+2): Likewise. Remove the zero_extend and truncate
14153 step.
14154 (*double_shori): Fix the split condition. Use GEN_INT instead
14155 of get_int_mode calls. Mask lower 16-bit of the argument of
14156 the last GEN_INT.
14157 (sym2GOTPLT): Remove.
14158 (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
14159 gen_rtx_UNSPEC.
14160 * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
14161 instead of EXTRA_CONSTRAINT_C16.
14162
14163 2006-01-07 Ian Lance Taylor <ian@airs.com>
14164 David Edelsohn <edelsohn@gnu.org>
14165
14166 PR rtl-optimization/25662
14167 * optabs.c (simplify_expand_binop): Use simplify_binary_operation
14168 for constant operands instead of simplify_gen_binary.
14169 * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
14170 after trying simplify_binary_operation
14171
14172 2006-01-06 Daniel Berlin <dberlin@dberlin.org>
14173
14174 * tree.c (iterative_hash_expr): Hash decls based on UID.
14175
14176 2006-01-06 Eric Christopher <echristo@apple.com>
14177
14178 * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
14179 (TARGET_UNWIND_EMIT): Fix spelling.
14180 * target.h (gcc_target): Add except_table_label.
14181 * except.c (output_function_exception_table): Use.
14182 * varasm.c (default_emit_except_table_label): New.
14183 * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
14184 define.
14185 (asm_out): Add here.
14186 * output.h (default_emit_except_table_label): Prototype.
14187 * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
14188 * config/darwin.c (darwin_emit_except_table_label): Define.
14189 * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
14190
14191 2006-01-06 Zdenek Dvorak <dvorakz@suse.cz>
14192
14193 PR tree-optimization/18527
14194 * tree-ssa-loop-niter.c (number_of_iterations_cond,
14195 number_of_iterations_special, number_of_iterations_exit):
14196 Move base and step of an iv to a single structure. Add
14197 no_overflow flag, and use it in # of iterations analysis.
14198 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
14199 folded_casts argument.
14200 (simple_iv): Pass base and step in a structure. Set no_overflow
14201 flag.
14202 (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
14203 Evaluate expensiveness of computing # of iterations instead of
14204 the final expression.
14205 * tree-scalar-evolution.h (affine_iv): New structure.
14206 (simple_iv): Declaration changed.
14207 * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
14208 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
14209 find_givs_in_stmt): Changed due to simple_iv change.
14210
14211 2006-01-06 Jeff Law <law@redhat.com>
14212
14213 PR ada/24994
14214 * tree-cfg.c (bsi_replace): Rename final argument from
14215 PRESERVE_EH_INFO to UPDATE_EH_INFO. Fix typo in last
14216 change (stmt -> orig_stmt).
14217 * tree-eh.c (verify_eh_throw_stmt_node): New function.
14218 (bsi_remove): Add new argument. Remove EH information
14219 if requested.
14220 (verify_eh_throw_table_statements): New function.
14221 (bsi_remove): Add new argument REMOVE_EH_INFO. All callers
14222 updated.
14223 * tree-optimize.c (execute_free_cfg_annotations): Verify
14224 the EH throw statement table after removing annotations.
14225 * except.h (verify_eh_throw_table_statements): Prototype.
14226 * tree-flow.h (bsi_remove): Update prototype.
14227 * tree-vrp.c (remove_range_assertions): Add new argument to
14228 bsi_remove call.
14229 * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
14230 * tree-complex.c (expand_complex_div_wide): Likewise.
14231 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
14232 * tree-tailcall.c (eliminate_tailcall): Likewise.
14233 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
14234 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
14235 * tree-nrv.c (tree_nrv): Likewise.
14236 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
14237 * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
14238 (combine_blocks): Likewise.
14239 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
14240 * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
14241 (cleanup_control_flow): Likewise.
14242 (remove_forwarder_block): Likewise.
14243 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
14244 * tree-sra.c (sra_replace): Likewise.
14245 * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
14246 (forward_propagate_single_use_vars): Likewise.
14247 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
14248 * tree-inline.c (expand_call_inline): Likewise.
14249 * tree-vect-transform.c (vect_transform_loop): Likewise.
14250 * tree-outof-ssa.c (rewrite_trees): Likewise.
14251 * tree-cfg.c (make_goto_expr_edges): Likewise.
14252 (cleanup_dead_labels): Likewise.
14253 (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
14254 (bsi_move_before, bsi_move_after): Likewise.
14255 (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
14256 (tree_redirect_edge_and_branch, tree_split_block): Likewise.
14257
14258 2006-01-06 Andrew Pinski <pinskia@physics.uc.edu>
14259
14260 PR tree-opt/25528
14261 * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
14262 and IMAGPART_EXPR.
14263 * tree-flow-inline.h (var_can_have_subvars): Handle complex types
14264 on non gimple variables. Also add checks at the top for decls and
14265 mtags.
14266 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
14267 complex types.
14268 * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
14269 and IMAGPART_EXPR for creating MUST_DEFs.
14270 (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
14271 and NAME_MEMORY_TAG separately from the DECLs.
14272
14273 2006-01-06 Richard Guenther <rguenther@suse.de>
14274
14275 * tree-dfa.c (mark_new_vars_to_rename): Create stmt
14276 annotation, if necessary.
14277 * tree-ssa-pre.c (create_expression_by_pieces): Remove
14278 redundant calls to update_stmt.
14279 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
14280 Likewise.
14281
14282 2006-01-05 Richard Henderson <rth@redhat.com>
14283
14284 * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
14285
14286 2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
14287
14288 * c-typeck.c: Update copyright date.
14289
14290 2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
14291
14292 * c-typeck.c (build_c_cast): Always warn when casting
14293 from a pointer to an integer of different size, even if
14294 the node was constant.
14295
14296 2006-01-05 Richard Guenther <rguenther@suse.de>
14297
14298 PR tree-optimization/22555
14299 * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
14300 if one structure field is an array.
14301 * tree-ssa-operands.c (get_expr_operands): Continue scanning
14302 operands even if we found a subvar, but ignore VOPs in this
14303 case.
14304 * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
14305 for renaming.
14306 * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
14307
14308 2006-01-05 Richard Earnshaw <rearnsha@arm.com>
14309
14310 PR middle-end/24998
14311 * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
14312
14313 2006-01-05 Richard Guenther <rguenther@suse.de>
14314 Diego Novillo <dnovillo@redhat.com>
14315
14316 * tree-pass.h (TODO_remove_unused_locals): Define.
14317 * gimple-low.c (expand_var_p, remove_useless_vars,
14318 pass_remove_useless_vars): Remove. Update all users.
14319 * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
14320 (remove_unused_locals): New function.
14321 * tree-flow.h (remove_unused_locals): Declare.
14322 * passes.c (execute_todo): Call remove_unused_locals if
14323 TODO_remove_unused_locals is set.
14324 * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
14325 * tree-ssa-dce.c (pass_dce): Likewise.
14326 * tree-outof-ssa.c (pass_del_ssa): Likewise.
14327
14328 2006-01-05 Richard Guenther <rguenther@suse.de>
14329
14330 * tree-flow.h (struct fieldoff): Decompose field to
14331 type, size and decl.
14332 * tree-ssa-alias.c (create_sft): Take type as parameter.
14333 (create_overlap_variables_for): Store type, size and decl
14334 in the fieldoff structure.
14335 * tree-ssa-structalias.c (fieldoff_compare): Adjust users
14336 of struct fieldoff.
14337 (push_fields_onto_fieldstack): Likewise.
14338 (create_variable_info_for): Likewise. Use offset for the
14339 SFT name if the decl is not available.
14340
14341 2006-01-04 Paul Brook <paul@codesourcery.com>
14342
14343 * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
14344
14345 2006-01-04 Daniel Berlin <dberlin@dberlin.org>
14346
14347 * lambda-code.c (can_put_in_inner_loop): Relax
14348 restrictions.
14349 (can_put_after_inner_loop): New function.
14350 (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
14351 (perfect_nestify): Change to make copies and modify uses.
14352
14353 2006-01-04 Richard Henderson <rth@redhat.com>
14354
14355 Merge from gomp branch:
14356 * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
14357 via integer constant.
14358 (pragma_lex): Remove.
14359 * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
14360 rather than parsing it.
14361 * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
14362 handle_pragma_extern_prefix): Add %< %> quotes.
14363 (registered_pragmas): New.
14364 (c_register_pragma_1): New.
14365 (c_register_pragma): Use it.
14366 (c_register_pragma_with_expansion): Likewise.
14367 (c_invoke_pragma_handler): New.
14368 (init_pragma): Use cpp_register_deferred_pragma directly for
14369 pch_preprocess.
14370 * c-pragma.h (enum pragma_kind): New.
14371 (pragma_handler): New.
14372 (c_invoke_pragma_handler): Declare.
14373 * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
14374 CPP_PRAGMA_EOL.
14375 * c-common.h (c_common_pch_pragma): Update decl.
14376 * Makefile.in (c-parser.o): Update dependencies.
14377 (GTFILES): Add c-pragma.h.
14378 * c-parser.c (struct c_token): Add pragma_kind.
14379 (struct c_parser): Add in_pragma.
14380 (c_lex_one_token): Always initialize keyword and pragma_kind.
14381 Extract data for CPP_PRAGMA.
14382 (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
14383 (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
14384 Don't allow CPP_PRAGMA_EOL if in_pragma.
14385 (c_parser_consume_pragma): New.
14386 (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
14387 (c_parser_skip_to_end_of_parameter): Likewise.
14388 (c_parser_skip_to_end_of_block_or_statement): Likewise.
14389 (c_parser_skip_to_pragma_eol): New.
14390 (c_parser_external_declaration): Handle CPP_PRAGMA.
14391 (c_parser_compound_statement_nostart): Likewise.
14392 (c_parser_statement_after_labels): Likewise.
14393 (c_parser_pragma): New.
14394 (pragma_lex): Likewise.
14395 (c_parser_pragma_pch_preprocess): New.
14396 (c_parser_new): Merge into ...
14397 (c_parse_file): ... here. Call c_parser_pragma_pch_preprocess.
14398
14399 2006-01-04 Jeff Law <law@redhat.com>
14400
14401 PR ada/24994
14402 * tree-cfg.c (bsi_replace): Remove the original statement
14403 from the EH throw statement table.
14404
14405 2006-01-04 Jakub Jelinek <jakub@redhat.com>
14406
14407 * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
14408 make the prototype extern "C" and add throw ().
14409
14410 PR target/25554
14411 * config/i386/i386.md (testqi_ext_3): Ensure len is positive
14412 and pos non-negative and pos + len <= 32.
14413 (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
14414 drop pos + len < HOST_BITS_PER_WIDE_INT test.
14415 (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
14416
14417 PR c/25559
14418 * c-common.c (handle_vector_size_attribute): Reject zero vector size
14419 as well as sizes not multiple of component size.
14420
14421 PR debug/25562
14422 * function.c (instantiate_expr): New function.
14423 (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
14424 walk its DECL_VALUE_EXPR with instantiate_expr.
14425
14426 * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
14427 DW_OP_deref{,_size} if address isn't going to be added.
14428
14429 2006-01-04 Ben Elliston <bje@au.ibm.com>
14430
14431 * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
14432 * config/fp-bit.c: Likewise.
14433
14434 2006-01-03 Daniel Berlin <dberlin@dberlin.org>
14435
14436 * dominance.c: Add comment about why we use DFS numbering
14437 of dominance tree.
14438
14439 2006-01-03 Jakub Jelinek <jakub@redhat.com>
14440 Richard Henderson <rth@redhat.com>
14441
14442 Merge from gomp-branch:
14443 * varasm.c (assemble_variable): Handle thread-local COMMON data.
14444 * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
14445
14446 2006-01-03 Paolo Bonzini <bonzini@gnu.org>
14447
14448 PR rtl-optimization/25578
14449 * combine.c (combine_simplify_rtx, force_to_mode): Don't
14450 pass a parameter to simplify_shift_const if changing ASHIFTRT
14451 to LSHIFTRT.
14452
14453 2006-01-03 Adrian Straetling <straetling@de.ibm.com>
14454
14455 * builtins.c (get_builtin_sync_mem): New function.
14456 (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
14457 expand_builtin_lock_test_and_set, expand_builtin_lock_release):
14458 Call get_builtin_sync_mem to generate mem rtx.
14459
14460 2006-01-03 Richard Guenther <rguenther@suse.de>
14461
14462 PR c/25183
14463 * stmt.c (add_case_node): Make sure to clear overflow flags
14464 from ranges.
14465
14466 2006-01-03 Jakub Jelinek <jakub@redhat.com>
14467
14468 Merge from gomp-branch.
14469 * config/sparc/sync.md: New file.
14470 * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
14471 UNSPECV_LDSTUB): New constants.
14472 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
14473 * config/sparc/predicates.md (memory_reg_operand): New predicate.
14474 * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
14475 prototype.
14476
14477 2006-01-03 Roger Sayle <roger@eyesopen.com>
14478
14479 * combine.c (reg_subword_p): New predicate to test whether the
14480 destination of a set refers to a subword/piece of a register.
14481 (try_combine): Generalize the code to merge the setting of a
14482 pseudo to a constant followed by a set of a subword of that
14483 register to a constant.
14484
14485 2006-01-03 Kazu Hirata <kazu@codesourcery.com>
14486
14487 * basic-block.h (control_flow_graph): Change the type of
14488 x_label_to_block_map to VEC(basic_block,gc) *.
14489 * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
14490 set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
14491
14492 * tree-ssa-propagate.c (cfg_blocks): Change the type to
14493 VEC(basic_block,heap) *.
14494 (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
14495 ssa_prop_fini): Adjust the uses of cfg_blocks.
14496
14497 2006-01-03 Steven Bosscher <stevenb.gcc@gmail.com>
14498
14499 * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
14500 COMPONENT_REFs.
14501 * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
14502 hashing trees instead of a pointer hash.
14503 (mem_attrs_htab_eq): Do a deep compare instead of a pointer
14504 compare for MEM_EXPR.
14505
14506 PR rtl-optimization/25130
14507 * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
14508 when comparing MEMs for GCSE
14509
14510 2006-01-03 Ben Elliston <bje@au.ibm.com>
14511
14512 * targhooks.h (default_decimal_float_supported_p): Declare.
14513 * targhooks.c (default_decimal_float_supported_p): Define.
14514 * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
14515 `default_decimal_float_supported_p'.
14516 * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
14517
14518 2006-01-02 Adam Nemet <anemet@caviumnetworks.com>
14519
14520 * combine.c (apply_distributive_law <SUBREG>): Check
14521 TRULY_NOOP_TRUNCATION.
14522
14523 2006-01-02 Geoffrey Keating <geoffk@apple.com>
14524
14525 * dwarf2out.c (have_switched_text_section): Delete.
14526 (have_multiple_function_sections): New.
14527 (have_location_lists): Make 'bool'.
14528 (add_AT_loc_list): Use 'true' not '1'.
14529 (dwarf2out_switch_text_section): Set have_multiple_function_sections.
14530 (output_loc_list): Use have_multiple_function_sections.
14531 (output_ranges): Likewise.
14532 (dwarf2out_begin_function): Set have_multiple_function_sections if
14533 necessary.
14534 (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
14535 Check function_section rather than DECL_SECTION_NAME.
14536 (dwarf2out_finish): Use have_multiple_function_sections.
14537 Don't clear have_location_lists.
14538
14539 2006-01-02 Eric Botcazou <ebotcazou@adacore.com>
14540 Jan Hubicka <jh@suse.cz>
14541
14542 * cfglayout.c (fixup_reorder_chain): Remove kludge for the
14543 case of conditional jump jumping to the next instruction.
14544 * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
14545 cases of conditional jump jumping to the next instruction.
14546
14547 2006-01-02 Jan Hubicka <jh@suse.cz>
14548
14549 * i386.c (*_cost): Add COSTS_N_INSNS.
14550 (ix86_rtx_costs): Do not use COSTS_N_INSNS.
14551
14552 2006-01-02 Paolo Bonzini <bonzini@gnu.org>
14553
14554 PR target/25259
14555 * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
14556
14557 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
14558
14559 * config/arm/arm.c (all_fpus): Fix comment typo.
14560 * config/darwin.c: Likewise.
14561 * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
14562 * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
14563 * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
14564
14565 2006-01-01 David Edelsohn <edelsohn@gnu.org>
14566
14567 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
14568 (rs6000_split_compare_and_swapqhi): New.
14569 * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
14570 (sync_compare_and_swapqhi_internal): New.
14571 * config/rs6000/rs6000-protos.h: Declare.