OSDN Git Service

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