OSDN Git Service

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