OSDN Git Service

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