OSDN Git Service

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