OSDN Git Service

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