OSDN Git Service

e805a395fb067dba47b03e2f7dd8d1505ba39da9
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-05-18  Mike Stump  <mrs@apple.com>
2
3         Fix up vla, vm and [*] sematics.
4
5         PR c/18740
6         PR c/7948
7         PR c/25802
8         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
9         (c_vla_unspec_p): Add.
10         (c_vla_type_p): Add.
11         * c-decl.c (struct c_scope): Add had_vla_unspec.
12         (build_array_declarator): Add support for [*].
13         (grokdeclarator): Likewise.
14         (grokparms): Likewise.
15         (get_parm_info): Likewise.
16         * c-objc-common.c (c_vla_unspec_p): Likewise.
17         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
18         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
19         typeof when argument is a variably modified type not inside sizeof or alignof.
20         (c_parser_direct_declarator_inner): Propagate errors.
21         (c_parser_sizeof_expression): Add support for [*].
22         * c-typeck.c (c_vla_type_p): Add.
23         (composite_type): Add support for vla compositing.
24         (comptypes_internal): Add support for vla compatibility.
25         (c_expr_sizeof_expr): Evaluate vla arguments.
26         * tree.c (variably_modified_type_p): Update comment for [*].
27
28 2006-05-18  Michael Matz  <matz@suse.de>
29
30         PR target/27599
31         * config.host: Make assignments to host_xmake_file cumulative.
32         * config.host (*-darwin*): Test $host, not $target.
33
34 2006-05-12  Stuart Hastings  <stuart@apple.com>
35
36         * config/i386/i386.opt (-mstackrealign): New flag.
37         * config/i386/i386.c (force_align_arg_pointer): New attribute.
38         (ix86_handle_cconv_attribute): Emit error when
39         force_align_arg_pointer attribute collides with too many regparms.
40         (ix86_function_regparm): Limit regparms when used with
41         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
42         Support stack-realigning prologue in non-main functions.  Emit
43         warning for nested functions under -mstackrealign, emit error for
44         nested functions with force_align_arg_pointer attribute.
45         * doc/extend.texi (force_align_arg_pointer): Document it.
46         * doc/invoke.texi (-mstackrealign): Document it.
47
48 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
49
50         PR rtl-optimization/27477
51         * combine.c (try_combine): Don't split a parallel consisting
52         of two sets into two individual sets if both sets reference
53         cc0.
54
55 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
56
57         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
58         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
59
60         * doc/options.texi (VarExists): Updated.
61
62 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
63
64         * unwind-dw2.c: Add declarations for uw_update_context and
65         uw_frame_state_for.
66         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
67         detected, advance frame state and context once to skip over stub.
68
69 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
70
71         PR middle-end/20256
72         PR middle-end/26435
73         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
74         Call rewrite_into_loop_closed_ssa only when something changed.
75         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
76         * lambda-code.c (can_convert_to_perfect_nest): Declared.
77         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
78         Test for perfect_nest_p here.  Fix formating.
79         (replace_uses_equiv_to_x_with_y): Fix formating.
80         (stmt_uses_op): Removed.
81         (can_convert_to_perfect_nest): Removed loopivs parameter.
82         Complete the test by checking the scalar dependences.
83         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
84         Fix formating.
85
86 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
87
88         PR bootstrap/22541
89         From Dan Kegel <dank@kegel.com>:
90         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
91
92 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
93
94         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
95         if the element type is variably modified without recursing.
96
97 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
98
99         PR middle-end/27332
100         * tree-loop-linear.c (try_interchange_loops): Test for
101         no data dependences.
102
103 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
104
105         PR tree-optimization/27548
106         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
107         range of ssa names that appear on abnormal edges.
108         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
109         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
110
111 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
112
113         PR middle-end/27620
114         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
115
116 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
117
118         PR middle-end/27415
119         * tree.h (OMP_PARALLEL_COMBINED): Define.
120         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
121         (new_omp_context): Add is_combined_parallel argument.
122         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
123         new_omp_context caller.
124         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
125         Adjust gimplify_scan_omp_clauses callers.
126         (omp_is_private): Issue errors if iteration variable is firstprivate
127         or reduction in the current context.
128         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
129         on combined parallel workshare constructs.
130
131 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
132
133         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
134         (gcc-options.o): New rule.
135
136         * optc-gen.awk: Protect variables for gcc-options.o with
137         #ifdef GCC_DRIVER/#endif.
138
139 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
140
141         Fix PR tree-optimization/27373
142         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
143          (forward_propagate_addr_expr): Update call.
144
145 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
146
147         * doc/options.texi: Move the Negative option.
148
149 2006-05-16  Richard Guenther  <rguenther@suse.de>
150
151         PR tree-optimization/22303
152         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
153         from STRING_CSTs.
154         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
155         ccp_fold did not simplify the statement.
156
157 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
158
159         PR driver/26885
160         * Makefile.in (GCC_OBJS): New.
161         (OBJS-common): Add opts-common.o.
162         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
163         (cpp$(exeext)): Likewise.
164         (gcc.o): Also depend on opts.h.
165         (opts-common.o): New.
166
167         * common.opt (gcoff): Add Negative(gdwarf-2).
168         (gdwarf-2): Add Negative(gstabs).
169         (gstabs): Add Negative(gstabs+).
170         (gstabs+): Add Negative(gvms).
171         (gvms): Add Negative(gxcoff).
172         (gxcoff): Add Negative(gxcoff+).
173         (gxcoff+): Add Negative(gcoff).
174         * config/i386/i386.opt (m32): Add Negative(m64).
175         (m64): Add Negative(m32).
176
177         * doc/options.texi: Document the Negative option.
178
179         * gcc.c: Include "opts.h".
180         (main): Call prune_options after expandargv.
181
182         * optc-gen.awk: Generate common declarations for all flag
183         variables in options.c. Output the neg_index field.
184
185         * opts.c (find_opt): Moved to ...
186         * opts-common.c: Here. New file.
187
188         * opts.h (cl_option): Add a neg_index field.
189         (find_opt): New.
190         (prune_options): Likewise.
191
192 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
193
194         PR middle-end/27573
195         * omp-low.c (expand_omp_parallel): Don't assert
196         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
197         instead search for it.
198
199         PR c/27499
200         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
201         is signed.
202
203 2006-05-16  Andreas Schwab  <schwab@suse.de>
204
205         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
206         defmac.
207
208 2006-05-15  Roger Sayle  <roger@eyesopen.com>
209
210         PR target/26600
211         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
212         integer constants other than zero are only legitimate on TARGET_64BIT.
213         <CONST_VECTOR> Only zero vectors are legitimate.
214         (ix86_cannot_force_const_mem): Integral and vector constants can
215         always be put in the constant pool.
216
217 2006-05-16  DJ Delorie  <dj@redhat.com>
218
219         * crtstuff.c (__dso_handle): Set section from
220         TARGET_LBIGCC_SDATA_SECTION if defined.
221         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
222         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
223
224 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
225
226         PR target/27599
227         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
228         host_xmake_file.
229
230 2006-05-16  Ben Elliston  <bje@au.ibm.com>
231
232         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
233
234 2006-05-15  Per Bothner  <per@bothner.com>
235
236         * tree.c: (last_annotated_node): Use sources_locus typedef.
237         This permits bootstrapping with --enable-mapped-location.
238
239 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
240
241         PR tree-optimization/26830
242         * tree-into-ssa.c (struct ssa_name_info): Add age field.
243         (info_for_ssa_name, current_info_for_ssa_name_age,
244         blocks_to_update): New variables.
245         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
246         (clear_ssa_name_info, initialize_flags_in_bb,
247         mark_block_for_update): New functions.
248         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
249         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
250         prepare_def_site_for): Use mark_block_for_update.
251         (mark_def_interesting): Assert that the processed block is marked in
252         blocks_to_update.  Do not take blocks argument.
253         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
254         argument.
255         (rewrite_update_init_block, rewrite_update_stmt): Only process
256         blocks with statements to rewrite.
257         (delete_update_ssa): Do not clear SSA_NAME_AUX.
258         (update_ssa): Initialize and free blocks_to_update.  Do not
259         clear flags on statements.  Do not use blocks bitmap.
260         * tree.h (SSA_NAME_AUX): Removed.
261         (struct tree_ssa_name): Removed aux field.
262         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
263
264 2006-05-15  Richard Guenther  <rguenther@suse.de>
265
266         PR tree-optimization/27603
267         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
268         Do computations in original type.
269
270 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
271
272         * see.c: Code style changes such as redundant paranthesis,
273         redundant intialization of local variables etc.
274         (see_main): Declared now as static.
275         * doc/invoke.texi: Update that -fsee is not enabled by
276         default at -O3.
277
278 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
279
280         * omp-low.c (check_omp_nesting_restrictions): New function.
281         (scan_omp_1): Call it.
282
283         PR middle-end/27416
284         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
285         construct, return *VAR.
286
287 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
288
289         PR rtl-optimization/27406
290         * bt-load.c (migrate_btr_def): Skip the block having abnormal
291         edges.
292
293 2006-05-14  Roger Sayle  <roger@eyesopen.com>
294
295         PR rtl-optimization/27538
296         * combine.c (expand_compound_operation): Call gen_lowpart
297         before calling simplify_shift_const.
298
299 2006-05-14  Roger Sayle  <roger@eyesopen.com>
300
301         PR rtl-optimization/22563
302         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
303         a fixed width bitfield, always force the intermediates into psuedos.
304
305 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
306
307         PR 27501
308         * mkconfig.sh: Use operator = instead of == for test.
309
310 2006-05-13  Nick Clifton  <nickc@redhat.com>
311
312         * dwarf2out.c (dbx_reg_number): Check return value from
313         LEAF_REG_REMAP and only use it if it is valid.
314         (multiple_reg_loc_descriptor): Likewise.
315
316 2006-05-13  Richard Guenther  <rguenther@suse.de>
317
318         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
319         host_xmake_file.
320
321 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
322
323         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
324         information attached to non-INSNs such as NOTEs.
325         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
326
327 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
328
329         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
330         On contraint.
331         * config/s390/s390.md: Adjust comment describing On constraint.
332
333 2006-05-11  Jan Hubicka  <jh@suse.cz>
334
335         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
336         to be output at -O0.
337
338 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
339
340         PR middle-end/27384
341         * fold-const.c (size_binop): Move sanity check for arguments to
342         the beginning of the function.
343
344         PR middle-end/27488
345         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
346         expression.
347
348 2006-05-11  Richard Guenther  <rguenther@suse.de>
349
350         PR middle-end/27529
351         * fold-const.c (fold_unary): Handle intermediate conversion
352         to a pointer type like intermediate conversion to an integer
353         type in folding of (T1)(T2)var to var.
354         Match the code to the comment in the final conversion for
355         (T1)(T2)var to (T1)var regarding to type precision.  Rather
356         than disallow T1 being of pointer type, assert that both T1
357         and var are of pointer type or not.  Make sure not to fall
358         over the frontends lazyness wrt array to pointer decay though.
359
360 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
361
362         * arm.c (arm_struct_value_rtx): Delete.
363         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
364         (arm_init_cumulative_args): Always initialize nregs to zero.
365
366 2006-05-10  Richard Guenther  <rguenther@suse.de>
367
368         PR tree-optimization/27532
369         * tree-object-size.c (plus_expr_object_size): Fix typo.
370
371 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
372
373         PR target/24949
374         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
375         ashrdi_const, ashrdi3): Use a scratch register.
376
377 2006-05-10  Richard Guenther  <rguenther@suse.de>
378
379         PR tree-optimization/27302
380         * fold-const.c (operand_equal_p): For two comparisons,
381         try comparison of one comparison code swapped if that yields
382         the same code.
383
384 2006-05-10  Ben Elliston  <bje@au.ibm.com>
385
386         * tree-pretty-print.c (pretty_print_string): No need to handle
387         '\0' as a special character.
388
389         * tree.h: Include "hashtab.h".
390         (iterative_hash_expr): Use hashval_t in its prototype.
391         * Makefile.in (TREE_H): Add $(HASHTAB_H).
392
393 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
394
395         PR bootstrap/26872
396         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
397         (hppa*64*-*-hpux11*): Ditto.
398         (hppa[12]*-*-hpux11*): Ditto.
399
400 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
401
402         PR target/26545
403         * config/rs6000/aix41.h (TARGET_64BIT): Define.
404
405 2006-05-09  Michael Matz  <matz@suse.de>
406
407         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
408         host_extra_gcc_objs and host_xmake_file.
409         (<*-*-linux*>): Don't overwrite host_xmake_file.
410         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
411         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
412         (host_detect_local_cpu): Declare.
413         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
414         * config/i386/i386.c (override_options): Handle -mtune=native
415         as -mtune=generic.
416         * config/i386/x-i386: New file.
417         * config/i386/driver-i386.c: New file.
418         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
419         cpu-type "native".
420
421 2006-05-09  Dirk Mueller  <dmueller@suse.de>
422         Richard Guenther  <rguenther@suse.de>
423
424         PR middle-end/27498
425         * fold-const.c (fold_read_from_constant_string): Relax check
426         for matching types to matching modes.
427
428 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
429
430         PR rtl-optimization/27335
431         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
432         loops.
433
434 2006-05-08  Chao-ying Fu  <fu@mips.com>
435             Richard Sandiford  <richard@codesourcery.com>
436
437         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
438         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
439         * config/mips/mips.md (UNSPEC_SCC): New constant.
440         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
441         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
442         (mips_emit_compare): Use it.
443         (mips_expand_vcondv2sf): New function.
444
445 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
446
447         Fix PR tree-optimization/27093
448         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
449         renaming when they become not-used_alone.
450
451 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
452
453         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
454         relocation and relocation stubs.
455
456 2006-05-08  Eric Christopher  <echristo@apple.com>
457
458         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
459         section for ppc.
460
461 2006-05-08  Jan Hubicka  <jh@suse.cz>
462
463         PR middle-end/25962
464         * cgraphunit.c (decide_is_function_needed): When not optimizing even
465         unused static functions are needed.
466
467 2006-05-08  Roger Sayle  <roger@eyesopen.com>
468
469         PR target/27158
470         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
471         of a reg_equiv_constant if the result is a legitimate constant.
472
473 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
474
475         PR target/27277
476         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
477         standard 80387 constants, raise the cost to prevent
478         compress_float_constant() to generate load from memory.
479
480 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
481
482         * config/arm/constraints.md (c): Fix a typo.
483
484         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
485         typos.
486
487 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
488
489         PR target/24879
490         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
491         inline function.
492         (_mm_mwait): Likewise.
493
494         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
495         "mwait".
496         (sse3_monitor): Make it 32bit only.
497         (sse3_monitor64): New. 64bit monitor.
498
499 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
500
501         PR target/27421
502         * config/i386/i386.c (classify_argument): Skip fields with invalid
503         types.
504
505 2006-05-07  Richard Guenther  <rguenther@suse.de>
506
507         PR tree-optimization/27409
508         * tree-ssa-structalias.c (get_constraint_for_component_ref):
509         Do not try to find zero-sized subvars.
510
511 2006-05-07  Richard Guenther  <rguenther@suse.de>
512
513         PR tree-optimization/27136
514         * tree-ssa-loop-niter.c (get_val_for): Correct function
515         comment, assert requirements.
516         (loop_niter_by_eval): Stop processing if the iterated
517         value did not simplify.
518
519 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
520
521         * opts.c (flag_see): remove its setting at -O3.
522
523 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
524
525         * genpeep.c (main): Make insn-peep.c depend on flags.h.
526         * arm/constraints.md: New file.
527         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
528         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
529         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
530         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
531         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
532         (EXTRA_MEMORY_CONSTRAINT): Likewise.
533         * arm.md: Include constraints.md.
534         (thumb_movsi_insn): Use satisfies_constraint_J.
535         (movhi, movqi): Use satisfies_constraint_I.
536
537 2006-04-29 Anatoly Sokolov <aesok@post.ru>
538
539         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
540         for atmeg a645 device.
541
542 2006-05-06   Richard Guenther  <rguenther@suse.de>
543
544         PR tree-optimization/27151
545         * tree-vect-transform.c (vectorizable_condition): Punt on
546         values that have a different type than the condition.
547
548 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
549
550         PR/21391
551         * c-parser.c (c_parser_cast_expression): Only insert casts into
552         hash table if pointer.
553         * function.c (used_types_insert_helper): Rename from
554         used_types_insert.
555         (used_types_insert): Call used_types_insert_helper.
556         * function.h (used_types_insert): Accept only one argument.
557
558 2006-05-05  David Edelsohn  <edesohn@gnu.org>
559
560         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
561         scratch with output modifier.
562
563 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
564
565         PR target/26481
566         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
567         with output modifier.
568
569 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
570
571         PR target/26765
572         * config/mips/mips.c (mips_symbolic_address_p): Return true
573         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
574         SYMBOL_GOTTPREL, and SYMBOL_TLS.
575
576 2006-05-04  Richard Guenther  <rguenther@suse.de>
577
578         PR tree-optimization/14287
579         PR tree-optimization/14844
580         PR tree-optimization/19792
581         PR tree-optimization/21608
582         PR tree-optimization/27090
583         * tree-ssa-pre.c (try_combine_conversion): New function.
584         (compute_avail): After constructing the value-handle
585         expression, use try_combine_conversion to combine NOP_EXPRs
586         with previous value-handle expressions and use the result if it
587         is available.
588
589 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
590
591         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
592
593 2006-05-04  Jan Hubicka  <jh@suse.cz>
594
595         PR middle-end/25962
596         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
597
598 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
599
600         * config/bfin/predicates.md (const01_rtx): Tell generator programs
601         that this only matches CONST_INTs.  All users changed to VOIDmode
602         operands.
603
604         * config/bfin/bfin.c: Include "optabs.h".
605         (bfin_rtx_costs): Some costs for vector operations, to allow combine
606         to do more work.
607         (enum bfin_builtins): Add a number of fractional and vector builtins.
608         (bfin_init_builtins): Likewise.
609         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
610         (safe_vector_operand, bfin_expand_binop_builtin,
611         bfin_expand_unop_builtin): New functions.
612         (bfin_expand_builtin): Handle the new builtins.
613         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
614         __ADSPBLACKFIN__.
615
616 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
617
618         * see.c: New file.
619         * Makefile.in (OBJS-common): Add see.o.
620         (see.o): Add dependencies.
621         * common.opt (fsee): New flag for the see optimization was added.
622         * opts.c (flag_see): Initialized.
623         * passes.c (init_optimization_passes, pass_see): New pass.
624         * rtl.h (see_main): Declaration as extern.
625         * timevar.def (TV_SEE): New.
626         * tree-pass.h (pass_see): Declaration as extern.
627         * invoke.texi (-fsee): Document.
628         * recog.c (validate_simplify_insn): New function.
629         * recog.h (validate_simplify_insn): Declaration as extern.
630         * df-problems.c (df_chain_dump): Check for NULL.
631
632 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
633             Daniel Berlin  <dberlin@dberlin.org>
634
635         * cfgrtl.c (insert_insn_bb_end_new): New function.
636         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
637
638 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
639
640         * df.h (struct web_entry): Moved from web.c.
641         (union_defs): Declaration as extern.
642         (unionfind_root): Likewise.
643         (unionfind_union): Likewise.
644         * web.c (struct web_entry): Moved to df.h.
645         (unionfind_root): Remove static declaration.
646         (unionfind_union): Likewise.
647         (union_defs): Likewise and generalize to use callback function.
648         (web_main): Update arguments for union_defs function call.
649
650 2006-05-04  Richard Guenther  <rguenther@suse.de>
651
652         PR tree-optimization/26447
653         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
654         produce SSA_NAME copies before the store stmt to avoid
655         breaking exception handling.
656
657 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
658
659         PR middle-end/27388
660         * gimplify.c (omp_is_private): If var is shared in some outer context,
661         return false instead of true.  Stop searching on parallel context
662         boundary.
663
664 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
665
666         PR java/8260
667         * coverage.c: Use get_gcov_unsigned_t() instead of
668         unsigned_type_node all over.
669
670 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
671
672         PR tree-optimization/27381
673         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
674         maintain the same immediate_use links.
675         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
676         node rather than segfaulting.
677
678 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
679
680         PR fortran/27395
681         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
682         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
683         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
684
685 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
686
687         Fix PR tree-optimization/26626
688         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
689         always.
690         * tree-ssa-operands.c (access_can_touch_variable): Allow
691         typecasting through union pointers.
692
693 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
694
695         PR c++/26943
696         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
697         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
698         to find if var will be a global variable even in the nested context.
699         (omp_copy_decl): Only check for global variable at the end, it might
700         be overridden in outer contexts.
701         (scan_sharing_clauses): For global variables don't create a field.
702         (lower_rec_input_clauses): Do nothing for global shared variables.
703         Emit a barrier at the end of ILIST if there were any decls in both
704         firstprivate and lastprivate clauses.
705         (lower_send_clauses): Do nothing for global variables except for
706         COPYIN.
707
708 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
709
710         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
711         of the correct signedness is returned.
712
713 2006-05-02  Jeff Law  <law@redhat.com>
714
715         PR tree-optimization/27364
716         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
717         multiply expressions.
718
719 2006-05-02  Tom Tromey  <tromey@redhat.com>
720
721         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
722
723 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
724
725         PR target/27387
726         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
727         -mthumb -fPIC are used.
728
729 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
730             Joshua Kinard  <kumba@gentoo.org>
731
732         PR target/25871
733         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
734         with 64-bit pointers.
735
736 2006-05-02  Paul Brook  <paul@codesourcery.com>
737
738         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
739         and pool overlap.
740         (create_fix_barrier): Check that a suitable barrier location is
741         found.
742         (arm_reorg): Include ftmp->address in allowable range of addresses.
743
744 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
745
746         PR ada/27366
747         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
748         on Cygwin.
749
750 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
751
752         PR middle-end/27337
753         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
754         around RESULT_DECL for result passed by reference.
755         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
756         * omp-low.c (use_pointer_for_field): Don't look at
757         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
758         (scan_omp_1): Call remap_decl on RESULT_DECLs.
759         (lower_rec_input_clauses): Don't allocate VLA memory for the second
760         time or var for passing by reference for
761         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
762         TREE_ADDRESSABLE variables when passing by reference.
763
764         * omp-low.c (dump_omp_region): Fix output formatting.
765
766         PR middle-end/27328
767         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
768         (expand_omp_parallel): Likewise.
769         * tree-cfg.c (move_sese_region_to_fn): Likewise.
770
771         PR middle-end/27325
772         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
773         on statement list containing also constructors and destructors.
774         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
775
776         PR middle-end/27310
777         * except.c (duplicate_eh_regions): Fix clearing of
778         cfun->eh->region_array entries.
779
780 2006-05-01  DJ Delorie  <dj@redhat.com>
781
782         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
783         build!=host.
784         (gcc_cv_objdump): Likewise.
785         * configure: Regenerated.
786
787 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
788
789         PR target/27374
790         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
791         templates for case 3 and 4.
792
793 2006-05-01  DJ Delorie  <dj@redhat.com>
794
795         * vec.c: Include bconfig.h when appropriate.
796         * Makefile.in (build/vec.o): Adjust dependencies.
797         * mkconfig.sh: Make sure config.h isn't used for build machine
798         compiles.
799
800 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
801
802         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
803         variables.
804         (mark_phi_for_rewrite): New function.
805         (insert_phi_nodes_for, mark_use_interesting): Call
806         mark_phi_for_rewrite.
807         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
808         (update_ssa): Initialize and free phis_to_rewrite.
809
810 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
811
812         PR rtl-optimization/27291
813         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
814         folded to a constant.
815
816 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
817
818         PR tree-optimization/27283
819         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
820         not whole # of iteration descriptions.
821         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
822         uses abnormal ssa name.
823         (niter_for_single_dom_exit): Ditto.
824         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
825         return just the number of iterations.
826
827 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
828
829         PR tree-optimization/27144
830         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
831         (record_estimate): Only record constant upper bound.
832         (infer_loop_bounds_from_undefined): Call
833         compute_estimated_nb_iterations just once.
834         (proved_non_wrapping_p): Renamed to ...
835         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
836         (convert_step_widening, scev_probably_wraps_p): Call
837         n_of_executions_at_most instead of proved_non_wrapping_p.
838         (substitute_in_loop_info): Do not replace values in bounds.
839         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
840         comments.
841
842 2006-05-01  Richard Henderson  <rth@redhat.com>
843
844         PR c/27358
845         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
846         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
847         CPP_PRAGMA.
848
849 2006-05-01  Roger Sayle  <roger@eyesopen.com>
850
851         * c-typeck.c (parser_build_binary_op): Don't call the function
852         unsigned_conversion_warning to spot operand/result type overflow.
853         (build_binary_op): Instead, call convert_and_check instead of
854         convert to report the problem when the operands are promoted.
855         * c-common.c (unsigned_conversion_warning): Make static.
856         * c-common.h (unsigned_conversion_warning): Delete prototype.
857
858 2006-05-01  Richard Guenther  <rguenther@suse.de>
859
860         PR tree-optimization/26726
861         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
862         problem ...
863         (find_interesting_uses_address): ... we work around here
864         by folding INDIRECT_REFs in the substituted base.
865
866 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
867
868         * omp-low.c (dump_omp_region): Add newlines.
869
870 2006-04-30  Roger Sayle  <roger@eyesopen.com>
871
872         * common.opt (Woverflow): New command line option.
873         * c-common.c (constant_expression_warning): Check warn_overflow.
874         (overflow_waring): Pass OPT_Woverflow to warning.
875         (unsigned_conversion_warning): Likewise.
876         (convert_and_check): Likewise.
877         * doc/invoke.texi: Document new command line option.
878
879 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
880
881         * config/rs6000/rs6000.c (rs6000_override_options): Enable
882         TARGET_NO_FP_IN_TOC for section anchors.
883         (optimization_options): Enable section anchors for all
884         non-"Objective" languages.
885
886 2006-04-28  Eric Christopher  <echristo@apple.com>
887
888         * config/darwin-c.c (darwin_ms_struct): Move this
889         (darwin_set_default_type_attributes): and this...
890         * config/darwin.c: ... here.
891         * config/darwin.h (darwin_ms_struct): Declare.
892
893 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
894
895         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
896
897 2006-04-28  Roger Sayle  <roger@eyesopen.com>
898
899         PR c/25309
900         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
901         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
902         an unsigned HOST_WIDE_INT.
903         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
904         array index.
905         (really_start_incremental_init): No need to call convert because
906         bitsize_zero_node is already of type bitsizetype.
907         (push_init_level): Extract the value of constructor_index as an
908         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
909         (process_init_element): Likewise.
910
911 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
912
913         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
914         value before passing to make_relative_prefix.
915
916 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
917
918         PR middle-end/27260
919         * builtins.c (expand_builtin_memset): Expand val in original mode.
920
921 2006-04-27  Eric Christopher  <echristo@apple.com>
922
923         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
924         with #ifndef/#endif.
925         * config/darwin-c.c (darwin_ms_struct): New.
926         (darwin_pragma_ms_struct): Ditto.
927         (darwin_set_default_type_attributes): Ditto.
928         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
929         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
930         Register ms_struct pragma.
931         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
932         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
933         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
934         darwin_set_default_type_attributes if TARGET_MACHO.
935
936 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
937
938         PR tree-optimization/26854
939         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
940         * doc/tree-ssa.texi: Update immuse iterator documentation.
941         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
942         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
943         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
944         first_safe_imm_use, next_safe_imm_use): Remove.
945         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
946         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
947         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
948         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
949         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
950         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
951         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
952         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
953         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
954         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
955         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
956         (perfect_nestify): Use new iterator.
957         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
958         iterator.
959         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
960         (next_imm_name): New field in struct immediate_use_iterator_d.
961         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
962         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
963         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
964         * tree-cfg.c (replace_uses_by): Use new iterator.
965         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
966         * tree-ssa-operands.c (correct_use_link): Remove.
967         (finalize_ssa_use_ops): No longer call correct_use_link.
968
969 2006-04-27  Stuart Hastings  <stuart@apple.com>
970
971         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
972         * config/t-darwin (crt3.o): Use it.
973         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
974         'pmode', use Pmode instead of SImode for SYMBOL_REF.
975         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
976         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
977         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
978         support.
979
980 2006-04-27  Roger Sayle  <roger@eyesopen.com>
981
982         * expmed.c (store_fixed_bit_field): If we're not optimizing for
983         size, force the intermediate into a new pseudo rather instead of
984         performing both a bitwise AND and a bitwise IOR in memory.
985
986 2006-04-27  Richard Guenther  <rguenther@suse.de>
987
988         PR rtl-optimization/26685
989         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
990         this one "max-flow-memory-locations".
991
992 2006-04-27  Richard Guenther  <rguenther@suse.de>
993
994         PR tree-optimization/25148
995         * tree-vrp.c (compare_values): Remove code dealing with
996         comparisons against type min/max value.  Honour overflow
997         and negative constants in code dealing with comparisons
998         of plus and minus expressions.
999         (value_inside_range): Use fold_binary with LE_EXPR and
1000         GE_EXPR rather than compare_values.
1001
1002 2006-04-27  Dirk Mueller  <dmueller@suse.de>
1003
1004         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
1005         prototype for SSE.
1006
1007 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
1008
1009         * basic-block.h (safe_insert_insn_on_edge): Removed.
1010         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
1011
1012 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
1013             Paolo Bonzini  <bonzini@gnu.org>
1014
1015         PR middle-end/27282
1016         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
1017         (simplify_and_const_int): Same.
1018
1019 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
1020
1021         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
1022
1023 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
1024
1025         PR c/26171
1026         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
1027         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
1028         cgraph_global_info_ready.
1029
1030         PR middle-end/26913
1031         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
1032
1033         PR c/25996
1034         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
1035         either decl or init is error_mark_node.
1036
1037         PR middle-end/25989
1038         * tree-flow.h (struct omp_region): Add sched_kind.
1039         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
1040         instead of extracting omp for data.
1041         (expand_omp_for): Save extracted sched_kind.
1042
1043 2006-04-25  Roger Sayle  <roger@eyesopen.com>
1044
1045         * expmed.c (store_bit_field): Also check whether the bitsize is
1046         valid for the machine's "insv" instruction before moving the
1047         target into a pseudo for use with the insv.
1048         * config/i386/predicates.md (const8_operand): New predicate.
1049         * config/i386/i386.md (extv, extzv, insv): Use the new
1050         const8_operand predicate where appropriate.
1051
1052 2006-04-25  DJ Delorie  <dj@redhat.com>
1053
1054         * doc/install.texi (Specific): Clarify that this is not a list of
1055         supported hosts or targets.
1056
1057 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
1058
1059         PR rtl-optimization/26725
1060         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
1061         block's BB_DIRTY flag.
1062
1063 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
1064
1065         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
1066         are no branches.
1067
1068         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
1069         to print an integer.
1070
1071 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
1072
1073         * varasm.c (align_variable): New function.
1074         (get_block_for_decl): Apply align_variable to DECL before
1075         calculating section information.
1076         (assemble_variable): Split out alignment computation.
1077
1078 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
1079
1080         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
1081         machines.
1082
1083 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
1084
1085         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
1086         MODE_PARTIAL_INT mode.
1087         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
1088         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
1089         for CONST_INTs.
1090         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
1091         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
1092         V2PDImode.
1093         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
1094         New predicates.
1095         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
1096         New constants.
1097         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
1098         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
1099         MACFLAG_IH): Likewise.
1100         (movstricthi_1): Renamed from "*movstricthi".
1101         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
1102         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
1103         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
1104         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
1105         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
1106         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
1107         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
1108         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
1109         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
1110         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
1111         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
1112         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
1113         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
1114         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
1115         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
1116
1117         * doc/rtl.texi (ss_ashift): Improve wording.
1118
1119 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
1120
1121         * dwarf2out.c (verify_marks_clear): New.
1122         (prune_unused_types): Call verify_marks_clear initially, not
1123         prune_unmark_dies.
1124
1125 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1126
1127         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
1128         * doc/rtl.texi: Document them.
1129         * simplify-rtx.c (simplify_unary_operation,
1130         simplify_binary_operation_1): Don't abort when we see them.
1131
1132 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
1133
1134         Revert:
1135         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
1136         * configure.ac: Completely disregard languages that are not
1137         enabled.
1138         * configure: Regenerated.
1139
1140 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
1141         Richard Guenther  <rguenther@suse.de>
1142
1143         PR tree-optimization/27236
1144         * tree-inline.c (copy_body_r): Make sure to copy
1145         TREE_THIS_VOLATILE flag.
1146
1147 2006-04-24  Richard Guenther  <rguenther@suse.de>
1148
1149         PR middle-end/26869
1150         * tree-complex.c (update_parameter_components): Don't handle
1151         unused parameters which have no default def.
1152
1153 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
1154         Richard Guenther  <rguenther@suse.de>
1155
1156         PR tree-optimization/27218
1157         * tree-inline.c (expand_call_inline): Strip useless type
1158         conversions for the return slot address.
1159
1160 2006-04-24  Richard Guenther  <rguenther@suse.de>
1161
1162         * cfgloop.h (struct loops): Remove unused field array.  Reorder
1163         state after num.
1164         (LOOP_PREFETCH): Remove.
1165
1166 2006-04-24  Richard Guenther  <rguenther@suse.de>
1167
1168         PR tree-optimization/22525
1169         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
1170         variable, adjust types of generated expressions.
1171
1172 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
1173
1174         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
1175         (tree-vect-patterns.o): Likewise.
1176         (jump.o): Likewise.
1177         (cselib.o): Likewise.
1178         (loop-doloop.o): Likewise.
1179         (regclass.o): Likewise.
1180         (reload1.o): Likewise.
1181         (explow.o): Replace target.h with $(TARGET_H).
1182         (ipa-prop.o): Likewise.
1183         (ipa-cp.o): Likewise.
1184         (ipa-inline.o): Likewise.
1185         (reorg.o): Likewise.
1186         (reg-stack.o): Likewise.
1187
1188 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1189
1190         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
1191
1192 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
1193
1194         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
1195
1196         * configure.ac: Completely disregard languages that are not
1197         enabled.
1198         * configure: Regenerated.
1199
1200         PR c++/26534
1201         * c-common.h (c_build_bitfield_integer_type): Declare.
1202         * c-decl.c (c_build_bitfield_integer_type): Move to ...
1203         * c-common.c (c_build_bitfield_integer_type): ... here.
1204
1205 2006-04-23  Roger Sayle  <roger@eyesopen.com>
1206
1207         PR target/21283
1208         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
1209         a SImode SUBREG of a floating point register after no_new_pseudos.
1210
1211 2006-04-23  Roger Sayle  <roger@eyesopen.com>
1212
1213         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
1214         identify potentially eliminable registers to additionally catch
1215         VIRTUAL_INCOMING_ARGS_REGNUM.
1216         (addsi3): Update the conditions on when to use addsi_small_int.
1217
1218 2006-04-23  Roger Sayle  <roger@eyesopen.com>
1219
1220         PR target/16641
1221         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
1222         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
1223         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
1224
1225 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1226
1227         * fold-const.c (range_predecessor): Use operand_equal_p
1228         as the predicate for equality.
1229         (range_successor): Likewise.
1230
1231 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
1232
1233         Revert:
1234         * config/soft-fp/op-common.h: Fix a typo.
1235
1236 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
1237
1238         PR libmudflap/26864
1239         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
1240         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
1241
1242 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
1243
1244         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
1245         Fix comment typos.
1246         * doc/tm.texi: Fix a typo.
1247
1248 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
1249
1250         * dwarf2out.c (struct die_struct): Document that die_sib makes
1251         a circular linked list.
1252         (FOR_EACH_CHILD): New.
1253         (reverse_die_lists): Delete.
1254         (reverse_all_dies): Delete.
1255         (add_dwarf_attr): Correct documentation.
1256         (remove_child_with_prev): New.
1257         (remove_child_TAG): Update for change to die_struct, use
1258         remove_child_with_prev.
1259         (add_child_die): Update for change to die_struct.
1260         (splice_child_die): Use remove_child_with_prev and add_child_die.
1261         (print_die): Use FOR_EACH_CHILD.
1262         (die_checksum): Likewise.
1263         (assign_symbol_names): Likewise.
1264         (output_location_lists): Likewise.
1265         (build_abbrev_table): Likewise.
1266         (calc_die_sizes): Likewise.
1267         (mark_dies): Likewise.
1268         (unmark_dies): Likewise.
1269         (unmark_all_dies): Likewise.
1270         (output_die): Likewise.
1271         (prune_unused_types_mark): Likewise.
1272         (prune_unused_types_walk): Likewise.
1273         (same_die_p): Update for change to die_struct.
1274         (break_out_includes): Likewise.
1275         (prune_unused_types_prune): Likewise.
1276         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
1277         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
1278         it's already clear.
1279         (dwarf2out_finish): Don't call reverse_all_dies.
1280
1281 2006-04-21  Eric Christopher  <echristo@apple.com>
1282
1283         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
1284         in comments and function names.
1285
1286 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1287
1288         PR c/25875
1289         * c-typeck.c (digest_init): Robustify.
1290
1291         * c-typeck.c (pop_init_level): Simplify.
1292
1293 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
1294
1295         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
1296
1297 2006-04-21  Paul Brook  <paul@codesourcery.com>
1298
1299         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
1300         hardware floating point.
1301
1302 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
1303
1304         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
1305         NON_FLOAT_REGS.
1306
1307 2006-04-21  Nick Clifton  <nickc@redhat.com>
1308
1309         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
1310         OPT_EXTRA_PARTS.
1311
1312 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
1313
1314         PR target/27230
1315         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
1316         C++ lang type in traceback table for Objective-C++.
1317
1318         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
1319
1320 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1321
1322         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
1323
1324 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1325
1326         PR mudflap/26789
1327         * tree-mudflap.c (mudflap_finish_file): Skip function when there
1328         were errors.  Remove check for erroneous objects.
1329
1330 2006-04-20  Jeff Law  <law@redhat.com>
1331
1332         PR tree-optimization/26854
1333         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
1334         checking for zero or one use.
1335         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
1336         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
1337         * tree-ssa-reassoc.c (negate_value): Similarly.
1338         (reassociate_bb): Similarly.
1339
1340 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
1341
1342         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
1343         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
1344         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
1345
1346 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
1347
1348         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
1349         fp regs if the last fp arg doesn't fit in regs.
1350
1351 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1352
1353         PR target/27182
1354         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
1355         that the last insn has the REG_INC note.
1356
1357 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
1358             Nathan Sidwell  <nathan@codesourcery.com>
1359
1360         PR c/26774
1361         * stor-layout.c (update_alignment_for_field): Do not align
1362         ERROR_MARK nodes.
1363         (place_union_field): Place union field at the start of the union.
1364         (place_field): Move ERROR_MARK check later, and use the current
1365         allocation position to maintain monotonicity.
1366
1367 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
1368
1369         * dominance.c: Include timevar.h.
1370         (calculate_dominance_info): Use TV_DOMINANCE.
1371         * timevar.def (TV_DOMINANCE): New timevar.
1372         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
1373
1374 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1375
1376         PR rtl-optimization/14261
1377         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
1378         move would be an INSV insn.
1379         (noce_process_if_block): Don't optimize if the destination is a
1380         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
1381
1382 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1383
1384         * config/s390/s390.md: Add comments with the instructions emitted
1385         by an insn pattern if macros are used.
1386
1387 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
1388
1389         PR rtl-optimization/26026
1390         * fold-const.c (fold_binary): Optimize div and mod where the divisor
1391         is a known power of two shifted left a variable amount.
1392
1393 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
1394
1395         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
1396         to hash table twice when the debug_str section has SECTION_MERGE.
1397
1398 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
1399
1400         * config/soft-fp: New directory.  From glibc.
1401         * config/soft-fp/t-softfp: New.
1402         * config/soft-fp/README: New.
1403         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
1404         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
1405         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
1406         (LIBGCC_DEPS): Add $(SFP_MACHINE).
1407         * config.gcc: Use rs6000/t-fprules-fpbit or
1408         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
1409         rs6000/t-fprules.
1410         * config/rs6000/sfp-machine.h: New.  Based on glibc.
1411         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
1412         New.
1413         * config/rs6000/t-fprules: Remove fp-bit rules.
1414         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
1415         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
1416         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
1417         (softfp_wrap_start, softfp_wrap_end): New.
1418
1419 2006-04-18  DJ Delorie  <dj@redhat.com>
1420
1421         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
1422
1423 2006-04-18  Devang Patel  <dpatel@apple.com>
1424
1425         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
1426
1427 2006-04-18  Nick Clifton  <nickc@redhat.com>
1428
1429         * config/sh/t-symbian: Add rule to build sh-c.o
1430         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
1431         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
1432         (sh_symbian_encode_section_info): Likewise.
1433
1434 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
1435
1436         * builtins.c (expand_builtin_strcmp): Cover label definition of
1437         do_libcall with HAVE_cmpstrnsi.
1438
1439 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
1440
1441         * function.c (temp_slots_at_level, max_slot_level): Use VEC
1442         instead of VARRAY.
1443         * function.h (temp_slot_p): New.
1444         (function): Change the type of x_used_temp_slots to
1445         VEC(temp_slot_p,gc) *.
1446
1447 2006-04-18  Nick Clifton  <nickc@redhat.com>
1448
1449         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
1450         flag_strength_reduce.
1451
1452         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
1453
1454 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
1455
1456         PR target/27117
1457
1458         Partial revert of revision 112637
1459         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
1460                     Dale Johannesen  <dalej@apple.com>
1461
1462         PR target/19653
1463         * regclass.c (struct reg_pref): Update documentation.
1464         (regclass): Set prefclass to NO_REGS if memory is the best option.
1465         (record_reg_classes): Cope with a prefclass set to NO_REGS.
1466
1467 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
1468
1469         PR tree-optimization/26821
1470         * tree-ssa-math-opts.c (get_constant_one): New.
1471         (insert_reciprocals): Use it.
1472
1473 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
1474
1475         * dwarf2out.c (free_AT): Delete.
1476         (remove_AT): Update string ref counts.
1477         (remove_child_TAG): Don't call free_die.
1478         (free_die): Delete.
1479         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
1480         or DW_TAG_GNU_EINCL.
1481         (prune_unused_types_walk_attribs): Reset string refcounts.
1482         (prune_unused_types_update_strings): New.
1483         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
1484         call free_die.  Do call prune_unused_types_update_strings.
1485         (prune_unused_types): Empty debug_str_hash.
1486
1487 2006-04-17  Roger Sayle  <roger@eyesopen.com>
1488
1489         * expr.c (expand_assignment): Optimize away no-op moves where the
1490         source and destination are equal and have no side-effects.
1491
1492 2006-04-17  Richard Guenther  <rguenther@suse.de>
1493
1494         PR target/26826
1495         * reload.c (push_reload): Guard calls to get_secondary_mem
1496         for memory subregs.
1497
1498 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
1499
1500         * alias.c (reg_base_value, old_reg_base_value): Change the
1501         type to VEC(rtx,gc) *.
1502         (REG_BASE_VALUE, find_base_value, record_set,
1503         init_alias_analysis): Use VEC instead of VARRAY.
1504
1505         * alias.c (alias_sets): Change the type to
1506         VEC(alias_set_entry,gc) *.
1507         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
1508         VEC instead of VARRAY.
1509         (last_alias_set): Remove.
1510
1511         * cgraph.h (cgraph_edge_p): New.
1512         Update the prototype of cgraph_function_versioning.
1513         * cgraphunit.c (cgraph_copy_node_for_versioning,
1514         cgraph_function_versioning): Use VEC instead of VARRAY.
1515         * ipa-cp.c (ipcp_insert_stage): Likewise.
1516
1517 2006-04-16  Roger Sayle  <roger@eyesopen.com>
1518
1519         PR target/26961
1520         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
1521         "A op B" or "A op C", we may need to convert A to the type of B and C.
1522
1523 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
1524
1525         * target.h (struct gcc_target): Add mode_rep_extended.
1526         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
1527         (init_num_sign_bit_copies_in_rep): Initialize it using
1528         mode_rep_extended.
1529         (truncate_to_mode): Use it.
1530         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
1531         * targhooks.h (default_mode_rep_extended): Declare it.
1532         * targhooks.c (default_mode_rep_extended): Define it.
1533         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
1534         default_mode_rep_extended.
1535         (TARGET_INITIALIZER): Include it.
1536         * doc/tm.texi (Misc): Document it.
1537         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
1538         (mips_truncated_to_mode): New function.
1539
1540 2006-04-16  Roger Sayle  <roger@eyesopen.com>
1541
1542         PR middle-end/25474
1543         * expr.c (compress_float_constant): Copy the narrow constant into
1544         a new pseudo before extending it to its final width.
1545
1546 2006-04-16  Roger Sayle  <roger@eyesopen.com>
1547             Andrew Pinski  <pinskia@gcc.gnu.org>
1548             Dale Johannesen  <dalej@apple.com>
1549
1550         PR target/24076
1551         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
1552         special case code to implement V8HImode and V16QImode with SSE2.
1553
1554 2006-04-15  Roger Sayle  <roger@eyesopen.com>
1555
1556         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
1557         trees are constructed with a suitable tree type.
1558
1559 2006-04-15  Roger Sayle  <roger@eyesopen.com>
1560
1561         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
1562         (integer_onep): Likewise.
1563         (integer_all_onesp): Likewise.
1564         (integer_pow2p): Likewise.
1565         (integer_nonzerop): Likewise.
1566         (real_zerop): Likewise.
1567         (real_onep): Likewise.
1568         (real_twop): Likewise.
1569         (real_minus_onep): Likewise.
1570         (int_size_in_bytes): Likewise.
1571         (host_integerp): Likewise.
1572
1573 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
1574
1575         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
1576         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
1577         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
1578
1579         * tree-ssa-structalias.h (alias_info): Remove num_references.
1580
1581 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1582
1583         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
1584         (output_bvb patterns): Likewise.
1585         * pa.c (output_bb): Use 'bb' insn for long branch case.
1586         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
1587         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
1588         1.  Correct length operand for alternatives 1 and 2.
1589         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
1590         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
1591
1592 2006-04-14  Roger Sayle  <roger@eyesopen.com>
1593
1594         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
1595         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
1596         were accidentally reverted by r112959.
1597
1598 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
1599
1600         PR middle-end/26823
1601         * except.h (eh_region_outermost): New prototype.
1602         * except.c (eh_region_outermost): New function.
1603         * tree-cfg.c (find_outermost_region_in_block): Use it.
1604
1605 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
1606
1607         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
1608         of VARRAY.
1609         * reload1.c (reg_equiv_memory_loc_varray): Rename to
1610         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
1611         (init_reload, reload): Use VEC instead of VARRAY.
1612         * reload.h: Update the prototype for
1613         reg_equiv_memory_loc_varray.
1614
1615 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
1616             Eric Botcazou  <ebotcazou@libertysurf.fr>
1617
1618         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
1619         register save area.
1620
1621 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
1622
1623         PR middle-end/27134
1624         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
1625         to expand fallback builtin function call.
1626
1627 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
1628
1629         PR middle-end/27095
1630         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
1631         and emit libcall here in case the builtin fails.
1632         (expand_builtin_strcmp): Always emit the libcall here on failure.
1633
1634 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
1635
1636         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
1637         * flow.c (reg_n_info): Change the type to
1638         VEC(reg_info_p,heap) *.
1639         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
1640         instead of VARRAY.
1641         * regs.h (reg_info_p): New.
1642         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
1643         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
1644         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
1645         instead of VARRAY.
1646
1647 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1648
1649         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
1650         defaulting to 100.
1651         * params.h (MAX_SCHED_READY_INSNS): New macro.
1652         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
1653         past MAX_SCHED_READY_INSNS during the first scheduling pass.
1654         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
1655         the ready list for 1 cycle during the first scheduling pass.
1656         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
1657
1658 2006-04-13  Richard Henderson  <rth@redhat.com>
1659
1660         PR libgomp/26651
1661         * gimple-low.c (lower_omp_directive): Remove dead code.
1662         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
1663         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
1664         * omp-low.c (struct omp_region): Move to tree-flow.h.
1665         (root_omp_region): Export.
1666         (omp_regions, lookup_omp_region): Remove.
1667         (determine_parallel_type): Update for struct omp_region changes.
1668         (dump_omp_region): Dump regions with block numbers.
1669         (new_omp_region): Take type and block instead of stmt; malloc
1670         instead of ggc.
1671         (free_omp_region_1, free_omp_regions): New.
1672         (expand_parallel_call): Take entry_stmt as argument; update for
1673         changes to omp_region.
1674         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
1675         (remove_exit_barriers): New.
1676         (expand_omp_parallel): Update for struct omp_region changes.
1677         (expand_omp_synch): Likewise.
1678         (expand_omp): Likewise.
1679         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
1680         (expand_omp_for_static_chunk): Likewise.
1681         (expand_omp_for): Likewise.
1682         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
1683         (expand_omp_sections): Similarly, with GOMP_sections_end.
1684         (expand_omp_single): New.
1685         (build_omp_regions_1): Update for OMP_CONTINUE.
1686         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
1687         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
1688         OMP_SECTIONS_SECTIONS.
1689         (lower_omp_single_simple): Don't emit barrier here.
1690         (lower_omp_single_copy): Likewise.
1691         (lower_omp_single): Fix bindings, and lower to straightline now.
1692         (lower_omp_master, lower_omp_ordered): Likewise.
1693         (lower_omp_critical): Likewise.
1694         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
1695         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
1696         omp edges, free it afterward.
1697         (make_omp_sections_edges): Remove.
1698         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
1699         (move_stmt_r): Handle OMP_CONTINUE.
1700         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
1701         statement pointers to basic blocks.  Add type member.
1702         (root_omp_region, new_omp_region, free_omp_regions): Declare.
1703         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
1704         * tree-inline.c (estimate_num_insns_1): Likewise.
1705         * tree-pretty-print.c (dump_generic_node): Likewise.
1706         * tree-ssa-operands.c (get_expr_operands): Likewise.
1707         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
1708         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
1709         (OMP_CONTINUE): New.
1710         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
1711         (OMP_SECTIONS_SECTIONS): Remove.
1712         (OMP_SECTION_LAST): New.
1713         (OMP_RETURN_NOWAIT): New.
1714
1715 2006-04-13  Roger Sayle  <roger@eyesopen.com>
1716
1717         * fold-const.c (native_encode_vector, native_interpret_real):
1718         Correct obvious mistakes in the previous check-in.
1719
1720 2006-04-13  Roger Sayle  <roger@eyesopen.com>
1721
1722         * fold-const.c (native_encode_expr): New function to encode
1723         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
1724         or VECTOR_CST into a specified buffer.
1725         (native_encode_int): New function.
1726         (native_encode_real): New function.
1727         (native_encode_complex): New function.
1728         (native_encode_vector): New function.
1729         (native_interpret_expr): Inverse of native_encode_expr to convert
1730         a target representation into an INTEGER_CST, REAL_CST etc...
1731         (native_interpret_int): New function.
1732         (native_interpret_real): New function.
1733         (native_interpret_complex): New function.
1734         (native_interpret_vector): New function.
1735         (fold_view_convert_expr): New function to constant fold/evaluate
1736         a VIEW_CONVERT_EXPR of a suitable constant expression.
1737         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
1738         Change call of build1 to fold_build1 when constructing a
1739         VIEW_CONVERT_EXPR.
1740
1741 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
1742             Ulrich Weigand  <uweigand@de.ibm.com>
1743
1744         PR target/27006
1745         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
1746         to be even.
1747
1748 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
1749
1750         PR target/26459
1751         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
1752         optimize to lo_sum for DFmode if !TARGET_FPRS.
1753
1754 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
1755
1756         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
1757         delete_alias_info, compute_flow_sensitive_aliasing,
1758         group_aliases): Use VEC instead of VARRAY.
1759         * tree-ssa-structalias.c (update_alias_info): Likewise.
1760         * tree-ssa-structalias.h (alias_info): Change the type of
1761         processed_ptrs to VEC(tree,heap) *.
1762
1763 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
1764
1765         PR target/27060
1766         * config/sh/lib1funcs.h: New file, broken out of:
1767         * config/sh/lib1funcs.asm.
1768         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
1769         New macros.
1770         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
1771         * config/sh/lib1funcs-Os-4-200.asm: New file.
1772         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
1773         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
1774         (EXTRA_MULTILIB_PARTS): Include it.
1775         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
1776         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
1777         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
1778         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
1779         TARGET_SH2.
1780
1781 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
1782
1783         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
1784         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
1785         tpa_compact, root_var_init, type_var_init): Use VEC instead of
1786         VARRAY.
1787         * tree-ssa-live.h: Include vecprim.h.
1788         (tree_partition_associator_d): Change the type of
1789         first_partition to VEC(int,heap) *.
1790         (tpa_first_partition): Use VEC instead of VARRAY.
1791
1792         * Makefile.in (GTFILES): Move functions.h after tree.h.
1793         * function.c (reset_block_changes, record_block_change,
1794         check_block_change, free_block_changes): Use VEC instead of
1795         VARRAY.
1796         * function.h (function): Change the type of
1797         ib_boundaries_block to VEC(tree,gc) *.
1798         * tree-inline.c (copy_cfg_body): Initialize
1799         ib_boundaries_block to NULL instead of (varray_type) 0.
1800
1801 2006-04-12  Roger Sayle  <roger@eyesopen.com>
1802
1803         * expr.c (emit_group_store): Correct operand order in call to
1804         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
1805         a SUBREG_BYTE of zero.
1806
1807 2006-04-12  Richard Guenther  <rguenther@suse.de>
1808
1809         * profile.c (compute_branch_probabilities): Remove code
1810         encapsulated in !ir_type (), which are remanents of the
1811         removed RTL profiling code.
1812         * rtl-profile.c: Remove.
1813
1814 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
1815
1816         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
1817         magic NULL_RTX comment.
1818         (function_arg): Store entire fp arg to mem if any part should go
1819         on stack.
1820         (rs6000_arg_partial_bytes): Adjust for above change.
1821
1822 2006-04-11  Roger Sayle  <roger@eyesopen.com>
1823
1824         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
1825         if it hasn't been initialized by dwarf2out_init.
1826
1827 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
1828
1829         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
1830         symbolic constants in branch patterns.
1831
1832 2006-04-11  Roger Sayle  <roger@eyesopen.com>
1833
1834         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
1835
1836 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
1837
1838         PR rtl-optimization/27073
1839         * gcse.c (try_replace_reg): Revert last change.  Continue to search
1840         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
1841         on the former.
1842
1843 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
1844
1845         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
1846         aggregate types other than record and union types.
1847         (function_arg): Likewise.
1848         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
1849         small arrays.
1850         (function_value): In 64-bit mode, return objects that require it
1851         in FP registers.
1852
1853 2006-04-11  Roger Sayle  <roger@eyesopen.com>
1854
1855         * dwarf2out.c (premark_used_types): Remove problematic prototype.
1856
1857 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
1858
1859         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
1860
1861 2006-04-03  Jeff Law  <law@redhat.com>
1862
1863         PR/27087
1864         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
1865         alias information too.
1866
1867 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
1868
1869         * Makefile.in (gcc-cross): Add $(exeext) to target name.
1870
1871 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
1872
1873         PR/21391
1874         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
1875         (premark_used_types_helper): New.
1876         (premark_used_types): New.
1877         (gen_subprogram_die): Call premark_used_types.
1878         (prune_unused_types_walk): Do not prune perennial dies.
1879         * function.c (used_types_insert): New.
1880         * function.h (struct function): Add used_types_hash field.
1881         (used_types_insert): Add prototype.
1882         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
1883         * c-parser.c (c_parser_cast_expression): Save casted types in used
1884         types hash table.
1885
1886 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
1887
1888         PR target/26459
1889         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
1890         rs6000_explicit_options.float_gprs.
1891
1892 2006-04-10  Roger Sayle  <roger@eyesopen.com>
1893
1894         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
1895         from ix86_expand_vector_init_low_nonzero.  Take an additional
1896         one_var argument indicating which element is non-zero.  Support
1897         one_var != 0 for V4SFmode and V4SImode by permuting the result.
1898         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
1899         with one_var instead of ix86_expand_vector_init_low_nonzero.
1900
1901 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
1902
1903         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
1904         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
1905         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
1906         build/genextract.o): Depend on vecprim.h.
1907         * cfglayout.c, df-problems.c, function.c, genextract.c,
1908         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
1909         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
1910         vecprim.h.
1911         * vecprim.h: New.
1912
1913 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
1914
1915         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
1916         Declare VECs of this type.
1917         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
1918         (remove_children): Delete.
1919         (add_dwarf_attr): Use VEC routines.
1920         (add_AT_flag): Update for changes to add_dwarf_attr.
1921         (add_AT_int): Likewise.
1922         (add_AT_unsigned): Likewise.
1923         (add_AT_long_long): Likewise.
1924         (add_AT_vec): Likewise.
1925         (add_AT_string): Likewise.
1926         (add_AT_die_ref): Likewise.
1927         (add_AT_fde_ref): Likewise.
1928         (add_AT_loc): Likewise.
1929         (add_AT_loc_list): Likewise.
1930         (add_AT_addr): Likewise.
1931         (add_AT_lbl_id): Likewise.
1932         (add_AT_lineptr): Likewise.
1933         (add_AT_macptr): Likewise.
1934         (add_AT_offset): Likewise.
1935         (add_AT_range_list): Likewise.
1936         (get_AT): Use VEC_iterate.
1937         (remove_AT): Use VEC_ordered_remove.
1938         (free_die): Fold remove_children into here; have it use VEC_iterate.
1939         (print_die): Use VEC_iterate on attrs.
1940         (reverse_die_lists): Don't reverse attr lists.
1941         (die_checksum): Use VEC_iterate on attrs.
1942         (same_die_p): Likewise.
1943         (output_location_lists): Likewise.
1944         (build_abbrev_table): Likewise.
1945         (size_of_die): Likewise.
1946         (unmark_all_dies): Likewise.
1947         (output_abbrev_section): Likewise.
1948         (output_die): Likewise.
1949         (prune_unused_types_walk_attribs): Likewise.
1950
1951 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1952
1953         * doc/install.texi (*-*-solaris2*): Point to the configure page.
1954
1955 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
1956
1957         PR debug/27057
1958         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
1959
1960 2006-04-09  Roger Sayle  <roger@eyesopen.com>
1961
1962         * expr.c (store_constructor): Don't bother clearing target if
1963         we're about to assign a vector to it using vec_init_optab.
1964
1965 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
1966
1967         * tree-ssa-alias.c (lhs_may_store_to): New function.
1968         (recalculate_used_alone): Handle LHS of calls.
1969
1970 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1971
1972         PR target/27034
1973         PR target/26508
1974         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
1975         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
1976         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
1977         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
1978         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
1979         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
1980         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
1981         stubs.  Add ".align 8" directives before all ".dword" directives.
1982         (GTHREAD_USE_WEAK): Revise comment.
1983         (TARGET_ATTRIBUTE_WEAK): Define.
1984         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
1985         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
1986         * stublib.c: New file.
1987
1988         PR target/26743
1989         PR target/11254
1990         PR target/10274
1991         * pa.md (cbranch patterns): Revise arguments used in calls to
1992         output_cbranch, output_bb and output_bvd.  Add long branch length
1993         attributes.
1994         (fbranch patterns): Handle long branches.
1995         (jump): Revise length check.  Revise arguments for output_lbranch call.
1996         Add long branch length attributes.
1997         (decrement_and_branch_until_zero): Add long branch length attributes.
1998         (output_movb, output_parallel_addb and output_parallel_movb patterns):
1999         Likewise.  Revise arguments for output_parallel_addb and
2000         output_parallel_movb calls.
2001         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
2002         output_parallel_movb and output_parallel_addb): Update prototypes.
2003         * pa.c (output_cbranch): Revise arguments.  Correct handling of
2004         nullification in long branches.
2005         (output_lbranch): Add new argument to control extraction of delay
2006         instruction.
2007         (output_bb): Handle long branches.
2008         (output_bvb, output_dbra, output_movb, output_parallel_movb,
2009         output_parallel_addb): Likewise.
2010
2011 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
2012
2013         PR rtl-optimization/27073
2014         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
2015         not REG_EQUIVs.
2016
2017 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
2018
2019         * tree.h (tree_memory_tag): Add old_used_alone.
2020         (SMT_OLD_USED_ALONE): New macro.
2021         * tree-ssa-alias.c (recalculate_used_alone): Stop
2022         marking things for renaming unnecessarily.
2023
2024 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
2025
2026         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
2027         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
2028         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
2029         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
2030         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
2031         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
2032         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
2033         spelling convensions.
2034         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
2035         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
2036         typos.  Follow spelling conventions.
2037
2038 2006-04-07  DJ Delorie  <dj@redhat.com>
2039
2040         * config/m32c/m32c.c (m32c_function_arg): Structures are always
2041         passed on the stack.
2042         (m32c_init_cumulative_args): When a function returns a structure,
2043         always pass the pointer to that return area on the stack.
2044         (m32c_function_arg_advance): Don't increment the parameter number
2045         if we're processing the returned structure pointer.
2046         (pushm_info): Reverse order of registers.
2047
2048 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
2049
2050         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
2051         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
2052         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
2053         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
2054         build_int_cst_type.
2055         * tree-chrec.c (chrec_fold_multiply_poly_poly,
2056         chrec_fold_multiply): Same.
2057         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
2058         force_expr_to_var_cost): Same.
2059         * tree-mudflap.c (mf_xform_derefs_1): Same.
2060         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
2061
2062 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
2063
2064         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
2065         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
2066         insn.
2067
2068 2006-04-07  Jan Hubicka  <jh@suse.cz>
2069
2070         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
2071
2072 2006-04-07  Richard Guenther  <rguenther@suse.de>
2073
2074         PR tree-optimization/26135
2075         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
2076         loads for store copy-prop.
2077         (copy_prop_visit_stmt): Likewise.
2078
2079 2006-04-05  Robert Millan  <robertmh@gnu.org>
2080
2081         * config/i386/linux.h: Add a comment to mark macros that are
2082         being overriden in config/k*bsd-gnu.h.
2083         * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
2084         DYNAMIC_LINKER.
2085         * config/knetbsd-gnu.h: Ditto.
2086
2087 2006-04-06  Jan Hubicka  <jh@suse.cz>
2088
2089         PR profile/20815
2090         PR profile/26399
2091         * coverage.c (coverage_checksum_string): Reorganize loop to not read
2092         after buffer.
2093
2094 2006-04-06  Mike Stump  <mrs@apple.com>
2095
2096         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
2097         for HAVE_nonlocal_goto to be consistent.
2098         (expand_builtin_nonlocal_goto): Likewise.
2099         (expand_builtin_strcmp): Use #ifdef instead of #if
2100         for HAVE_cmpstrnsi to be consistent.
2101
2102 2006-04-05  DJ Delorie  <dj@redhat.com>
2103
2104         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
2105         vs m32c.
2106
2107 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2108
2109         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
2110         got-relative addressing for anything but SImode.
2111
2112         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
2113         even if the calling function doesn't modify them.
2114
2115 2006-04-05  Richard Guenther  <rguenther@suse.de>
2116
2117         PR tree-optimization/26919
2118         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
2119         to cgraph_estimate_size_after_inlining.
2120
2121 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
2122
2123         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
2124
2125 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
2126
2127         PR tree-optimization/26996
2128         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
2129         VECTOR_TYPE variables.
2130
2131 2006-04-05  Richard Guenther  <rguenther@suse.de>
2132
2133         PR tree-optimization/26763
2134         * fold-const.c (fold_comparison): Move folding of
2135         PTR + CST CMP PTR + CST ...
2136         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
2137
2138 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
2139
2140         * doc/install.texi (Prerequisites): Refine some wording on
2141         bootstrapping and ksh.
2142         Move the version numbers of DejaGnu here from the testing section
2143         and fix casing of names.
2144         Fix markup and clarify wording for autogen requirements.
2145         Refer to GCJ instead of just java.
2146         Refer to SVN instead of CVS.
2147         Describe diffutils as useful instead of necessary.
2148         (Downloading the source): Refer to SVN instead of CVS.
2149         Adjust a link to our web site accordingly.
2150         (Configuration): Fix casing of Bison.
2151         (Building): Refer to SVN instead of CVS.
2152         Fix a sentence on the use of Bison and remove duplicate (and
2153         incorrect) version number of Bison requirement.
2154         Remove one redundant list of packages needed for building.
2155         (Specific): Avoid reference to CVS.
2156
2157 2006-04-04  Eric Christopher  <echristo@apple.com>
2158
2159         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
2160         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
2161         (rs6000_handle_struct_attribute): New.
2162         (rs6000_ms_bitfield_layout_p): Ditto.
2163
2164 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
2165
2166         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
2167         NULL for dso parameter to atexit_common.
2168
2169 2006-04-04  Eric Christopher  <echristo@apple.com>
2170
2171         * config/i386/i386.c (machopic_output_stub): Output \t
2172         between instructions and operands.
2173
2174 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
2175
2176         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
2177         satisfies_constraint_[IL] to explicit tests on value.
2178
2179 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
2180
2181         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2182         set_nb_iterations_in_loop): Use build_int_cst instead of
2183         build_int_cst_type.
2184         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
2185         build_int_cst instead of convert.
2186
2187 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
2188
2189         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
2190         new value 2 for incoming.
2191         * function.c (expand_function_start): Call struct_value_rtx
2192         with incoming as 2.
2193         * config/sparc/sparc.md: Comment updated_return.
2194         * config/sparc/sparc.opt: Add -mstd-struct-return option.
2195         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
2196         struct return if sparc_std_struct_return and incoming is 2.
2197         (print_operand): Do not adjust return if
2198         sparc_std_struct_return.
2199
2200 2006-04-04  Roger Sayle  <roger@eyesopen.com>
2201
2202         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
2203         convert in the middle-end.
2204         * expr.c (store_expr, store_constructor, get_inner_reference,
2205         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
2206         Likewise.
2207         * tree.c (build_range_type): Likewise.
2208
2209 2006-04-04  Tom Tromey  <tromey@redhat.com>
2210
2211         * doc/install.texi (Prerequisites): Mention jar.
2212
2213 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
2214
2215         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
2216         subsection.
2217
2218 2006-04-04  Matthias Klose  <doko@debian.org>
2219
2220         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
2221         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
2222         strings.
2223
2224 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
2225
2226         * doc/extend.texi (Function Attributes): Rewrite visibility
2227         attribute documentation.
2228         * doc/invoke.texi (C++ Dialect Options): Rewrite
2229         -fvisibility-inlines-hidden documentation to describe something
2230         entirely different, although in practise compatible.
2231         (Code Gen Options): Warn about system headers in -fvisibiltity=
2232         documentation.
2233
2234         * doc/extend.texi (Other Builtins): Document that
2235         __builtin_nan is a compile-time constant only when its argument
2236         is valid.
2237
2238 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
2239
2240         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
2241         trying to remove TRUNCATE check if all bits outside the new mode
2242         are identical to the sign bit.
2243
2244 2006-04-03  Jeff Law  <law@redhat.com>
2245
2246         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
2247         and operand scanning in some common cases.
2248
2249 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
2250             Dale Johannesen  <dalej@apple.com>
2251
2252         PR target/19653
2253         * regclass.c (struct reg_pref): Update documentation.
2254         (regclass): Set prefclass to NO_REGS if memory is the best option.
2255         (record_reg_classes): Cope with a prefclass set to NO_REGS.
2256         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
2257         into account.  For non-registers, equate an empty preferred
2258         reload class to a `!' in the constraint; move the if clause to
2259         do so after those that reject the insn.
2260         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
2261         return NO_REGS.
2262         (find_dummy_reload): Likewise.
2263         * doc/tm.texi (Register Classes): Document what it means
2264         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
2265         * config/i386/i386.c (ix86_preferred_reload_class): Force
2266         using SSE registers (and return NO_REGS for floating-point
2267         constants) if math is done with SSE.
2268         (ix86_preferred_output_reload_class): New.
2269         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
2270         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
2271         * config/i386/i386.md: Remove # register preferences.
2272
2273 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
2274
2275         PR bootstrap/26992
2276         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2277         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
2278         the type of nb_iter.
2279         (instantiate_parameters_1): Convert the operands before calling
2280         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
2281         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
2282
2283 2006-04-02  Roger Sayle  <roger@eyesopen.com>
2284
2285         * builtins.c (dummy_object): Use build_int_cst instead of convert.
2286         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
2287         instead of convert.
2288         * dojump.c (do_jump): Likewise.
2289         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
2290         * gimplify.c (gimple_boolify, gimplify_init_constructor,
2291         gimplify_boolean_expr): Likewise.
2292         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2293         * varasm.c (array_size_for_constructor): Likewise.
2294         * tree-object-size.c (compute_object_offset): Likewise.
2295
2296 2006-04-02  Roger Sayle  <roger@eyesopen.com>
2297
2298         PR middle-end/26977
2299         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
2300         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
2301
2302 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
2303
2304         PR tree-optimization/26939
2305         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
2306
2307 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
2308
2309         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
2310         at_stmt.  Convert the type of operands before calling
2311         build_polynomial_chrec.
2312         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
2313         add_to_evolution_1.
2314         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
2315         (instantiate_parameters_1): Convert the type of operands before calling
2316         build_polynomial_chrec.
2317         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
2318         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
2319         reset_evolution_in_loop): Insert asserts to check the types of the
2320         operands.
2321         (chrec_type): Moved...
2322         (eq_evolutions_p): Use operand_equal_p.
2323         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
2324         the types of the operands.
2325         (chrec_type): ...here.
2326         * tree-data-ref.c (create_data_ref): Convert the operands before
2327         calling chrec_replace_initial_condition.
2328         (same_access_functions, analyze_subscript_affine_affine,
2329         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
2330         (compute_subscript_distance, analyze_ziv_subscript,
2331         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
2332         analyze_miv_subscript): Convert the operands before calling
2333         chrec_fold_minus or chrec_fold_plus.
2334
2335 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
2336
2337         * tree-data-ref.c (compute_all_dependences): Use a pointer to
2338         the dependence_relations vector.
2339         (compute_data_dependences_for_loop): Adjust call to
2340         compute_all_dependences.
2341
2342 2006-04-01  Roger Sayle  <roger@eyesopen.com>
2343             Richard Henderson  <rth@redhat.com>
2344
2345         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
2346         gimple_boolify on the condition before calling gimplify_expr.
2347
2348 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
2349
2350         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
2351         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
2352         the frame size.  Update to use the new macros.
2353         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
2354         * config/xtensa/ieee754-df.S: Likewise.
2355
2356 2006-03-31  Richard Henderson  <rth@redhat.com>
2357
2358         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
2359         (make_edges): ... here.  Control fallthru creation with a local
2360         variable.  Do not play with fake edges.
2361         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
2362         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
2363         a boolean.
2364
2365 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
2366
2367         * dwarf2.h (DW64_CIE_ID): Define.
2368         * dwarf2out.c (DWARF_CIE_ID): Define.
2369         (output_call_frame_info): Output 0xffffffff before standard 8-byte
2370         length header.  Use DWARF_CIE_ID.
2371         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
2372         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
2373
2374 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2375
2376         * config/sh/linux-atomic.asm: New file.
2377         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
2378
2379 2006-03-31  DJ Delorie  <dj@redhat.com>
2380
2381         * config/m32c/cond.md: Set condition flags properly throughout.
2382         * config/m32c/minmax.md: Likewise.
2383         * config/m32c/prologue.md: Likewise.
2384         * config/m32c/bitops.md: Likewise.
2385         * config/m32c/muldiv.md: Likewise.
2386         * config/m32c/mov.md: Likewise.
2387         * config/m32c/addsub.md: Likewise.
2388         * config/m32c/m32c.md: Likewise.
2389         * config/m32c/jump.md: Likewise.
2390         * config/m32c/shift.md: Likewise.
2391
2392         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
2393         conditionally output the pattern for this.
2394         * config/m32c/m32c.c (flags_needed_for_conditional): New.
2395         (m32c_compare_redundant): New.
2396         (m32c_output_compare): New.
2397         * config/m32c/m32c-protos.h (m32c_output_compare): New.
2398
2399         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
2400         dest, not src.  Allow other 4-byte modes.
2401
2402 2006-03-30  Denis Chertykov  <denisc@overta.ru>
2403
2404         * doc/md.texi: Refer to avr/constraints.md instead of
2405         avr/avr.h.
2406
2407 2006-03-30  Roger Sayle  <roger@eyesopen.com>
2408
2409         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
2410         signed vs. unsigned comparison failures on some hosts.
2411
2412 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
2413
2414         PR target/26459
2415         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
2416         change to FLOAT_REGS.
2417
2418         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
2419         (rs6000_override_options): Use it.
2420         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
2421         only for -mabi=spe/no-spe and -mabi=altivec.
2422
2423 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
2424
2425         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
2426         !Zdynamiclib.
2427
2428 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
2429
2430         * Makefile.in: Rename docdir to gcc_docdir.
2431
2432 2006-03-30  Roger Sayle  <roger@eyesopen.com>
2433
2434         PR target/17959
2435         * expr.c (emit_group_store): Optimize group stores into a pseudo
2436         register by using a paradoxical subreg to initialize the destination
2437         if the first or last member of the group specifies a "low part".
2438
2439 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2440
2441         PR target/26734
2442         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
2443         * target.h (struct gcc_target.speculate_insn): Change type of the
2444         second parameter to 'int'.
2445         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
2446         the second operand of the DEPS_LIST.
2447         (copy_DEPS_LIST_list): Update reference to the second operand of the
2448         DEPS_LIST.
2449         * rtl.h (alloc_DEPS_LIST): Update signature.
2450         * sched-int.h (ds_t): Change typedef to 'int'.
2451         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2452
2453 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2454
2455         * haifa-sched.c (try_ready): Change condition to restore
2456         non-speculative pattern of the instruction.
2457         (process_insn_depend_be_in_spec): Code to keep probability of the
2458         speculative dependence non-decreasing.
2459
2460 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
2461
2462         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
2463         (single_move_for_movmem): ... this. Also change all uses.
2464         (bfin_expand_strmov): Renamed to...
2465         (bfin_expand_movmem): ... this. Also change all uses.
2466         * config/bfin/bfin.md (movstrsi): Renamed to...
2467         (movstrsi): ...this.
2468
2469 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
2470
2471         PR tree-optimization/26830
2472
2473         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
2474         (copy_prop_visit_stmt): Remove write-only variable ann.
2475         (init_copy_prop): Check variable loop depth here.  Do not simulate
2476         memory-tag and virtual operand PHIs except for store copy prop.
2477
2478 2006-03-30  Richard Guenther  <rguenther@suse.de>
2479
2480         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
2481         variants with double arguments.
2482
2483 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
2484
2485         * genpreds.c (write_tm_constrs_h): Delete variable p.
2486         * genconditions.c (write_header): Add tm-constrs.h to included
2487         headers.
2488         * genpeep.c (main): Add toplev.h to included headers.
2489         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
2490         (build/genpeep.o): Add toplev.h dependency.
2491         * config/rs6000/constraints.md: Add "W" constraint.
2492
2493 2006-03-29  Roger Sayle  <roger@eyesopen.com>
2494
2495         * stor-layout.c (mode_for_size_tree): Remove restiction on type
2496         sizes by correctly testing whether the size fits a host integer.
2497         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
2498         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
2499         SImode range for the default sizetype and bitsizetype.
2500
2501 2006-03-29  Roger Sayle  <roger@eyesopen.com>
2502
2503         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
2504         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
2505         quickly if the argument is already of the correct type.
2506         Call fold_build1 instead of build1.  Tidy up blank lines.
2507
2508 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
2509
2510         * genemit.c (main): Add tm-constrs.h to included headers.
2511         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
2512         * genpeep.c (main): Add tm-constrs.h to included headers.
2513         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
2514         (write_tm_constrs_h): this and write complete file.
2515         (write_tm_preds_h): Do not emit satisfies_constraint fns.
2516         (write_insn_preds_c): Add tm-constrs.h to included headers.
2517         (gen_constrs): New variable.
2518         (parse_option): Parse "-c".
2519         (main): Invoke write_tm_constrs_h.
2520         * genrecog.c (write_header): Add tm-constrs.h to included headers.
2521         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
2522         (object_out_file): Add tm-constrs.h dependency.
2523         (insn-emit.o): Same.
2524         (insn-output.o): Same.
2525         (insn-peep.o): Same.
2526         (insn-preds.o): Same.
2527         (insn-recog.o): Same.
2528         (tm-constsr.h): New target.
2529         (s-constrs-h): New target.
2530
2531         * config/rs6000/constraints.md: New file.
2532         * config/rs6000/rs6000.c: Include tm-constrs.h.
2533         (num_insn_constant_wide): Convert to satisfies_constraint.
2534         (rs6000_rtx_costs): Convert to satisfies_constraint.
2535         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
2536         (CONST_OK_FOR_LETTER_P): Delete.
2537         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2538         (EXTRA_CONSTRAINT): Delete.
2539         (EXTRA_MEMORY_CONSTRAINT): Delete.
2540         (EXTRA_ADDRESS_CONSTRAINT): Delete.
2541         * config/rs6000/predicates.md: Convert to satisfies_constraint.
2542         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
2543         satisfies_constraint.
2544
2545         * config/i386/i386.c: Include tm-constrs.h.
2546
2547 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
2548
2549         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
2550         * tree-data-ref.c (find_data_references_in_loop,
2551         compute_data_dependences_for_loop): Use pointers to VEC.
2552         (analyze_all_data_dependences): Adjust calls.
2553         * tree-data-ref.h (find_data_references_in_loop,
2554         compute_data_dependences_for_loop): Adjust declarations.
2555         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
2556         compute_data_dependences_for_loop.
2557
2558 2006-03-29  Paul Brook  <paul@codesourcery.com>
2559
2560         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
2561         (movdf_vfp): Ditto.
2562
2563 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
2564
2565         PR tree-optimization/26859
2566         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
2567         division by zero.
2568         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
2569         for the step after fold_convert.
2570
2571 2006-03-29  Paul Brook  <paul@codesourcery.com>
2572
2573         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
2574         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
2575
2576 2006-03-29  Paul Brook  <paul@codesourcery.com>
2577
2578         PR middle-end/23623
2579         * targhooks.c (default_narrow_bitfield): New fuction.
2580         * targhooks.h (default_narrow_bitfield): add prototype.
2581         * target.h (gcc_target): Add narrow_volatile_bitfield.
2582         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2583         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
2584         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
2585         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2586
2587 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2588
2589         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
2590         tmake_file.
2591         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
2592         (NR_C_MODES): Add TDmode, DDmode and SDmode.
2593         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
2594         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
2595         (s390_function_arg_float): Allow SDmode and DDmode values to be
2596         passed in floating point registers.
2597         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
2598         check with SCALAR_FLOAT_MODE_P.
2599         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
2600
2601 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
2602
2603         PR tree-optimization/25985
2604         * tree-ssa-loop-niter.c (number_of_iterations_le,
2605         number_of_iterations_ne): Make comments more precise.
2606         (number_of_iterations_cond): Add only_exit argument.  Use the
2607         fact that signed variables do not overflow only when only_exit
2608         is true.
2609         (loop_only_exit_p): New.
2610         (number_of_iterations_exit): Pass result of loop_only_exit_p to
2611         number_of_iterations_cond.
2612
2613 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
2614
2615         PR tree-optimization/26643
2616         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
2617         bit_field_refs.
2618
2619 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2620
2621         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
2622         (divsi3_i4_int): Likewise.
2623
2624 2006-03-28  Roger Sayle  <roger@eyesopen.com>
2625
2626         * expr.c (emit_group_store): Only create a new pseudo reg if the
2627         quantity it needs to hold isn't already a suitable pseudo.
2628
2629 2006-03-28  Jeff Law  <law@redhat.com>
2630
2631         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
2632         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
2633
2634 2006-03-28  Roger Sayle  <roger@eyesopen.com>
2635
2636         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
2637         the equivalent ~X & Y, and the symmetry related transformations.
2638         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
2639         ~X & Y, and symmetry related transforms.
2640
2641 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2642
2643         Revert my 2006-03-27 patches.
2644
2645 2006-03-28  Roger Sayle  <roger@eyesopen.com>
2646
2647         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
2648         ~(T1)X, when T1 and T2 are integer types of the same precision
2649         and (T2)X isn't an extension.
2650
2651 2006-03-28  Jeff Law  <law@redhat.com>
2652
2653         PR tree-optimization/26796
2654         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
2655         need EH edge cleanups rather than purging them immediately.
2656         (eliminate_degenerate_phis): Handle queued EH cleanups.
2657
2658 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
2659
2660         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
2661         from parent_var.
2662
2663 2006-03-27  Roger Sayle  <roger@eyesopen.com>
2664
2665         PR middle-end/22524
2666         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
2667         cast BIT_NOT_EXPR operand to the correct type.
2668
2669 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
2670
2671         * tree-loop-linear.c: Don't include varray.h.
2672         (gather_interchange_stats, try_interchange_loops,
2673         linear_transform_loops): Use VEC instead of VARRAY.
2674         * lambda-mat.c: Don't include varray.h.
2675         * tree-chrec.c: Same.
2676         * lambda-trans.c: Same.
2677         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
2678         VEC instead of VARRAY.
2679         * tree-vectorizer.h: Idem.
2680         * tree-data-ref.c (dump_data_references,
2681         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
2682         initialize_data_dependence_relation, finalize_ddr_dependent,
2683         compute_all_dependences, find_data_references_in_loop,
2684         compute_data_dependences_for_loop, analyze_all_data_dependences,
2685         free_dependence_relation, free_dependence_relations,
2686         free_data_refs): Idem.
2687         * tree-data-ref.h (data_reference_p, subscript_p): New.
2688         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
2689         VEC instead of VARRAY.
2690         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
2691         (find_data_references_in_loop, compute_data_dependences_for_loop,
2692         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
2693         dump_data_dependence_relations, free_dependence_relations,
2694         free_data_refs): Adjust declaration.
2695         (lambda_transform_legal_p): Move declaration here...
2696         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
2697         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
2698         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
2699         vect_analyze_data_refs): Use VEC instead of VARRAY.
2700         * lambda.h (lambda_transform_legal_p): ...from here.
2701         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
2702         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
2703         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
2704         tree-chrec.o): Don't depend on VARRAY_H.
2705
2706 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2707
2708         * rtl.def (Copyright): Update date.
2709         (DEPS_LIST): Change type of the second operand to 'int'.
2710         * target.h (Copyright): Update date.
2711         (struct gcc_target.speculate_insn): Change type of the second parameter
2712         to 'int'.
2713         * lists.c (Copyright): Update date.
2714         (alloc_DEPS_LIST): Change signature.  Update reference to the second
2715         operand of the DEPS_LIST.
2716         (copy_DEPS_LIST_list): Update reference to the second operand of the
2717         DEPS_LIST.
2718         * rtl.h (Copyright): Update date.
2719         (alloc_DEPS_LIST): Update signature.
2720         * sched-int.h (Copyright): Update date.
2721         (ds_t): Change typedef to 'int'.
2722         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2723
2724 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2725
2726         * haifa-sched.c (Copyright): Update date.
2727         (try_ready): Change condition to restore non-speculative pattern
2728         of the instruction.
2729         (process_insn_depend_be_in_spec): Code to keep probability of the
2730         speculative dependence non-decreasing.
2731
2732 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
2733
2734         * regrename.c (replace_oldest_value_addr): Initialize a variable to
2735         shut up the compiler.
2736
2737 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
2738
2739         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
2740         to use lib prefix for target.
2741         ($(T)libic_invalidate_array_4-200.a): Likewise.
2742         ($(T)libic_invalidate_array_4a.a): Likewise.
2743
2744 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
2745             J"orn Rennecke <joern.rennecke@st.com>
2746
2747         * superh.opt: New file.
2748         * sh.c (boardtype, osruntime): Remove.
2749         * superh.h (SUBTARGET_OPTIONS): Remove.
2750         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
2751
2752         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
2753         arguments with ^ and/or [].
2754
2755         * config.gcc (sh-*-*): Add quoting to account for quirk of
2756         Solaris /bin/sh.
2757         Replace == with = in enable_incomplete_targets test.
2758
2759         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
2760         with MASK_LITTLE_ENDIAN.
2761
2762         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
2763         * config/sh/sh.opt: Added to some comments.
2764         * config/sh/superh.h: Removed some chaff.
2765
2766         * config/sh/sh.opt: Add m4-[1234]00* options.
2767         * config/sh/sh.c (sh_handle_option): Likewise.
2768         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
2769         (ic_invalidate_array_4-100.o): New rule.
2770         ($(T)libic_invalidate_array_4-100.a): Likewise.
2771         (ic_invalidate_array_4-200.o): Likewise.
2772         ($(T)libic_invalidate_array_4-200.a): Likewise.
2773         (ic_invalidate_array_4a.o): Likewise.
2774         ($(T)libic_invalidate_array_4a.a): Likewise.
2775         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
2776         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
2777         m4-200*, and m4a*.
2778         * config/sh/crt1.asm: Merged in profiling code.
2779         * config/sh/superh.h (STARTFILE_SPEC): Override.
2780         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
2781         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
2782         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
2783
2784         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
2785         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
2786         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
2787
2788         * sh.opt (mpretend-cmove): New option.
2789         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
2790         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
2791         (movsicc): Add TARGET_PRETEND_CMOVE code.
2792
2793 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2794
2795         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
2796         s390_class_max_nregs): New function prototypes.
2797         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
2798         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
2799         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
2800         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
2801
2802 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
2803
2804         * dwarf2out.c (add_location_or_const_value_attribute): Call
2805         tree_add_const_value_attribute if nothing else works.
2806         (reference_to_unused): New.
2807         (rtl_for_decl_init): Use reference_to_unused to decide whether
2808         to output an initializer.
2809
2810 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
2811
2812         PR target/26459
2813         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
2814         peephole removing spe frob_di_df_2.
2815
2816 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
2817
2818         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
2819         (subscript_dependence_tester_1): Declared.
2820         (print_dir_vectors, print_dist_vectors): New.
2821         (debug_data_dependence_relation): New.
2822         (dump_data_dependence_relation): Print more details.
2823         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
2824         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
2825         (save_dist_v, save_dir_v, add_outer_distances,
2826         build_classic_dist_vector_1): New.
2827         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
2828         Don't test for lambda_vector_lexico_pos.
2829         (same_access_functions, add_multivariate_self_dist,
2830         add_other_self_distances, dir_from_dist): New.
2831         (build_classic_dir_vector): Replace implementation almost identical to
2832         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
2833         dir_from_dist.
2834         (subscript_dependence_tester_1): New.
2835         (subscript_dependence_tester): Handle the lexicographically negative
2836         distance vectors by recomputing the dependence relation.
2837         (compute_affine_dependence): Remove parameter loop_nest_depth.
2838         (compute_self_dependence): Don't call compute_subscript_distance.
2839         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
2840         Add a parameter for the loop_nest.
2841         (find_loop_nest_1, find_loop_nest): New.
2842         (compute_data_dependences_for_loop): Compute the loop nest, and give
2843         up if the nest is not well formed.
2844         * tree-data-ref.h (loop_p): New.
2845         (struct data_dependence_relation): Replace size_vect field with
2846         loop_nest, a vec of loops.
2847         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
2848         (DDR_LOOP_NEST): New.
2849         (print_dir_vectors, print_dist_vectors,
2850         debug_data_dependence_relation): Declared.
2851         (index_in_loop_nest): New.
2852         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
2853         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
2854         distance.
2855
2856 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
2857
2858         * simplify-rtx.c (simplify_relational_operation): Call
2859         simplify_relational_operation_1 even if mode is VOIDmode.
2860
2861 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
2862
2863         PR tree-optimization/26804
2864         * tree.h (DECL_CALL_CLOBBERED): New macro.
2865         (tree_decl_common): Add call_clobbered_flag.
2866         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
2867         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
2868         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
2869         (mark_non_addressable): Ditto.
2870         * tree-ssa.c (verify_call_clobbered): New function.
2871         (verify_alias_info): Use it.
2872         * tree-pass.h (pass_reset_cc_flags): New prototype.
2873         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
2874         (reset_cc_flags): New function.
2875         * passes.c (init_optimization_passes): Call reset_cc_flags after
2876         initializing referenced_vars.
2877
2878 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
2879             Roger Sayle  <roger@eyesopen.com>
2880
2881         PR middle-end/26717
2882         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
2883         to 1.0 for non-real operands. Implement A / A optimization for
2884         complex operands.
2885
2886 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
2887
2888         * config/i386/i386.c (size_cost): Correct the comment for
2889         cost of storing fp registers.
2890         (i386_cost): Likewise.
2891         (i486_cost): Likewise.
2892         (pentium_cost): Likewise.
2893         (pentiumpro_cost): Likewise.
2894         (k6_cost): Likewise.
2895         (athlon_cost): Likewise.
2896         (k8_cost): Likewise.
2897         (pentium4_cost): Likewise.
2898         (nocona_cost): Likewise.
2899         (generic64_cost): Likewise.
2900         (generic32_cost): Likewise.
2901
2902 2006-03-24  Denis Chertykov  <denisc@overta.ru>
2903
2904         * config/avr/avr-protos.h (extra_constraint): Delete.
2905         (extra_constraint_Q): New declaration.
2906         * config/avr/constraints.md: New file.
2907         * config/avr/avr.md: Include it.
2908         (REG_X, REG_Y, REG_Z, REG_W): New constants.
2909         (TMP_REGNO, ZERO_REGNO): Likewise.
2910         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
2911         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
2912         (extra_constraint): Delete.
2913         (extra_constraint_Q): Test for memory constraint 'Q'.
2914         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
2915         (REG_CLASS_FROM_LETTER): Delete.
2916         (CONST_OK_FOR_LETTER_P): Delete.
2917         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2918         (EXTRA_CONSTRAINT): Delete.
2919         (TMP_REGNO): Delete.
2920         (ZERO_REGNO): Delete.
2921
2922 2006-03-24  Jeff Law  <law@redhat.com>
2923
2924         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
2925         directly.  Call mark_new_vars_to_rename slightly earlier.
2926
2927 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
2928
2929         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
2930         (is_cxx): Likewise.
2931         (gen_compile_unit_die): Use new language types for Objective-C and
2932         Objective-C++.
2933         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
2934         DW_LANG_C_plus_plus.
2935
2936         PR 26793
2937         * config/t-darwin (crt3.o): Work around bug 26840.
2938         * config/darwin-crt3.c: Rewrite.
2939         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
2940
2941 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
2942
2943         * doc/invoke.texi: Document -femit-class-debug-always
2944         * common.opt: Add -femit-class-debug-always.
2945
2946 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2947
2948         * config/s390/s390.c (s390_decompose_address): Allow SImode for
2949         index and base register.
2950         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
2951         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
2952         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
2953         REGNO_OK_FOR_INDEX_P.
2954         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
2955         ADDR_REGNO_P.
2956         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
2957         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
2958         REG_OK_FOR_BASE_P): Definitions removed.
2959
2960 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
2961
2962         PR middle-end/26611
2963         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
2964         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
2965         set yet or weren't marked as local yet.
2966
2967 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2968
2969         * regrename.c (scan_rtx_address): Initialize a variable to shut up
2970         the compiler.
2971
2972 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2973
2974         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
2975         (rs6000_legitimate_small_data_p): Delete.
2976         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
2977         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
2978         and make static.  Add forward declaration.  Update uses.
2979         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
2980         of offsettable_memref_p.
2981         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
2982         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
2983
2984 2006-03-24  Jeff Law  <law@redhat.com>
2985
2986         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
2987         around bug in immediate-use iterator.
2988
2989 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
2990
2991         PR target/26607
2992         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
2993         or __LITTLE_ENDIAN__.
2994
2995 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
2996
2997         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
2998         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
2999         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
3000         * config/sh/sh.opt (mdiv=): Amend description.
3001         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
3002         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
3003         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
3004         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
3005         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
3006         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
3007         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
3008         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
3009         TARGET_DIVIDE_CALL_FP.
3010
3011 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3012
3013         * haifa-sched.c (choose_ready): Fix type of the local variable.
3014         Move local variables.  Add comment.
3015         (check_reg_live): Change signature.  Make callable from debugger.
3016         * sched-int.h (check_reg_live): Update signature.
3017         * sched-ebb.c (check_reg_live): Update parameters.
3018         * sched-rgn.c (check_reg_live): Ditto.
3019         (region_head_or_leaf_p): Check pointer before dereferencing.
3020         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
3021         before reload on optimization levels below 1.
3022
3023 2006-03-23  Richard Henderson  <rth@redhat.com>
3024
3025         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
3026         tls symbols.
3027
3028         PR target/26347
3029         * config/alpha/predicates.md (local_symbolic_operand): Reject
3030         weak symbols.
3031
3032 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
3033
3034         PR tree-opt/26795
3035         * tree-ssa-pre.c (create_value_expr_from): Don't reject
3036         expressions which have overflowed constants.
3037
3038 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
3039
3040         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
3041
3042 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
3043
3044         * cfgloopmanip.c (create_loop_notes): Removed.
3045         * final.c (final_scan_insn): Do not handle loop notes.
3046         * jump.c (squeeze_notes): Ditto.
3047         * cfglayout.c (skip_insns_after_block,
3048         duplicate_insn_chain): Ditto.
3049         * cfgcleanup.c (rest_of_handle_jump2): Do not call
3050         create_loop_notes.
3051         * cfgloop.h (create_loop_notes): Declaration removed.
3052
3053 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
3054
3055         * varasm.c (output_constant_pool): Restore fnname and fndecl
3056         arguments.
3057         (assemble_start_function): Adjust call accordingly.
3058         (assemble_end_function): Likewise.
3059
3060 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3061
3062         PR mudflap/26789
3063         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
3064
3065         PR mudflap/26790
3066         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
3067
3068 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3069
3070         PR driver/22600
3071         * system.h (ICE_EXIT_CODE): New macro.
3072         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
3073         (diagnostic_action_after_output): Likewise.
3074         * gcc.c (fatal_ice): New function.
3075         (execute): Use it instead of fatal.
3076         (fancy_abort): Likewise.
3077         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
3078
3079 2006-03-22  Jeff Law  <law@redhat.com>
3080
3081         * loop-unroll.c (analyze_iv_to_split_insn): Handle
3082         iv_analyze_result returning false.
3083
3084 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
3085
3086         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
3087
3088 2006-03-22  Richard Henderson  <rth@redhat.com>
3089
3090         PR middle-end/26084
3091         * except.c (duplicate_eh_regions_0): New.
3092         (duplicate_eh_region_1): Duplicate the children of the node as
3093         well as the node itself.  Link them up properly.
3094         (duplicate_eh_region_2): Merge into ...
3095         (duplicate_eh_regions): ... here.  Take copy_region argument, and
3096         copy only a sub-tree if asked.  Simplify copying and fixup.
3097         (eh_region_outer_p): New.
3098         * except.h (duplicate_eh_regions): Update decl.
3099         (eh_region_outer_p): Declare.
3100         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
3101         (lower_omp_master): Likewise.
3102         (lower_omp_ordered): Likewise.
3103         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
3104         (move_stmt_r): Use it to remap labels.  Handle recursion vs
3105         remap_decls_p properly.
3106         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
3107         (find_outermost_region_in_block): New.
3108         (new_label_mapper): New.
3109         (move_sese_region_to_fn): Copy eh information to the new function
3110         properly.
3111         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
3112         argument.
3113         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
3114         number.
3115
3116 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
3117
3118         * doc/md.texi (-mshared): Mention that -mshared code can be linked
3119         into shared libraries.
3120
3121 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
3122
3123         * doc/md.texi: Refer to i386/constraints.md instead of
3124         i386/predicates.md.
3125         * config/i386/constraints.md: New file, extracted from...
3126         * config/i386/predicates.md: ...here.
3127         * config/i386/i386.md: Include constraints.md.
3128
3129 2006-03-21  Jason Merrill  <jason@redhat.com>
3130
3131         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
3132
3133         PR middle-end/20297
3134         * expr.c (init_block_move_fn): Force default visibility.
3135         (init_block_clear_fn): Likewise.
3136         * builtins.c (expand_builtin_fork_or_exec): Likewise.
3137         * targhooks.c (default_external_stack_protect_fail): Likewise.
3138
3139 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
3140
3141         * config/mips/predicates.md (const_call_insn_operand): Allow direct
3142         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
3143         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
3144         Use TARGET_OLDABI instead of !TARGET_NEWABI.
3145         (loadgp): Use mips_current_loadgp_style.
3146         (loadgp_noshared): New pattern.
3147         (sibcall_internal): Use MIPS_CALL.
3148         (sibcall_value_internal): Likewise.
3149         (sibcall_value_multiple_internal): Likewise.
3150         (call_internal): Likewise.
3151         (call_value_internal): Likewise.
3152         (call_value_multiple_internal): Likewise.
3153         (call_split): Use MIPS_CALL and add an 'S' constraint.
3154         (call_value_split): Likewise.
3155         (call_value_multiple_split): Likewise.
3156         * config/mips/mips.opt (-mabicalls): Tweak docstring.
3157         (-mshared): New option.
3158         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
3159         (mips_current_loadgp_style): Declare.
3160         * config/mips/mips.c (mips_classify_symbol): Avoid using
3161         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
3162         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
3163         TARGET_ABSOLUTE_ABICALLS.
3164         (override_options): Adjust comments.  Improve the warning that is
3165         issued when -mabicalls and -G are used together.
3166         (mips_file_start): Remove comment.
3167         (mips_current_loadgp_style): New function.
3168         (mips_gnu_local_gp): New variable.
3169         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
3170         LOADGP_ABSOLUTE.
3171         (mips_output_function_prologue): Use mips_current_laodgp_style.
3172         (mips_expand_prologue): Call mips_emit_loadgp before emitting
3173         the cprestore instruction.
3174         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
3175         live for TARGET_ABSOLUTE_ABICALLS.
3176         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
3177         (ASM_SPEC): Pass down -mshared and -mno-shared.
3178         (MIPS_CALL): New macro.
3179         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
3180         definition.
3181         * doc/invoke.texi (-mabicalls): Update documentation.
3182         (-mshared): Document.
3183
3184 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
3185
3186         * config/ia64/unwind-hpux.c: New file.
3187         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
3188
3189 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
3190
3191         PR libgomp/26384
3192         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
3193
3194 2006-03-21  Jeff Law  <law@redhat.com>
3195
3196         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
3197         type conversions of a VR_VARYING source to a wider type.
3198
3199 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3200
3201         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
3202         tm_file on Solaris 10 and later.
3203         (sparc64-*-solaris2*): Likewise.
3204         (sparc-*-solaris2*): Likewise.
3205         * config/sol26.h: Rename to config/sol2-6.h.
3206         * config/sol2-10.h: New file.
3207
3208 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
3209
3210         PR tree-opt/26781
3211         * tree-ssa-pre.c (create_component_ref_by_pieces):
3212         Handle STRING_CST.
3213
3214 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
3215
3216         PR c++/26690
3217         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
3218         return it immediately.
3219
3220 2006-03-21  Michael Matz  <matz@suse.de>
3221
3222         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
3223         New members.
3224         (remove_arc, add_arc): Update num_out_arcs member.
3225         (set_out_arc_insns_equiv_num): Returns nothing instead of number
3226         of out arcs.
3227         (cache_presence): New function.
3228         (compare_states_for_equiv): New function.
3229         (state_is_differed): Don't take number of outargs, adjust callers.
3230         Use new invariant for speeding up.
3231         (init_equiv_class): Create initial classes based on sorted
3232         input.
3233         (partition_equiv_class): Don't track out_arcs_num.
3234         (evaluate_equiv_classes): Call cache_presence on all states and
3235         sort them.
3236
3237 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
3238
3239         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
3240         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
3241         (bfin_valid_reg_p): Test for pseudos explicitly and use only
3242         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
3243         callers changed.
3244         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
3245         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
3246         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
3247         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
3248         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
3249         macros.
3250         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
3251         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
3252         (REGNO_REG_CLASS): ARGP is in PREGS.
3253         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
3254         IREGS.
3255         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
3256         to deal with those addresses.
3257         * addresses.h: New file.
3258         * caller-save.c: Include "addresses.h".
3259         (init_caller_save): Use new base_reg_class function.
3260         * rtl-factoring.c: Include "addresses.h".
3261         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
3262         * recog.c: Include "addresses.h".
3263         (preprocess_constraints): Use new base_reg_class function.
3264         * regrename.c: Include "addresses.h".
3265         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
3266         functions.  Keep track of a new var INDEX_CODE to compute valid
3267         classes.
3268         (replace_oldest_value_addr): Likewise.
3269         (replace_oldest_value_mem): Use base_reg_class.
3270         * reload.c: Include "addresses.h".
3271         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
3272         (find_reloads): Use new base_reg_class function.
3273         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
3274         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
3275         all callers and prototype changed.
3276         * reload1.c: Include "addresses.h".
3277         (maybe_fix_stack_asms): Use base_reg_class.
3278         * regclass.c: Include "addresses.h".
3279         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
3280         (init_reg_autoinc): Use new base_reg_class function.
3281         (record_reg_classes): Likewise.
3282         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
3283         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
3284         Use new args to compute necessary class.
3285
3286         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
3287         regrename.o, rtl-factoring.o): Update dependencies.
3288         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
3289         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3290         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
3291         REG_OK_FOR_INDEX_P): Delete documentation.
3292
3293 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
3294
3295         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
3296         from V7 to V9 for Solaris 7 and above.
3297
3298 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
3299
3300         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
3301         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
3302         argument pointers may not alias any other storage.
3303         * common.opt: Define option -fargument-noalias-anything.
3304         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
3305         alias semantics is specified by flag_argument_noalias > 2.
3306
3307 2006-03-20  Jeff Law  <law@redhat.com>
3308
3309         * tree-pass.h (pass_phi_only_copy_prop): Delete.
3310         (pass_phi_only_cprop): Declare.
3311         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
3312         with phi_only_cprop
3313         * tree-ssa-dom.c (degenerate_phi_result): New function.
3314         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
3315         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
3316         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
3317         (eliminate_degenerate_phis): Likewise.
3318         (pass_phi_only_cprop): New pass descriptor.
3319         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
3320         support code.  Callers updated.
3321         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
3322         (store_copy_prop): Likewise.
3323         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
3324
3325 2006-03-20  Jason Merrill  <jason@redhat.com>
3326
3327         PR c++/21764
3328         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
3329         (push_visibility, pop_visibility): Likewise.
3330         * c-pragma.h: Declare them.
3331
3332 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3333
3334         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
3335
3336         * config/sh/sh.c (find_regmode_weight): Change the type of the first
3337         parameter and use get_ebb_head_tail.
3338         (sh_md_init_global): Adjust uses of find_regmode_weight.
3339
3340 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
3341
3342         * function.h (struct function) <x_tail_recursion_reentry>:
3343         Rename to x_stack_check_probe_note.
3344         (tail_recursion_reentry): Rename to stack_check_probe_note.
3345         * function.c: Replace tail_recursion_reentry with
3346         stack_check_probe_note everywhere.
3347         (expand_function_start): Only emit a note for
3348         stack_check_probe_note with -fstack-protect.
3349         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
3350
3351         * emit-rtl.c (remove_unnecessary_notes): Remove.
3352         (pass_remove_unnecessary_notes): Remove.
3353         * rtl.h (remove_unnecessary_notes): Remove prototype.
3354         * final.c (final_start_function): Don't call remove_unnecessary_notes.
3355         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
3356         * passes.c (pass_remove_unnecessary_notes): Don't run it.
3357
3358 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
3359
3360         PR tree-opt/26629
3361         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
3362         (valid_in_set): Handle ARRAY_REF.
3363         Change "if min_variant or VH" to asserts.
3364         (create_component_ref_by_pieces): Handle ARRAY_REF.
3365         (create_expression_by_pieces): Likewise.
3366         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
3367
3368 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
3369
3370         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
3371         is operand of switch, not str[0].
3372
3373 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
3374
3375         * config/rs6000/rs6000.c (rs6000_handle_option): Use
3376         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
3377
3378 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
3379
3380         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
3381         end of insn_extra_address_constraint declaration.
3382
3383 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
3384
3385         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
3386         (no-sum-in-toc): Same.
3387         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
3388         variables.
3389         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
3390         NO_FP_IN_TOC for -fPIC instead of mask.
3391
3392         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
3393         (BOOT_LDFLAGS): Delete.
3394         (LDFLAGS): Delete.
3395         * config/rs6000/t-aix52: Same.
3396
3397         * config/rs6000/rs6000.md (store_multiple_power): Delete.
3398         (stmsi[345678]_power): New.
3399
3400 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
3401
3402         * config/ia64/ia64.opt: Add empty line to end of file.
3403
3404 2006-03-17  Richard Guenther  <rguenther@suse.de>
3405
3406         PR middle-end/26721
3407         * builtins.c (get_pointer_alignment): For component style references
3408         adjust alignment to the component type alignment.  Make sure
3409         to adjust alignment for component access of constants.
3410
3411 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
3412
3413         * config/rs6000/rs6000.md (strlensi): Emit barrier after
3414         unconditional jump.
3415
3416 2006-03-17  Paul Brook  <paul@codesourcery.com>
3417
3418         * doc/install.texi: Docuemnt --with-mode.
3419         * config.gcc: Add --with-mode for arm*-*-*.
3420         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
3421
3422 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
3423
3424         * sh.c (max_labelno_before_reorg): New variable.
3425         (sh_reorg): Initialize it.
3426         (find_barrier): Check max_labelno_before_reorg before using
3427         label_to_alignment.  Take length of explicit alignment insns
3428         into account.  When seeing a UNSPECV_CONST_END, return it.
3429
3430         * sh.c (fixup_mova): Set mode of affected label to QImode.
3431         (untangle_mova): New function.
3432         (find_barrier): Use it.  Check mode of label before decrementing
3433         num_mova.
3434         (sh_reorg): Likewise.
3435         Set mode of all insns back to VOIDmode.
3436
3437         * sh.c (MOVA_LABELREF): New macro.
3438         (mova_p, fixup_mova, sh_reorg): Use it.
3439         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
3440         ADDR_DIFF_VEC matches mova.
3441
3442 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
3443
3444         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
3445         with ATTRIBUTE_UNUSED.
3446
3447 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
3448
3449         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3450         pointer, instead of assuming it is possible to derive the
3451         correct args size from a call insn.
3452
3453 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3454
3455         * rtl.h (CONST_INT_P): Define.
3456         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
3457         instead of GET_CODE(x) == CONST_INT.
3458         (vax_rtx_costs): Likewise.
3459         (vax_output_int_move): Likewise.
3460         (vax_output_int_add): Likewise.
3461         (legitimate_constant_address_p): Likewise.
3462         (index_term_p): Likewise.
3463         * config/vax/vax.h (PRINT_OPERAND): Likewise.
3464         * config/vax/vax.md (and<mode>3): Likewise.
3465         (ashrsi3): Likewise.
3466         (extv): Likewise.
3467         (movstricthi): Likewise.
3468         (movstrictqi): Likewise.
3469         (rotrsi3): Likewise.
3470         (five unnamed insns): Likewise.
3471
3472 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
3473
3474         * doc/tm.texi (SDB and DWARF): Add extra parameter to
3475         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
3476         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
3477         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
3478         Pass to ASM_OUTPUT_DWARF_OFFSET.
3479         * dwarf2out.c (debug_frame_section): New.
3480         (output_call_frame_info): Use debug_frame_section.  Pass it to
3481         dw2_asm_output_offset.
3482         (output_die): Pass appropriate section to dw2_asm_output_offset.
3483         (output_compilation_unit_header): Likewise.
3484         (output_pubnames): Likewise.
3485         (output_aranges): Likewise.
3486         (enum dw_val_class): Break dw_val_class_lbl_offset into
3487         dw_val_class_lineptr and dw_val_class_macptr.
3488         (add_AT_lbl_offset): Delete.
3489         (add_AT_lineptr): New.
3490         (add_AT_macptr): New.
3491         (AT_lbl): Expect a lineptr or macptr.
3492         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
3493         (attr_checksum): Likewise.
3494         (same_dw_val_p): Likewise.
3495         (size_of_die): Likewise.
3496         (value_format): Likewise.
3497         (output_die): Likewise.
3498         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
3499         add_AT_lbl_offset.
3500         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
3501         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
3502         * config/darwin-protos.h (darwin_file_start): New.
3503         (darwin_asm_output_dwarf_offset): New.
3504         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
3505         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
3506         darwin_file_start.
3507         * config/darwin.c (darwin_emit_unwind_label): Don't output label
3508         if not EH section; simplify.
3509         (darwin_file_start): New.
3510         (darwin_asm_output_dwarf_offset): New.
3511         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
3512         mark as 'debug'.
3513         (DEBUG_INFO_SECTION): Likewise.
3514         (DEBUG_ABBREV_SECTION): Likewise.
3515         (DEBUG_ARANGES_SECTION): Likewise.
3516         (DEBUG_MACINFO_SECTION): Likewise.
3517         (DEBUG_LINE_SECTION): Likewise.
3518         (DEBUG_LOC_SECTION): Likewise.
3519         (DEBUG_PUBNAMES_SECTION): Likewise.
3520         (DEBUG_STR_SECTION): Likewise.
3521         (DEBUG_RANGES_SECTION): Likewise.
3522         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
3523         (ASM_OUTPUT_DWARF_OFFSET): New.
3524
3525 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
3526
3527         * config.gcc (tm_defines): Always add to previous value rather
3528         than replacing it.
3529
3530 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
3531
3532         * config/mips/predicates.md (splittable_const_int_operand): New,
3533         split from move_operand.
3534         (splittable_symbolic_operand): New.
3535         (move_operand): Add commentary.  Use splittable_const_int_operand.
3536         Inline mips_atomic_symbolic_constant_p.
3537         * config/mips/mips.md: Add combine splitters for handling moves
3538         of splittable_const_int_operands and splittable_symbolic_operands.
3539         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
3540         (mips_split_symbol): Declare.
3541         (mips_move_integer): Declare.
3542         * config/mips/mips.c (mips_split_p): Make global.
3543         (TARGET_MIN_ANCHOR_OFFSET): Override default.
3544         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
3545         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
3546         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
3547         (mips_offset_within_object_p): Handle block symbols.
3548         (mips_atomic_symbolic_constant_p): Delete.
3549         (mips_cannot_force_const_mem): Return false for constants that
3550         mips_legitimize_move can handle.
3551         (mips_use_blocks_for_constant_p): New function.
3552         (mips_split_symbol): Make global.
3553         (mips_move_integer): Likewise.  Add a temporary register argument.
3554         (mips_legitimize_const_move): Use splittable_const_int_operand and
3555         splittable_symbolic_operand.
3556         (mips_use_anchors_for_symbol_p): New function.
3557         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
3558         (mips_split_p): Declare.
3559
3560 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
3561
3562         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
3563         (mips*-*-linux*): Likewise.
3564
3565 2006-03-16  Roger Sayle  <roger@eyesopen.com>
3566             Daniel Speyer  <dspeyer@wam.umd.edu>
3567
3568         PR middle-end/18259
3569         * tree-dump.c (dump_real): New function.
3570         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
3571         * Makefile.in (REAL_H): New macro for dependencies on real.h.
3572         (tree-dump.o): Add $(REAL_H) to the dependencies.
3573
3574 2006-03-16  Roger Sayle  <roger@eyesopen.com>
3575
3576         PR middle-end/21781
3577         * real.c (real_from_string): If the mantissa is zero, don't bother
3578         parsing the exponent as the result should always be zero.
3579
3580 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
3581
3582         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
3583
3584 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3585
3586         * config/ia64/ia64.c (stops_p): Added explicit initialization.
3587         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
3588         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
3589         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
3590         ia64_sched_finish_global): New static functions to implement
3591         hooks from gcc_target.sched.
3592         (spec_check_no, max_uid, pending_data_specs): New static variables.
3593         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
3594         ia64_spec_check_src_p): New static functions.
3595         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
3596         (TARGET_SCHED_ADJUST_COST): Removed.
3597         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
3598         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
3599         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3600         TARGET_SCHED_GEN_CHECK,
3601         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3602         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
3603         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
3604         Fixed to handle speculation checks.
3605         (rtx_needs_barrier): Fixed to handle speculative loads and
3606         their checks.
3607         (ia64_variable_issue): Added code to count speculative loads and their
3608         checks.
3609         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
3610         speculative loads.
3611         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
3612         New enumerations.
3613         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
3614         New constants.
3615         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
3616         (ia64_reorg): Reset stops_p to NULL after it is freed.
3617         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
3618         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
3619         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
3620         chk_a.
3621         (data_speculative, control_speculative, check_load): New attributes.
3622         (mov<mode>_advanced, mov<mode>_speculative,
3623         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
3624         zero_extend<mode>di2_speculative,
3625         zero_extend<mode>di2_speculative_advanced): New patterns for
3626         data and control speculative loads.
3627         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
3628         check loads.
3629         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
3630         New pattern for data and control speculation checks.
3631         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
3632         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
3633         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
3634         Auxiliary definitions for the patterns.
3635         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
3636         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
3637         constraints.
3638         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
3639         for speculation.
3640         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
3641         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
3642         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
3643         New resource constraints.
3644         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
3645         for speculation.
3646         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
3647         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
3648         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3649         msched-in-control-spec, msched-ldc, msched-control-ldc,
3650         msched-spec-verbose, msched-prefer-non-data-spec-insns,
3651         msched-prefer-non-control-spec-insns,
3652         msched-count-spec-in-critical-path): New flags to tune speculative
3653         scheduling.
3654         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
3655         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3656         msched-in-control-spec, msched-ldc, msched-control-ldc,
3657         msched-spec-verbose, msched-prefer-non-data-spec-insns,
3658         msched-prefer-non-control-spec-insns,
3659         msched-count-spec-in-critical-path): Document new flags.
3660
3661 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3662
3663         * target.h (struct spec_info_def): New opaque declaration.
3664         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
3665         speculate_insn, needs_block_p, gen_check,
3666         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
3667         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
3668         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
3669         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
3670         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3671         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
3672         gcc_target.sched.
3673         (TARGET_SCHED): Use new macros.
3674         * rtl.h (copy_DEPS_LIST_list): New prototype.
3675         * sched-int.h (struct sched_info): Change signature of new_ready field,
3676         adjust all initializations. New fields: add_remove_insn,
3677         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
3678         region_head_or_leaf_p.
3679         (struct spec_info_def): New structure declaration.
3680         (spec_info_t): New typedef.
3681         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
3682         recovery_block, orig_pat.
3683         (glat_start, glat_end): New variables declaraions.
3684         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
3685         New access macros.
3686         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
3687         DETACH_LIFE_INFO, USE_GLAT.
3688         (enum SPEC_SCHED_FLAGS): New enumeration.
3689         (NOTE_NOTE_BB_P): New macro.
3690         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
3691         attach_life_info, debug_spec_status, check_reg_live): New functions.
3692         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
3693         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
3694         sched-ebb.c
3695         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
3696         * ddg.c (get_block_head_tail): Adjust all uses.
3697         * modulo-sched.c (get_block_head_tail): Adjust all uses.
3698         (sms_sched_info): Initialize new fields.
3699         (contributes_to_priority): Removed.
3700         * haifa-sched.c (params.h): New include.
3701         (get_block_head_tail): Adjust all uses.
3702         (ISSUE_POINTS): New macro.
3703         (glat_start, glat_end): New global variables.
3704         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
3705         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
3706         old_last_basic_block, before_recovery, current_sched_info_var,
3707         rgn_n_insns, luid): New static variables.
3708         (insn_cost1): New function.  Move logic from insn_cost to here.
3709         (find_insn_reg_weight1): New function.  Move logic from
3710         find_insn_reg_weight to here.
3711         (reemit_notes, move_insn, max_issue): Change signature.
3712         (move_insn1): Removed.
3713         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
3714         extend_bb): New static functions to support extension of scheduler's
3715         data structures.
3716         (generate_recovery_code, process_insn_depend_be_in_spec,
3717         begin_speculative_block, add_to_speculative_block,
3718         init_before_recovery, create_recovery_block, create_check_block_twin,
3719         fix_recovery_deps): New static functions to support
3720         generation of recovery code.
3721         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
3722         restore_bb_notes, move_block_after_check, move_succs): New static
3723         functions to support ebb scheduling.
3724         (init_glat, init_glat1, attach_life_info1, free_glat): New static
3725         functions to support handling of register live information.
3726         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
3727         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
3728         add_jump_dependencies): New static functions.
3729         (check_cfg, has_edge_p, check_sched_flags): New static functions for
3730         consistancy checking.
3731         (debug_spec_status): New function to call from debugger.
3732         (priority): Added code to handle speculation checks.
3733         (rank_for_schedule): Added code to distinguish speculative instructions.
3734         (schedule_insn): Added code to handle speculation checks.
3735         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
3736         Fixed to handle ebbs.
3737         (move_insn): Added code to handle ebb scheduling.
3738         (max_issue): Added code to use ISSUE_POINTS of instructions.
3739         (choose_ready): Added code to choose between speculative and
3740         non-speculative instructions.
3741         (schedule_block): Added code to handle ebb scheduling and scheduling of
3742         speculative instructions.
3743         (sched_init): Initialize new variables.
3744         (sched_finish): Free new variables.  Print statistics.
3745         (try_ready): Added code to handle speculative instructions.
3746         * lists.c (copy_DEPS_LIST_list): New function.
3747         * sched-deps.c (extend_dependency_caches): New function.  Move logic
3748         from create_dependency_caches to here.
3749         (get_dep_weak, ds_merge): Make global.
3750         * genattr.c (main): Code to output prototype for
3751         dfa_clear_single_insn_cache.
3752         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
3753         (output_dfa_clean_insn_cache_func): Code to output
3754         dfa_clear_single_insn_cache function.
3755         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
3756         n_insns.
3757         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
3758         Removed.
3759         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
3760         New static variables.
3761         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
3762         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
3763         struct sched_info.
3764         (ebb_sched_info): Initialize new fields.
3765         (get_block_head_tail): Adjust all uses.
3766         (compute_jump_reg_dependencies): Fixed to use glat_start.
3767         (schedule_ebb): Code to remove unreachable last block.
3768         (schedule_ebbs): Added code to update register live information.
3769         * sched-rgn.c (region_sched_info): Initialize new fields.
3770         (get_block_head_tail): Adjust all uses.
3771         (last_was_jump): Removed.  Adjust users.
3772         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
3773         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
3774         Implement new hooks.
3775         (check_dead_notes1): New static function.
3776         (struct region): New fields: dont_calc_deps, has_real_ebb.
3777         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
3778         (BB_TO_BLOCK): Fixed to handle EBBs.
3779         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
3780         (ebb_head): New static variable.
3781         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
3782         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
3783         new fields.
3784         (compute_dom_prob_ps): New assertion.
3785         (check_live_1, update_live_1): Fixed to work with glat_start instead of
3786         global_live_at_start.
3787         (init_ready_list): New assertions.
3788         (can_schedule_ready_p): Split update code to begin_schedule_ready.
3789         (new_ready): Add support for BEGIN_CONTROL speculation.
3790         (schedule_insns): Fixed code that updates register live information
3791         to handle EBBs.
3792         (schedule_region): Fixed to handle EBBs.
3793         (init_regions): Use extend_regions and check_dead_notes1.
3794         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
3795         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
3796         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
3797         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3798         TARGET_SCHED_GEN_CHECK,
3799         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3800         TARGET_SCHED_SET_SCHED_FLAGS): Document.
3801         * doc/invoke.texi (max-sched-insn-conflict-delay,
3802         sched-spec-prob-cutoff): Document.
3803
3804 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3805
3806         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
3807         inter_tick, queue_index.
3808         (struct sched_info): Change signature of init_ready_list field.
3809         Adjust all initializations.
3810         (RESOLVED_DEPS): New access macro.
3811         (ready_add): Remove prototype.
3812         (try_ready): Add prototype.
3813         * sched-rgn.c (init_ready_list): Use try_ready.
3814         (schedule_region): Initialize
3815         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
3816         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
3817         (init_ready_list): Use try_ready.
3818         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
3819         * lists.c (remove_list_elem): Remove `static'.
3820         (remove_free_INSN_LIST_elem): New function.
3821         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
3822         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
3823         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
3824         New constants.
3825         (readyp): New variable.
3826         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
3827         change_queue_index, resolve_dep): New static functions.
3828         (try_ready): New function.  Adjust callers in sched-rgn.c and
3829         sched-ebb.c to use it instead of ready_add.
3830         (clock_var): Move at the begining of file.
3831         (rank_for_schedule): Fix typo.
3832         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
3833         (ready_lastpos): Enforce assertion.
3834         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
3835         update all callers.
3836         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
3837         (schedule_insn): Rewrite to use try_ready and resolve_dep.
3838         (queue_to_ready): Use free_INSN_LIST_list.
3839         (early_queue_to_ready): Fix typo.
3840         (schedule_block): Init readyp.  Move init_ready_list call after the
3841         initialization of clock_var.  Fix error in rejecting insn by
3842         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
3843         that previously corrected INSN_TICKs.  Add code for handling
3844         QUEUE_INDEX.
3845         (set_priorities): Fix typo.
3846         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
3847         Clarify comment and code that keeps current_sched_info->next_tail
3848         non-null.
3849
3850 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3851
3852         * sched-rgn.c (extend_rgns): New static function.
3853         (find_rgns): Use it.
3854         (gather_region_statistics, print_region_statistics): New static
3855         functions.
3856         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
3857         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
3858
3859 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3860             Andrey Belevantsev <abel@ispras.ru>
3861
3862         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
3863         * lists.c (unused_deps_list): New variable.
3864         (free_list): Add assertions to verify the proper distinguishing
3865         between INSN_LISTs and DEPS_LISTs.
3866         (find_list_elem, remove_list_elem, remove_list_node): New static
3867         functions.
3868         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
3869         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
3870         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
3871         (alloc_INSN_LIST): Assert that the list we're working on is indeed
3872         an INSN_LIST.
3873         (free_INSN_LIST_node): Likewise.
3874         * modulo-sched.c (current_sched_info): Initialize flags field.
3875         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
3876         * rtl.def (DEPS_LIST): Define.
3877         * rtl.h: Declare new functions from lists.c.
3878         * sched-deps.c (spec_dependency_cache): New static variable.
3879         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
3880         (add_dependence): Change return type to void.  Move the logic to ...
3881         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
3882         (delete_all_dependences): Add comment about forward_dependency_cache.
3883         Handle spec_dependency_cache.  Handle DEPS_LISTs.
3884         (fixup_sched_groups): Clarify the change of priority of output
3885         and anti dependencies.
3886         (sched_analyze_2): Adjust add_dependence calls to create data
3887         speculative dependence.
3888         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
3889         Adjust all callers.  Handle DEPS_LISTS.
3890         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
3891         presence of speculation.
3892         (init_dependency_caches, free_dependency_caches):
3893         Handle spec_dependency_cache.
3894         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
3895         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
3896         New static functions.
3897         (add_or_update_back_dep, add_or_update_back_forw_dep,
3898         add_back_forw_dep, delete_back_forw_dep): New functions.
3899         * sched-int.h (ds_t, dw_t): New typedefs.
3900         (struct sched_info): Add new field flags.
3901         (struct haifa_insn_data): Add new bitfield has_internal_dep.
3902         Prototype new sched-deps.c functions.
3903         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
3904         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
3905         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
3906         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
3907         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
3908         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
3909         New constants.
3910         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
3911         New enums.
3912         * sched-rgn.c (current_sched_info): Initialize flags field.
3913         (schedule_insns): Initialize current_sched_info before the sched_init
3914         call.
3915         * sched-ebb.c (current_sched_info): Initialize flags field.
3916         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
3917         Call add_or_update_back_dep instead of add_dependence.
3918         Create control speculative dependencies.
3919         (schedule_insns): Initialize current_sched_info before the sched_init
3920         call.
3921
3922 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3923
3924         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
3925         fs->signal_frame.
3926         (sh_fallback_frame_state): Likewise.
3927
3928 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
3929
3930         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
3931         Do switch on default_use_cxa_atexit.
3932         (powerpc*-*-darwin*): Build crt2.o on powerpc.
3933         * config/darwin-crt3.o: New.
3934         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
3935         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
3936         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
3937         OS version.
3938         * config/rs6000/t-darwin: Move crt2.o building to here.
3939         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
3940         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
3941         of __cxa_atexit.
3942
3943 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3944
3945         * config/vax/vax.c (nonindexed_address_p): Change logical negation
3946         from '! xxx' to '!xxx' for coding-style conformance.
3947         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
3948         (EXTRA_CONSTRAINT): Likewise.
3949         * config/vax/vax.md (four unnamed insns): Likewise.
3950
3951 2006-03-15  Paul Brook  <paul@codesourcery.com>
3952
3953         * config/arm/arm.c (minipool_pad): New.
3954         (add_minipool_forward_ref): Include pool alignment padding in address
3955         calculation.
3956         (push_minipool_fix): Set minipool_pad.
3957         (minipool_pad): Ditto.
3958
3959 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3960
3961         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
3962         instead of GET_CODE() == MEM and REG_P() instead of
3963         GET_CODE() == REG.
3964         (print_operand_address): Likewise.
3965         (vax_address_cost): Likewise.
3966         (vax_rtx_costs): Likewise.
3967         (vax_notice_update_cc): Likewise.
3968         (vax_output_int_add): Likewise.
3969         (INDEX_REGISTER_P): Likewise.
3970         (BASE_REGISTER_P): Likewise.
3971         (nonindexed_address_p): Likewise.
3972         (vax_mode_dependent_address_p): Likewise.
3973         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
3974         (PRINT_OPERAND): Likewise.
3975         * config/vax/vax.md (ashlsi3): Likewise.
3976         (ashlsi3): Likewise.
3977         (some more unnamed insns): Likewise.
3978
3979 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
3980
3981         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
3982         iterator-style macro.
3983         (mark_control_dependent_edges_necessary): Update the use of
3984         EXECUTE_IF_CONTROL_DEPENDENT.
3985
3986 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
3987
3988         * config/sh/predicates.md (cache_address_operand): Special.
3989         (ua_address_operand): Likewise.
3990
3991 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
3992
3993         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
3994         loop notes.
3995         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
3996
3997 2006-03-15  Andreas Schwab  <schwab@suse.de>
3998
3999         * gensupport.c (identify_predicable_attribute): Don't free p_false
4000         when it is still in use.
4001
4002 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
4003
4004         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
4005         the default setting here.
4006
4007 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
4008
4009         * tree-pass.h (pass_cfg): Remove.
4010         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
4011         * passes.c (pass_cfg): Don't run it.
4012
4013 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
4014
4015         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
4016         * reg-stack.c (stack_regs_mentioned_data): Change the type to
4017         VEC(char,heap) *.
4018         (stack_regs_mentioned): Update the uses of
4019         stack_regs_mentioned_data.  Don't access the array beyond its
4020         end.
4021         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
4022         Don't include gt-reg-stack.h.
4023
4024         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
4025         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
4026
4027         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
4028
4029         PR middle-end/26684
4030         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef