OSDN Git Service

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