OSDN Git Service

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