OSDN Git Service

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