OSDN Git Service

2006-12-04 Daniel Berlin <dberlin@dberlin.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-12-04  Jan Hubicka  <jh@suse.cz>
2
3         * builtins.c (fold_builtin_memory_op): Check that expr_size match.
4         * explow.c (expr_size, int_expr_size): Assert that size is non_NULL.
5
6 2006-12-04  Daniel Berlin  <dberlin@dberlin.org>
7
8         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call
9         set_used_smts.
10         * tree-ssa-structalias.c (set_used_smts): Export.
11         (find_what_p_points_to): Don't call set_used_smts here.
12         * tree-ssa-structalias.h (set_used_smts): Add prototype.
13
14 2006-12-04  Daniel Berlin  <dberlin@dberlin.org>
15         
16         * tree-ssa-alias.c (compute_may_aliases):
17         Compute flow sensitive before flow insensitive.
18         (compute_flow_sensitive_aliasing): Don't try to add
19         a symbol memory tag to itself.
20         
21         * alias.h (alias_set_subset_of): New prototype.
22
23         * alias.c (alias_set_subset_of): New function.
24
25         * tree-ssa-structalias.c: Update comments.
26         (struct variable_info): Add finished_solution.
27         (new_varinfo): Set finished solution to NULL.
28         (var_escaped_vars): Remove.
29         (escaped_vars_tree): Remove.
30         (escaped_vars_id): Remove.
31         (nonlocal_vars_id): Remove.
32         (constraint_expr_type): Add INCLUDES.
33         (graph_size): Removed.
34         (dump_constraint): Support INCLUDES.
35         (build_constraint_graph): Ditto.
36         (collapse_nodes): Add merge_solutions argument.
37         Don't merge attributes.
38         (process_unification_queue): Just use collapse_nodes.
39         (perform_var_substitution): Update call to collapse_nodes.
40         (get_constraint_exp_from_ssa_var): Use INCLUDES.
41         (process_constraint): Fix non-field sensitive handling
42         Handle includes.
43         (get_constraint_for): Use INCLUDES.
44         (make_constraint_from_anything): Renamed from
45         make_constraint_from_escaped.
46         (make_constraint_to_escaped): Removed.
47         (find_global_initializers): Removed.
48         (create_variable_info_for): Do not make constraints to escaped
49         vars anymore.
50         (dump_solution_for_var): Don't print out the equivalent points-to
51         sets, just use the name of the variable it shares it with.
52         (intra_create_variable_infos): Use INCLUDES.
53         Change nonlocal variable sets to anything sets.
54         (init_base_vars): Remove escaped_vars and nonlocal_var
55         initialization. 
56         (find_escape_constraints): Removed.
57         (delete_points_to_sets): Remove dead code.
58         (used_smt_calculated): New variable.
59         (set_used_smts): New function.
60         (merge_smts_into): New function.
61         (find_what_p_points_to): Modify to use SMTs.
62         (create_nonlocal_var): Remove.
63         
64         * tree-ssa-operands.c (access_can_touch_variable): Remove
65         reference to nonlocal_all. 
66
67         * tree-ssa.c (verify_name_tags): Remove.
68         
69 2006-12-04  Carlos O'Donell  <carlos@codesourcery.com>
70
71         * config/arm/unwind-arm.c: Adjust __cxa_type_match declaration.
72         (__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match.
73
74 2006-12-04  Andrew MacLeod  <amacleod@redhat.com>
75
76         * tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges.
77         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update.
78         (add_livein_if_notdef): Delete.
79         (loe_visit_block): New.  Propogate live on entry info for a block into
80         each predecessor.  If it changes, make sure it is visited again.
81         (live_worklist): Visit every block and update the live on entry info 
82         for preds.  Iterate over any that changed.
83         (set_var_live_on_entry): Populate the live on entry blocks with bits
84         based on the immediate uses of a var.
85         (calculate_live_on_entry): Remove.
86         (calculate_live_on_exit): Calculate live on exit based on the newly
87         oriented live on entry bits.
88         (calculate_live_ranges): Build live on entry and exit vectors.
89         (dump_live_info): Use new orientation of live on entry bitmaps.
90         (verify_live_on_entry): New.  Split out verification code from old
91         calculate_live_on_entry routine.
92         * tree-ssa-live.h (struct tree_live_info_d): Add Working stack.
93         (live_entry_blocks): Rename to live_on_entry and return bitmap for a
94         basic_block instead of for a partition.
95         (live_merge_and_clear): Add asserts.
96         (make_live_on_entry): Set partition bit in basic block vector.
97
98 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
99
100         PR libgomp/29947
101         * omp-low.c (expand_omp_for_static_nochunk,
102         expand_omp_for_static_chunk): Do all arithmetics in signed rather than
103         unsigned type.
104
105         PR middle-end/29965
106         * omp-low.c (determine_parallel_type): Don't try to optimize combined
107         parallels if region->exit or region->inner->exit is NULL.
108         (expand_omp_parallel): Handle NULL region->exit even if cfg is already
109         built.
110         (expand_omp_for_generic): Handle NULL region->cond and region->exit.
111         (expand_omp_for): Use expand_omp_for_generic if either region->cond
112         or region->exit is NULL.
113         (expand_omp_sections): Handle NULL region->cond or region->exit.
114         (expand_omp_synch): 
115
116 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
117
118         * config/sparc/sp64-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Delete.
119         * config/sparc/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
120
121 2006-12-04  Eric Botcazou  <ebotcazou@adacore.com>
122
123         * tree.c (walk_type_fields): Do not handle TYPE_MIN_VALUE and
124         TYPE_MAX_VALUE for scalar types here but...
125         (walk_tree): ...there instead.  Return NULL_TREE if the TYPE_DECL
126         is attached an error mark, and the return value of the callback
127         if it is not NULL_TREE.
128
129 2006-12-04  Ben Elliston  <bje@au.ibm.com>
130
131         * config/spu/spu.md (_mulv4si3): Remove unused local variables.
132
133 2006-12-03  Eric Christopher  <echristo@apple.com>
134
135         PR target/24598
136         * config/t-slibgcc-darwin: Pass -install_name.
137         * config/darwin.h (LINK_COMMAND_SPEC): Remove use of
138         libtool. Only pass through options that the linker recognizes.
139         (LINK_SPEC): Update comment. Translate options.
140         (STARTFILE_SPEC): Add dylib1.o for shared libraries.
141         * config/darwin9.h (LINK_COMMAND_SPEC): Ditto above.
142
143 2006-12-03  Dorit Nuzman  <dorit@il.ibm.com>
144
145         * config/spu/spu.md (smaxv4sf3, sminv4sf3): New.
146
147 2006-12-03  Uros Bizjak  <ubizjak@gmail.com>
148
149         PR target/30041
150         * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and
151         operands[1] in insn constraint.  Correct type attribute to sselog1.
152
153 2006-12-02  H.J. Lu  <hongjiu.lu@intel.com>
154
155         PR target/30040
156         * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h".
157         (bit_SSSE3): New.
158         (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite
159         processor detection.
160
161         * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for
162         -march=native if there is no -mtune=*.
163
164         * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H)
165         coretypes.h.
166
167 2006-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
168
169         * doc/install.texi: Update recommended MPFR version.  Remove
170         obsolete reference to cumulative patch.
171
172 2006-12-02  Lee Millward  <lee.millward@codesourcery.com>
173
174         PR c/27953
175         * c-decl.c (store_parm_decls_oldstyle): Robustify.
176
177 2006-11-30  Jan Hubicka  <jh@suse.cz>
178             Uros Bizjak  <ubizjak@gmail.com>
179
180         * config/i386/i386.c (pentium4_cost, nocona_cost): Update
181         32bit memcpy/memset decriptors.
182         (decide_alg): With -minline-all-stringops and sizes that are best
183         to be copied via libcall still work hard enough to pick non-libcall
184         strategy.
185
186 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
187
188         * doc/extend.texi, doc/invoke.texi, doc/md.texi: Fix typos.
189
190         * builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c,
191         config/i386/i386.c, config/i386/i386.h, config/mips/mips.h,
192         config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c,
193         config/sh/sh4-300.md, config/spu/spu-builtins.def,
194         config/spu/spu-c.c, config/spu/spu-modes.def,
195         config/spu/spu.c, config/spu/spu.md,
196         config/spu/spu_internals.h, config/spu/vmx2spu.h,
197         fold-const.c, fwprop.c, predict.c, tree-data-ref.h,
198         tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
199         tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c,
200         tree-vectorizer.c, tree-vrp.c: Fix comment typos.  Follow
201         spelling conventions.
202
203         * config/i386/i386.c: Fix a comment typo.
204
205 2006-12-01  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
206
207         * config/spu/spu.c (spu_immediate): Remove trailing comma.
208         (reloc_diagnostic): Call warning when -mwarn-reloc is specified.
209         * config/spu/spu.md: (zero_extendhisi2): Expand instead of split for
210         better optimization.
211         (floatv4siv4sf2): New.
212         (fix_truncv4sfv4si2): New.
213         (floatunsv4siv4sf2): New.
214         (fixuns_truncv4sfv4si2): New.
215         (addv16qi3): New.
216         (subv16qi3): New.
217         (negv16qi2): New.
218         (mulv8hi3): New.
219         (mulsi3): Remove.
220         (mul<mode>3): New.
221         (_mulv4si3): New.
222         (cmp<mode>): Don't accept constant arguments for DI, TI and SF.
223         * config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with
224         spu_resolve_overloaded_builtin instead of static inline functions.
225
226 2006-12-01  Eric Botcazou  <ebotcazou@adacore.com>
227
228         * fold-const.c (fold_binary) <LT_EXPR>: Use the precision of the
229         type instead of the size of its mode to compute the highest and
230         lowest possible values.  Still check the size of the mode before
231         flipping the signedness of the comparison.
232
233 2006-12-01  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
234
235         * config/spu/predicates.md (spu_mov_operand): Add.
236         * config/spu/spu.c (spu_expand_extv): Remove unused code.
237         (print_operand_address, print_operand): Handle addresses containing AND.
238         (spu_split_load, spu_split_store): Use updated movti pattern.
239         * config/spu/spu.md: (_mov<mode>, _movdi, _movti): Handle loads and
240         stores in mov patterns for correct operation of reload.
241         (lq, lq_<mode>, stq, stq_<mode>): Remove.
242
243 2006-12-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
244
245         PR c++/30021
246         * c-common.c (check_main_parameter_types): Check for error_mark_node.
247
248 2006-12-01  Andrew MacLeod  <amacleod@redhat.com>
249
250         * common.opt (ftree-combine-temps): Remove.
251         * tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove.
252         (coalesce_ssa_name): Don't check for combine-temps.
253         (coalesce_vars): Remove.
254         (check_replaceable): Use num_imm_uses.
255         (remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't
256         check for combine-temps.
257         (rewrite_out_of_ssa): Never create a ref_count in the var_map.
258         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms
259         to register_ssa_partition calls.
260         * tree-ssa-live.c (register_ssa_partition): Remove prototype.
261         (init_var_map, delete_var_map): remove refernces to ref_count.
262         (create_ssa_var_map): Never calculate a ref count.
263         (type_var_init): Remove.
264         * tree-ssa-live.h (typedef struct _var_map): Remove ref_count.
265         (SSA_VAR_MAP_REF_COUNT): Delete.
266         (create_ssa_var_map): Change Prototype to have no parameters.
267         (version_ref_count): Delete.
268         (register_ssa_partition): Remove 'is_use' paramater and don't set the
269         ref_count vector.
270         (type_var_num, type_var, type_var_first_partition,
271         type_var_next_partition, type_var_dump, type_var_delete,
272         type_var_remove_partition, type_var_find, type_var_compact,
273         type_var_decompact): Remove.
274
275 2006-12-01  Bernd Schmidt  <bernd.schmidt@analog.com>
276
277         * config/bfin/bfin.md (pushsi_insn, popsi_insn): Set correct addrtype
278         attribute.
279
280 2006-12-01  Richard Guenther  <rguenther@suse.de>
281
282         PR c++/29433
283         * dwarf2out.c (struct pubname_struct): Make name const.
284         (add_pubtype): Do not xstrdup identifiers.
285
286 2006-12-01  Bernd Schmidt  <bernd.schmidt@analog.com>
287
288         * config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures
289         multiword accesses are in range.
290
291 2006-12-01  Zdenek Dvorak <dvorakz@suse.cz>
292
293         PR tree-optimization/29921
294         * tree-ssa-ccp.c (canonicalize_float_value): New function.
295         (set_lattice_value): Use canonicalize_float_value.
296
297 2006-11-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
298
299         * config/spu/spu.c (spu_builtin_range): Move from spu-c.c
300         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Delete.
301         (spu_cpu_cpp_builtins): Remove.
302         (spu_override_options): Don't set warn_main.
303         (spu_force_reg): Move from spu-c.c.
304         (spu_check_builtin_parm): Likewise.
305         (expand_builtin_args): Likewise.
306         (spu_expand_builtin_1): Likewise.
307         (spu_expand_builtin): Likewise.
308         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Define, set
309         warn_main and targetm.resolve_overloaded_builtin.
310         * config/spu/spu-c.c (spu_builtin_range): Remove.
311         (spu_check_builtin_parm): Remove.
312         (expand_builtin_args): Remove.
313         (spu_expand_builtin_1): Remove.
314         (spu_expand_builtin): Remove.
315         (spu_cpu_cpp_builtins): Moved from spu.c
316         (spu_force_reg): Remove.
317
318 2006-12-01  Joseph Myers  <joseph@codesourcery.com>
319             David Edelsohn  <edelsohn@gnu.org>
320
321         PR target/24036
322         * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
323         HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
324         * defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
325         HARD_REGNO_NREGS_WITH_PADDING): Define.
326         * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
327         HARD_REGNO_NREGS_WITH_PADDING): Define.
328         * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
329         Use new macros to detect modes with holes; do not look at integer
330         units.
331         (subreg_offset_representable_p): Check for and disallow cases
332         where the modes use different numbers of bits from registers.
333         * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
334         constant for soft-float.
335         (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
336         containing doubles.
337         (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
338         in E500 double case.
339         * config/rs6000/rs6000.md (movtf): Allow soft-float.
340         (movtf_softfloat): New.
341
342 2006-11-30  Richard Sandiford  <richard@codesourcery.com>
343
344         * simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than
345         simplify_gen_subreg.
346
347 2006-11-30  Andrew Macleod  <amacleod@redhat.com>
348
349         * tree-ssa-live.c (create_coalesce_list): Create a hash table.
350         (COALESCE_HASH_FN): New.  Define hash function.
351         (partition_pair_map_hash): New.  Hash value for a partition pair.
352         (partition_pair_map_eq): New.  Equality for hash pairs.
353         (create_coalesce_list): Create hash table.
354         (delete_coalesce_list): Free hash table.
355         (find_partition_pair): Find/create pairs in hash table.
356         (compare_pairs):  Sort pairs in ascending order now.
357         (num_coalesce_pairs): New.  Number of pairs in hash table.
358         (struct partition_pair_iterator): Iterator struct for pair table.
359         (first_partition_pair): Iterator function for first pair.
360         (end_partition_pair_p): Iterator function for end of iteration.
361         (next_partition_pair): Iterator function for next pair.
362         (FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs.
363         (sort_coalesce_list): Sort pairs from hash table into an array.
364         (pop_best_coalesce): Take pairs from the array.
365         (dump_coalesce_list): Update to use hash table or sorted array.
366         * tree-ssa-live.h (struct partition_pair_d): Remove next field.
367         (struct coalesce_list_d): Add hash table related fields.
368
369 2006-11-30  Jan Hubicka  <jh@suse.cz>
370
371         PR middle-end/30028
372         * builtins.c (fold_builtin_memory_op): Fix typo in the check for
373         memmove/bcopy->memcpy conversion.
374
375 2006-11-30  Carlos O'Donell  <carlos@codesourcery.com>
376
377         * doc/tm.texi (MAX_OFILE_ALIGNMENT): Document default.
378         * config/elfos.h [!MAX_OFILE_ALIGNMENT] (MAX_OFILE_ALIGNMENT):
379         Default is the largest alignment supported for 32-bit ELF and
380         representable on a 32-bit host.
381
382 2006-11-30  Janis Johnson  <janis187@us.ibm.com>
383
384         * config/dfp-bit.c (DFP_TO_INT): Use wider precision.
385
386 2006-11-30  Jan Hubicka  <jh@suse.cz>
387
388         * tree-ssa-operands.h (struct ssa_operands): New.
389         * tree-flow-inline.h (gimple_ssa_operands): New function.
390         * tree-flow.h: (struct gimple_df): Add ssa_operands.
391         * Makefile.in: Remove gt-tree-ssa-operands.h
392         * tree-ssa-operands.c: Do not include gt-tree-ssa-operands.h
393         (free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs,
394         operand_memory, operand_memory_index, ops_active): Remove statics.
395         (ALLOC_OPTYPE): Update.
396         (operand_build_sort_virtual): Update.
397         (ssa_operands_active): Update.
398         (init_ssa_operands): Update.
399         (fini_ssa_operands): Update.
400         (ssa_operand_alloc): Update.
401         (INITIALIZE_USE): Update.
402         (finalize_ssa_use_ops): Update.
403         (finalize_ssa_v_may_def_ops): Update.
404         (finalize_ssa_vuse_ops): Update.
405         (finalize_ssa_v_must_def_ops): Update.
406
407 2006-11-30  Richard Guenther  <rguenther@suse.de>
408
409         * tree-vectorizer.h (vectorizable_function): Export.
410         * tree-vect-transform.c (vectorizable_function): Likewise.
411         * tree-vect-patterns.c (vect_recog_pow_pattern): Set
412         type_in to scalar type in recognition of squaring.
413         Make sure the target can vectorize sqrt in recognition
414         of sqrt, set type_in to vector type in this case.
415
416 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
417
418         * config/i386/i386.md (R10_REG): New constant.
419         * config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG.
420         (ix86_emit_restore_regs_using_mov): Ditto.
421         (ix86_expand_call): Ditto.
422         (x86_output_mi_thunk): Ditto. Also use R10_REG.
423
424 2006-11-30  Steven Bosscher  <steven@gcc.gnu.org>
425
426         * cselib.c (cselib_init): Use special MEM rtx form for callmem.
427         * alias.c (canon_true_dependence): Update comment.
428
429 2006-11-30  Steven Bosscher  <steven@gcc.gnu.org>
430
431         * cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline
432         at the end of a diagnostics message.
433
434         * alloc-pool.c (pool_free): Postpone clearing the pool entry
435         until after asserting that it was allocated in the right pool.
436
437         * cfgrtl.c (print_rtl_with_bb): Print predecessor and
438         successor edge information as well.  Make output of live regs
439         on exit consistent with live regs on entry.
440
441 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
442
443         PR target/29852
444         * config/i386/i386.md (*truncxfsf2_mixed, *truncxfdf2_mixed): Enable
445         insn patterns for TARGET_80387.
446         (*truncxfsf2_i387, *truncxfdf2_i387): Remove.
447         (*truncxfsf2_i387_1): Rename to *truncxfsf2_i387.
448         (*truncxfdf2_i387_1): Rename to *truncxfdf2_i387.
449         (fmod<mode>3, remainder<mode>3): Enable expaders for SSE math.
450         Generate truncxf<mode>2 insn patterns for strict SSE math.
451
452 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
453
454         * config/i386/i386.md (movsf_1): Enable pattern for standard
455         80387 constants before reload when optimizing for size.
456         (*movdf_nointeger, *movdf_integer): Ditto.
457         (*movxf_nointeger, *movxf_integer): Disable patterns for standard
458         80387 constants before reload when not optimizing for size.
459
460         (*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float
461         extension of XFmode input operands.
462
463 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
464
465         * config/spu/crt0.c (__dso_handle): Define.
466
467 2006-11-30  Kaz Kojima  <kkojima@gcc.gnu.org>
468
469         * emit-rtl.c (verify_rtl_sharing): Handle SEQUENCE specially
470         when clearing the used flags.
471
472 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
473
474         * config/spu/spu.md (extend_compare): Fix whitespace formatting.
475
476 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
477
478         PR target/29945
479         * config/spu/spu.md  (extend_compare<mode>): New pattern.
480         (extend_compare): Change to expand and use the above pattern.
481
482 2006-11-29  Janis Johnson  <janis187@us.ibm.com>
483
484         * config/dfp-bit.c (DFP_TO_INT): Fix rounding mode.
485
486         * config/dfp-bit.h (CONTEXT_ROUND): Delete.
487         (DFP_INIT_ROUNDMODE): Define.
488         * config/dfp-bit.c: Replace CONTEXT_ROUND with DFP_INIT_ROUNDMODE.
489         * mklibgcc.in: Fix dependencies for dfp-bit.c.
490
491 2006-11-29  Tehila Meyzels  <tehila@il.ibm.com>
492
493         * haifa-sched.c: Remove define LINE_NOTE(INSN).  Remove line_note_head.
494         Update documentation.
495         (associate_line_notes_with_blocks): Kill.
496         (extend_bb): Remove basic block argument, put void instead.
497         Remove line number handling for each bb.
498         (save_line_notes): Kill.
499         (restore_line_notes): Kill.
500         (sched_init): Remove line_note_head initialization.
501         Change extend_bb call.
502         (sched_finish): Remove free of line_note_head.
503         (add_block): Change extend_bb call.
504         * sched-ebb.c (schedule_ebb): Remove save_line_notes,
505         rm_line_notes and restore_line_notes calls.
506         (schedule_ebbs): Remove rm_redundant_line_notes.
507         * sched-int.h (struct haifa_insn_data): Remove line_note.
508         (save_line_notes): Remove declaration.
509         (restore_line_notes): Remove declaration.
510         * modulo-sched.c (loop_canon_p): Update debug info printing
511         by using insn locators instead of line note.
512         (sms_schedule): Update debug info printing, by using insn
513         locators instead of line note.
514         * sched-rgn.c (debug_dependencies): Remove handling of case
515         n>0 (line number), since it's a dead code.
516         (schedule_region): Remove save_line_notes and
517         restore_line_notes calls.
518
519 2006-11-29  Joseph Myers  <joseph@codesourcery.com>
520
521         * config/rs6000/predicates.md (gpc_reg_operand): Check
522         invalid_e500_subreg.
523         * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
524         SImode subregs of SPE vectors.
525         * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
526         * jump.c (true_regnum): Require subregs to satisfy
527         subreg_offset_representable_p.
528
529 2006-11-29  Daniel Berlin  <dberlin@dberlin.org>
530             Steven Bosscher <stevenb.gcc@gmail.com>
531
532         * Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h,
533         since it no longer exists.
534
535 2006-11-29  Duncan Sands  <baldrick@free.fr>
536
537         PR tree-optimization/23744
538         * tree-vrp.c (vrp_meet): do not require ranges to intersect.
539
540 2006-11-29  Duncan Sands  <baldrick@free.fr>
541
542         PR tree-optimization/23744
543         * testsuite/gcc.dg/tree-ssa/pr23744.c: new test.
544
545 2006-11-29  Duncan Sands  <baldrick@free.fr>
546
547         PR tree-optimization/23744
548         * testsuite/gcc.dg/tree-ssa/update-threading.c: xfail.
549
550 2006-11-29  Jie Zhang  <jie.zhang@analog.com>
551
552         * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
553
554 2006-11-29  J"orn Rennecke  <joern.rennecke@st.com>
555
556         * sh.opt (minline-ic_invalidate): New option.
557         (musermode): Adjust comment.
558         * sh.c (sh_initialize_trampoline): Emit library call unless
559         is set; if it is set, don't emit library call if we can use icbi
560         instead.
561         * sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use
562         icbi for TARGET_SH4_300.
563         * t-sh (LIB1ASMFUNCS_CACHE): Set.
564         * doc/invoke.texi: Document -minline-ic_invalidate; Update
565         -musermode documentation.
566
567 2006-11-29  Jim Tison  <jtison@us.ibm.com>
568
569         * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
570         __gthread_recursive_mutex_init): Define.
571
572 2006-11-29  Joseph Myers  <joseph@codesourcery.com>
573
574         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
575         STRICT_ALIGNMENT and the type is more aligned than the saved
576         registers, copy via a temporary.
577
578 2006-11-28  Andrew Pinski  <pinskia@gmail.com>
579
580         PR tree-opt/29984
581         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
582         and MIN_EXRP.
583
584 2006-11-28  Bob Wilson  <bob.wilson@acm.org>
585
586         * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit.
587
588 2006-11-28  Jan Hubicka  <jh@suse.cz>
589
590         Privatize SSA variables into gimple_df.
591         * tree-flow-inline.h
592         (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars,
593         gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var,
594         gimple_nonlocal_all): New accessors.
595         (first_referenced_var): Update.
596         (mark_stmt_modified): Update.
597         (is_call_clobbered): Update.
598         (mark_call_clobbered): Update.
599         (clear_call_clobbered): Update.
600         (mark_non_addressable): Update.
601         * tree-vrp.c (get_value_range): Update.
602         * tree-into-ssa.c (in_ssa_p): Kill.
603         (get_default_def_for): Update.
604         (rewrite_into_ssa): Update.
605         * tree-complex.c (init_parameter_lattice_values): Update.
606         (update_complex_assignment): Update.
607         (update_parameter_components): Update.
608         (expand_complex_libcall): Update.
609         (expand_complex_operations_1): Update.
610         * tree-tailcall.c (arg_needs_copy_p): Update.
611         (add_virtual_phis): Update.
612         (tree_optimize_tail_calls_1): Update.
613         * tree-ssa-dse.c (memory_ssa_name_same): Update.
614         * tree-ssa-copyrename.c
615         (copy_rename_partition_coalesce): Update.
616         * tree-ssa-math-opts.c (execute_cse_reciprocals): Update.
617         * tree-ssa-propagate.c (set_rhs): Update.
618         * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars,
619         addressable_vars, global_var):Kill.
620         (set_initial_properties): Update.
621         (init_alias_info): Update.
622         (finalize_ref_all_pointers): Update.
623         (setup_pointers_and_addressables): Update.
624         (maybe_create_global_var): Update.
625         (create_global_var): Update.
626         (dump_points_to_info): Update.
627         * function.h (struct gimple_df): Forward declare.
628         (struct function): Add GIMPLE_DF field.
629         * gimplify.c (force_gimple_operand): Update.
630         * tree-dfa.c (referenced_vars, default_defs): KIll.
631         (make_rename_temp): Update.
632         (dump_variable): Update.
633         (referenced_var_lookup): Update.
634         (referenced_var_check_and_insert): Update.
635         (default_def): Rename to ...
636         (gimple_default_def): ... this one; accept cfun argument.
637         (set_default_def): Update.
638         * tree-cfgcleanup.c (modified_noreturn_calls): Kill.
639         (cleanup_control_flow): Update.
640         * tree-ssa-pre.c (compute_avail): Update
641         * tree-ssa-live.c (calculate_live_on_entry): Update.
642         * tree-ssa.c (verify_use): Update.
643         (verify_call_clobbering): Update.
644         (verify_call_clobbering): Update.
645         (init_tree_ssa): Update.
646         (delete_tree_ssa): Update.
647         * tree-outof-ssa.c (coalesce_ssa_name): Update.
648         (rewrite_out_of_ssa): Update.
649         * tree-flow.h (gimple_df): New structure collecting dataflow variables.
650         (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New
651         private accessors.
652         (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs,
653         ssa_names, global_var, nonlocal_all, call_clobbered_vars,
654         addressable_vars, aliases_computed_p): Kill.
655         (default_def): Rename to...
656         (gimple_default_def): ... this one.
657         (defaule_def_fn): Kill.
658         (num_referenced_vars, ssa_names, num_ssa_names): Update.
659         * tree-ssa-structalias.c (nonlocal_all): Kill.
660         (get_constraint_exp_from_ssa_var): Update.
661         (create_nonlocal_var): Update.
662         (get_constraint_for): Update.
663         (update_alias_info): Update.
664         (find_global_initializers): Update.
665         (intra_create_variable_infos): Update.
666         (intra_create_variable_infos):
667         (find_what_p_points_to): Update.
668         (init_alias_heapvars): Update.
669         * tree-cfg.c (remove_bb): Update.
670         (gimplify_val): Update.
671         * tree-ssa-reassoc.c (get_rank): Update.
672         (init_reassoc): Update.
673         * tree-ssanames.c: Do not include gt-tree-ssanames.h
674         (ssa_names, free_ssanames): Kill.
675         (init_ssanames): Update.
676         (make_ssa_name): Update.
677         (release_ssa_name): Update.
678         (release_defs): Update.
679         (replace_ssa_name_symbol): Update.
680         * tree-ssa-operands.c (access_can_touch_variable): Update.
681         (add_virtual_operand): Update.
682         (add_call_clobber_ops): Update.
683         (add_call_read_ops): Update.
684         (get_call_expr_operands): Update.
685         (get_asm_expr_operands): Update.
686
687 2006-11-28  Jan Hubicka  <jh@suse.cz>
688
689         * builtins.c: Include tree-flow.h.
690         (fold_builtin_memory_op): Be more aggressive on converting memcpy to
691         assignment; convert memmove to memcpy for sizes greater than 1 where
692         alignment of operands prohibit the partial overlap.
693
694 2006-11-28  Jan Hubicka  <jh@suse.cz>
695
696         * invoke.texi (large-stack-frame, large-stack-frame-growth): New params.
697         * cgraph.c (dump_cgraph_node): Dump stack usage.
698         * cgraph.h (cgraph_local_info): Add estimated_self_stack_size.
699         (cgraph_global_info): Add estimated_stack_size and stack_frame_offset.
700         * cgraphunit.c (cgraph_analyze_function): Analyze stack sizes.
701         * ipa-inline.c (cgraph_clone_inlined_nodes): Propagate stack usage.
702         (cgraph_check_inline_limits): Limit stack growth.
703         * cfgexpand.c: Include tree-inline.h.
704         (account_stack_vars): New function.
705         (expand_one_var): New param to just account the stack; return estimated
706         size.
707         (expand_used_vars_for_block): Update call of expand_one_var.
708         (account_used_vars_for_block): New function.
709         (estimated_stack_frame_size): Likewise.
710         (init_vars_expansion, fini_vars_expansion): Break out from..
711         (expand_used_vars): ... here.
712         * tree-inline.h (estimated_stack_frame_size): Declare.
713         * params.def (PARAM_LARGE_STACK_FRAME, PARAM_STACK_FRAME_GROWTH): New.
714
715 2006-11-28  Richard Guenther  <rguenther@suse.de>
716
717         * ggc-page.c (ggc_print_statistics): Use %ul and a cast to
718         unsigned long for printing OBJECT_SIZE.
719
720 2006-11-27  Steven Bosscher  <steven@gcc.gnu.org>
721
722         * alias.c (init_alias_analysis): Remove simplification loop
723         after propagating pointers.
724
725 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
726
727         * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2
728         and m_GENERIC64.
729
730 2006-11-27  Bob Wilson  <bob.wilson@acm.org>
731
732         * config/xtensa/xtensa.h (XCHAL_HAVE_MUL32_HIGH): Provide default.
733
734 2006-11-27  Roger Sayle  <roger@eyesopen.com>
735             Manuel Lopez-Ibanez <manu@gcc.gnu.org>
736
737         * c-common.c (constant_fits_type_p): Delete.
738         (unsigned_conversion_warning): Delete.
739         (conversion_warning): Integrate Wconversion warning from
740         unsigned_conversion_warning.
741         (convert_and_check): Integrate Woverflow warning from
742         unsigned_conversion_warning.  Reorganize and simplify to avoid
743         dependence upon the middle-end setting TREE_OVERFLOW on integral
744         conversions, by using int_fits_type_p directly.
745
746 2006-11-27  Tobias Burnus  <burnus@net-b.de>
747
748         * doc/invoke.texi: Fixed typo.
749
750 2006-11-27  Michael Matz  <matz@suse.de>
751             Andreas Krebbel  <krebbel1@de.ibm.com>
752
753         PR target/29319
754         * config/s390/predicates.md (larl_operand): Check addend of larl
755         operand to be in range of -/+2GB.
756         * config/s390/s390.c (legitimize_pic_address): Likewise.
757         Changed type of variable even to HOST_WIDE_INT.
758
759 2006-11-27  Jan Hubicka  <jh@suse.cz>
760
761         * expr.c (emit_block_move_via_libcall): Export.
762         (clear_storage_via_libcall): Rename to ...
763         (set_storage_via_libcall): ... this one; handle arbitrary value to set.
764         (clear_storage): Update to set_storage_via_libcall.
765         * expr.h (emit_block_move_via_libcall): Declare
766         * config/i386/i386.h (stringop_alg): New enum.
767         (MAX_STRINGOP_ALGS): New constant.
768         (stringop_algs): New struct.
769         (processor_costs): Add memcpy/memset descriptors.
770         (TARGET_REP_MOVEL_OPTIMAL): Remove.
771         * config/i386/i386.md (movsi_insv_1_rex64): New pattern.
772         (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands
773         for memset.
774         * config/i386/i386.opt (minline-stringops-dynamically,
775         mstringop-strategy): New
776         parameters.
777         * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype.
778         (ix86_expand-clrmem): Rename to ...
779         (ix86_expand_setmem): ... this one; update prototype.
780         * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant.
781         (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
782         geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost,
783         nocona_cost, core2_cost, generic_cost, generic64_cost,
784         generic32_cost): Add memcpy/memset descriptors.
785         (x86_rep_movl_optimal): Remove.
786         (stringop_alg): New static variable.
787         (ix86_expand_aligntest): Handle predictions.
788         (override_options): Add strgop_alg handling.
789         (predict_jump): New function.
790         (scale_counter): New function.
791         (expand_set_or_movmem_via_loop): New function.
792         (expand_movmem_via_rep_mov): New function.
793         (expand_setmem_via_rep_stots): New function.
794         (emit_strmov): New function.
795         (expand_movmem_epilogue): New function.
796         (expand_setmem_epilogue_via_loop): New function.
797         (expand_setmem_epilogue): New function.
798         (expand_movmem_prologue): New function.
799         (expand_setmem_prologue): New function.
800         (decide_alg): New function.
801         (decide_alignment): New function.
802         (ix86_exand_movmem): Rewrite.
803         (promote_duplicated_reg): New function.
804         (ix86_expand_clrmem): Rename to ...
805         (ix86_expand_setmem): ... this one. Rewrite.
806
807         * invoke.texi (minline-stringops-dynamically): New command line option.
808         (mstringop-strategy): Likewise.
809
810 2006-11-27  Jan Hubicka  <jh@suse.cz>
811
812         * cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
813         * rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
814         * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
815         * insn-notes.def (FUNCTION_END): Remove.
816         * jump.c (delete_related_insns): Don't worry about FUNCTION_END.
817         (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
818         note.
819         * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
820         * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
821         * cfglayout.c (duplicate_insn_chain): Don't worry about
822         NOTE_FUNCTION_END.
823
824 2006-11-27  Richard Guenther  <rguenther@suse.de>
825             Zdenek Dvorak <dvorakz@suse.cz>
826
827         * target.h (struct gcc_target): Add builtin_vectorized_function
828         target hook.
829         * target-def.h (TARGET_VECTORIZE): Likewise.
830         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
831         Document new target hook.
832         * targhooks.h (default_builtin_vectorized_function): Declare.
833         * targhooks.c (default_builtin_vectorized_function): Define.
834         * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type.
835         (vectorizable_call): Declare.
836         * tree-vect-analyze.c (vect_analyze_operations): Call
837         vectorizable_call.
838         * tree-vect-transform.c (vectorizable_function): New static function.
839         (build_vectorized_function_call): Likewise.
840         (vectorizable_call): New function.
841         (vect_transform_stmt): Handle vectorizable calls.
842
843 2006-11-27  Richard Guenther  <rguenther@suse.de>
844
845         PR middle-end/25620
846         * builtins.c (expand_builtin_pow): Optimize non integer valued
847         constant exponents using sqrt or cbrt if possible.  Always fall back
848         to expanding via optabs.
849
850 2006-11-27  Ira Rosen  <irar@il.ibm.com>
851
852         PR tree-optimization/22372
853         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
854         the type of the base address.
855         (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
856         it in the data-ref pointer creation.
857         (vect_init_vector): Add an argument, type of the init vector. Use it in
858         the stmt creation.
859         (vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
860         (get_initial_def_for_reduction): Likewise.
861         (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
862         void_type_node.
863         (vectorizable_assignment, vect_permute_store_chain): Likewise.
864         (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
865         correct type in stmt creation.
866         (vect_setup_realignment): Use the correct type in stmt creation.
867         (vect_permute_load_chain): Change type of MODIFY_EXPR to
868         void_type_node.
869         (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
870         of MODIFY_EXPR to void_type_node.
871         (vectorizable_condition): Change type of MODIFY_EXPR to
872         void_type_node.
873         (vect_update_ivs_after_vectorizer): Use the correct type in stmt
874         creation.
875
876 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
877
878         Revert:
879         2006-05-08  Uros Bizjak  <uros@kss-loka.si>
880         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
881         standard 80387 constants, raise the cost to prevent
882         compress_float_constant() to generate load from memory.
883
884         * config/i386/i386.md: Add new splitter pattern to split
885         float_extended load of constant from constant pool into
886         pure constant load.
887
888 2006-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
889
890         * doc/install.texi: Move GMP/MPFR configure options from Fortran
891         section to general section.  Remove documentation for
892         --with-mpfr-dir and --with-gmp-dir, add documentation for
893         --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and
894         --with-gmp-lib.
895
896         * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments.
897
898 2006-11-26  Razya Ladklesky  <razya@il.ibm.com>
899
900         * testsuite/gcc.dg/ipa/ipa-6.c: New.
901
902 2006-11-26  Razya Ladklesky  <razya@il.ibm.com>
903
904         PR tree-optimization/29122
905         * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME
906         for the new version.  Assign NULL to DECL_RTL of the new version.
907
908 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
909
910         * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.
911
912 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
913
914         * cse.c (cse_altered): Remove.
915         (record_jump_equiv): Make true/false argument a bool instead
916         of an int.
917         (cse_insn): Don't set cse_altered.  Use delete_insn_and_edges
918         where appropriate.  Emit a new jump before the existing one
919         instead of after so that delete_insn_and_edges removes the
920         dead edges properly.  Check any_condjump_p before calling
921         record_jump_equiv.
922         (cse_basic_block): Check any_condjump_p before calling
923         record_jump_equiv.
924         (cse_main): Don't set/check cse_altered.  Remove USE_C_ALLOCA.
925
926 2006-11-25  Brooks Moses  <brooks.moses@codesourcery.com>
927
928         * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
929         -ffixed-line-length-* options.
930
931 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
932
933         * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387.
934         (fprem1xf4): Rename to fprem1xf4_i387.
935
936         (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
937         Rename patterns to fmod<mode>3.  Use general_operand operand
938         constraint for operands 1 and 2.  Use SSE_FLOAT_MODE_P to disable
939         patterns for SSE math.
940         (remaindersf3, remainderdf3): Ditto.
941
942 2006-11-25  Joseph Myers  <joseph@codesourcery.com>
943
944         * function.c (instantiate_virtual_regs_in_insn): Call force_reg
945         inside start_sequence / end_sequence pair.
946
947 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
948
949         * jump.c (mark_all_labels): Work in cfglayout mode.
950         * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
951         when in cfglayout mode, because there are no dead jumptables
952         visible.
953         * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
954         in cfglayout mode.
955         (commit_edge_insertions): Do not allow insertion of instructions
956         with control flow insns when in cfglayout mode.
957
958 2006-11-25  Zdenek Dvorak <dvorakz@suse.cz>
959
960         * tree-vrp.c (execute_vrp): Do not pass loops structure through
961         arguments.
962         * loop-unswitch.c (unswitch_loops, unswitch_single_loop,
963         unswitch_loop): Ditto.
964         * tree-loop-linear.c (linear_transform_loops): Ditto.
965         * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
966         tree_ssa_lim): Ditto.
967         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
968         free_numbers_of_iterations_estimates): Ditto.
969         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
970         tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
971         * cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
972         remove_path, add_loop, loopify, unloop, fix_loop_placements,
973         place_new_loop, duplicate_loop, duplicate_subloops,
974         update_single_exit_for_duplicated_loops, copy_loops_to,
975         duplicate_loop_to_header_edge, create_preheaders,
976         force_single_succ_latches, loop_version, fix_loop_structure):
977         Ditto.
978         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
979         tree_unroll_loop): Ditto.
980         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
981         * tree-scalar-evolution.c (select_loops_exit_conditions,
982         scev_initialize, scev_analysis): Ditto.
983         * tree-scalar-evolution.h (scev_initialize): Ditto.
984         * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
985         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
986         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
987         * modulo-sched.c (sms_schedule): Ditto.
988         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
989         * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
990         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
991         * ifcvt.c (if_convert): Ditto.
992         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
993         canonicalize_loop_induction_variables,
994         canonicalize_induction_variables,
995         tree_unroll_loops_completely, remove_empty_loops): Ditto.
996         * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
997         tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
998         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
999         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
1000         tree_ssa_loop_done): Ditto.
1001         * predict.c (predict_loops, tree_estimate_probability, estimate_loops,
1002         estimate_bb_frequencies): Ditto.
1003         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
1004         slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
1005         * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
1006         decide_unrolling_and_peeling, peel_loop_completely,
1007         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
1008         peel_loop_simple, unroll_loop_stupid): Ditto.
1009         * loop-doloop.c (doloop_optimize_loops): Ditto.
1010         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
1011         * loop-invariant.c (move_loop_invariants): Ditto.
1012         * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
1013         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
1014         tree_ssa_prefetch_arrays): Ditto.
1015         * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
1016         Ditto.
1017         * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
1018         vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
1019         * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
1020         mark_single_exit_loops, cancel_loop, cancel_loop_tree,
1021         verify_loop_structure): Ditto.
1022         * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
1023         canonicalize_induction_variables, tree_unroll_loops_completely,
1024         tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
1025         estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
1026         tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
1027         tree_unroll_loop, linear_transform_loops): Declaration changed.
1028         * basic-block.h: Remove declaration of struct loops.
1029         * cfghooks.h (struct cfg_hooks): Change type of
1030         cfg_hook_duplicate_loop_to_header_edge.
1031         (cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
1032         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
1033         vect_transform_loop): Declaration changed.
1034         * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
1035         * cfgloop.h (flow_loops_dump, fix_loop_structure,
1036         mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
1037         cancel_loop_tree, create_preheaders, force_single_succ_latches,
1038         verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
1039         loopify, loop_version, remove_path, unswitch_loops,
1040         unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
1041         Declaration changed.
1042
1043 2006-11-24  Uros Bizjak  <ubizjak@gmail.com>
1044
1045         * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
1046         (X87MODEF): New mode macro.
1047         (ssemodefsuffix): New mode attribute.
1048         (truncxf<mode>2_i387_noop_unspec): New insn pattern.
1049         (sqrt_extend<mode>xf2_i387): New insn pattern.
1050         (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
1051         insn and truncate result back to original mode using
1052         UNSPEC_TRUNC_NOOP truncation.
1053         (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
1054         ssemodefsuffix mode attribute.
1055         (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
1056         (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
1057         (*sqrtextenddfxf2_i387): Remove insn patterns.
1058
1059         (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
1060         truncation patterns.
1061
1062         * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP.
1063
1064 2006-11-24  Jakub Jelinek  <jakub@redhat.com>
1065
1066         PR c/29955
1067         * c-tree.h (c_maybe_initialize_eh): New prototype.
1068         * c-decl.c (finish_decl): Move EH initialization...
1069         (c_maybe_initialize_eh): ... here.  New function.
1070         * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
1071         if not #pragma omp atomic.
1072
1073         PR c/29736
1074         * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
1075         or UNION_TYPE inner types.
1076
1077 2006-11-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1078
1079         PR tree-opt/29964
1080         * ipa-pure-const.c (check_tree): If the original tree
1081         is volatile return early and say the function is not pure
1082         nor const.  Remove the volatile check for writes.
1083         (analyze_function): Print out the result of the local
1084         analysis pass.
1085
1086 2006-11-24  Joseph Myers  <joseph@codesourcery.com>
1087
1088         * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
1089         MASK_STRICT_ALIGN.
1090         * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
1091         * config/rs6000/rs6000.c (rs6000_override_options): Use
1092         MASK_STRICT_ALIGN for 8540 and 8548.  Add MASK_STRICT_ALIGN to
1093         POWERPC_MASKS.
1094
1095 2006-11-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1096
1097         * config/s390.c (s390_emit_compare_and_swap): New function.
1098         (s390_expand_cs_hqi, s390_expand_atomic): Call
1099         s390_emit_compare_and_swap.
1100
1101 2006-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1102
1103         * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
1104
1105 2006-11-24  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1106
1107         PR c/2707
1108         PR c++/26167
1109         * c-common.c (conversion_warning): New.
1110         (convert_and_check): Call conversion_warning unless there is an
1111         overflow warning.
1112         * doc/invoke.texi (-Wconversion): Update description.
1113
1114 2006-11-23  Daniel Berlin  <dberlin@dberlin.org>
1115
1116         * tree-ssa-alias.c (tree_pointer_compare): New function.
1117         (compact_name_tags): New function.
1118         (group_aliases): Call compact_name_tags.
1119
1120 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1121
1122         * real.h (real_isinteger): Declare.
1123         * real.c (real_isinteger): Define.
1124         * builtins.c (integer_valued_real_p): Use it.
1125
1126 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1127
1128         PR c/9072
1129         * c.opt (Wtraditional-conversion): New.
1130         (Wconversion): Update description.
1131         * c-typeck.c (convert_arguments): Warnings for prototypes causing
1132         type conversions different from what would happen in the absence
1133         of prototype are now handled by Wtraditional-conversion.
1134         * doc/invoke.texi (Wtraditional-conversion): New.
1135         (Wconversion): Update description.
1136         * doc/trouble.texi (Wconversion): Replace Wconversion by
1137         Wtraditional-conversion.
1138
1139 2006-11-23  Andrew Pinski  <pinskia@gmail.com>
1140
1141         * predict.c (tree_estimate_probability): Check to make
1142         sure current_loops is non null before calling flow_loops_dump.
1143
1144 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
1145
1146         * var-tracking.c (emit_note_insn_var_location): Revert previous patch.
1147
1148 2006-11-23  David Ung  <davidu@mips.com>
1149
1150         * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu
1151         combination.
1152         (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes.
1153         (ASM_SPEC): Pass along -mfp32 and -mfp64.
1154         * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set
1155         high part of FP register when in 64-bit FP register mode.  Similarly
1156         use gen_mfhc1 to load high part of FP register.
1157         (override_options): Allow -mgp32 and -mfp64 combination if
1158         ISA_HAS_MXHC1 (currently for O32 only).
1159         (mips_cannot_change_mode_class): If floating-point registers are
1160         bigger than word size. disallow conversion of float register from a
1161         large integer mode to a float mode smaller than the float register
1162         size.
1163         (mips_class_max_nregs): Handle float registers case seperately.
1164         * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1,
1165         UNSPEC_MTHC1.
1166         (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern.
1167         (movdf_hardfloat_32bit): Similarly.
1168         (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally
1169         support a full 64-bit fpu.
1170         (mthc1): New pattern to generate MTHC1 instruction.
1171         (mfhc1): New pattern to generate MFHC1 instruction.
1172         * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64
1173         option for the MIPS32R2 and mention its use under O32 ABI.
1174
1175 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
1176
1177         * var-tracking.c (emit_note_insn_var_location): Take care not to
1178         cause verify_flow_info failures.
1179
1180 2006-11-22  Daniel Berlin  <dberlin@dberlin.org>
1181
1182         * tree-ssa-structalias.c: Remove edge weights in favor of just
1183         processing them as complex constraints.
1184         (struct constraint_graph): Remove weighted succs and preds. Rename
1185         nonweighted succs and preds.
1186         (constraint_edge): Removed.
1187         (constraint_edge_t): Ditto.
1188         (constraint_edge_pool): Ditto.
1189         (new_constraint_edge): Ditto.
1190         (constraint_edge_equal): Ditto.
1191         (constraint_edge_less): Ditto.
1192         (constraint_edge_vec_find): Ditto.
1193         (erase_self_graph_edge): Ditto.
1194         (add_graph_edge): Removed.
1195         (get_graph_weights): Ditto.
1196         (allocate_graph_weights): Ditto.
1197         (valid_weighted_graph_edge): Ditto
1198         (bitmap_other_than_zero_bit_set): Ditto.
1199         (int_add_graph_edge): Renamed to add_graph_edge.
1200         (clear_edges_for_node): Remove support for weighted edges.
1201         (merge_graph_nodes): Ditto.
1202         (valid_graph_edge): Ditto.
1203         (build_constraint_graph): Ditto.
1204         (scc_visit): Ditto.
1205         (collapse_nodes): Ditto.
1206         (process_unification_queue): Ditto.
1207         (topo_visit): Ditto.
1208         (do_ds_constraint): Ditto.
1209         (perform_var_subsitution): Ditto.
1210         (solve_graph): Ditto.
1211         (init_alias_vars): Ditto.
1212         (delete_points_to_sets): Ditto.
1213         (do_complex_constraint): Support offsetted copies here.
1214
1215 2006-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
1216
1217         * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to
1218         SPU_RdEventMask.
1219         * config/spu/spu_mfcio.h (spu_read_event_mask): Update.
1220
1221         * config/spu/spu_mfcio.h (struct mfc_list_element): Change width
1222         of size bitfield.
1223
1224 2006-11-23  Ben Elliston  <bje@au.ibm.com>
1225
1226         * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p.
1227
1228 2006-11-23  Zdenek Dvorak <dvorakz@suse.cz>
1229
1230         PR tree-optimization/29921
1231         * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider
1232         signed and unsigned zero equal.
1233
1234 2006-11-22  Peter Bergner  <bergner@vnet.ibm.com>
1235
1236         * config/rs6000/rs6000.c (get_store_dest): New.
1237         (adjacent_mem_locations): Use get_store_dest() to get
1238         the rtl of the store destination.
1239
1240 2006-11-22  Joseph Myers  <joseph@codesourcery.com>
1241
1242         * config/rs6000/spe.md (SPE64): New mode macro.
1243         (mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0.  Add
1244         memory load.
1245         (mov_si<mode>_e500_subreg0_2): New.
1246         (mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4.  Add
1247         memory load.
1248         (mov_si<mode>_e500_subreg4_2): New.
1249         * config/rs6000/predicates.md (input_operand): Do not allow
1250         invalid E500 subregs.
1251         (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
1252         if TARGET_SPE.
1253         * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
1254         involving DFmode if TARGET_E500_DOUBLE.  Check for subregs
1255         involving vector modes if TARGET_SPE.
1256
1257 2006-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1258
1259         Revert
1260         2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1261         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
1262
1263 2006-11-22  Bernd Schmidt  <bernd.schmidt@analog.com>
1264
1265         * config/bfin/predicates.md (d_register_operand, mem_p_address_operand,
1266         mem_i_address_operand): New predicates.
1267         * config/bfin/bfin.c (bfin_issue_rate): New function.
1268         (TARGET_SCHED_ISSUE_RATE): New macro.
1269         * config/bfin/bfin.md (addrtype): New attribute.
1270         (slot0, slot1, slot2, store, pregs): New cpu_units.
1271         (core): Now a define_reservation.
1272         (alu): Remove some insn types from this reservation.
1273         (dsp32, load32, loadp, loadi, store32, storep, storei, multi): New
1274         insn reservations.
1275         (dummy reservation): Don't trigger for mcld insns.
1276         (absence_sets): Two new absence sets to enforce slot ordering.
1277         (popsi_insn): Set addrtype.
1278
1279 2006-11-22  Ira Rosen  <irar@il.ibm.com>
1280
1281         * doc/c-tree.texi: Document new tree codes.
1282         * doc/md.texi: Document new optabs.
1283         * tree-pretty-print.c (dump_generic_node): Handle print of new tree
1284         codes.
1285         * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs.
1286         * optabs.h (optab_index): Add new.
1287         (vec_extract_even_optab, vec_extract_odd_optab,
1288         vec_interleave_high_optab, vec_interleave_low_optab): New optabs.
1289         * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab,
1290         vec_interleave_high_optab, vec_interleave_low_optab): Initialize
1291         new optabs.
1292         * expr.c (expand_expr_real_1): Add implementation for new tree codes.
1293         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
1294         * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving
1295         along with macros for their access.
1296         * tree-data-ref.h (first_location_in_loop, data_reference): Update
1297         comment.
1298         * tree-vect-analyze.c (toplev.h): Include.
1299         (vect_determine_vectorization_factor): Fix indentation.
1300         (vect_insert_into_interleaving_chain,
1301         vect_update_interleaving_chain, vect_equal_offsets): New functions.
1302         (vect_analyze_data_ref_dependence): Add argument for interleaving
1303         check. Check for interleaving if it's true.
1304         (vect_check_dependences): New function.
1305         (vect_analyze_data_ref_dependences): Call vect_check_dependences for
1306         every ddr. Call vect_analyze_data_ref_dependence with new argument.
1307         (vect_update_misalignment_for_peel): Update for interleaving.
1308         (vect_verify_datarefs_alignment): Check only first data-ref for
1309         interleaving.
1310         (vect_enhance_data_refs_alignment): Update for interleaving. Check
1311         only first data-ref for interleaving.
1312         (vect_analyze_data_ref_access): Check interleaving, update
1313         interleaving data.
1314         (vect_analyze_data_refs): Call compute_data_dependences_for_loop
1315         with different parameters.
1316         * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR,
1317         VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes.
1318         * tree-inline.c (estimate_num_insns_1): Add cases for new codes.
1319         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
1320         Update step in case of interleaving.
1321         (vect_strided_store_supported, vect_permute_store_chain): New
1322         functions.
1323         (vectorizable_store): Handle strided stores.
1324         (vect_strided_load_supported, vect_permute_load_chain,
1325         vect_transform_strided_load): New functions.
1326         (vectorizable_load): Handle strided loads.
1327         (vect_transform_stmt): Add argument. Handle strided stores. Check
1328         that vectorized stmt exists for patterns.
1329         (vect_gen_niters_for_prolog_loop): Update calculation for
1330         interleaving.
1331         (vect_transform_loop): Remove stmt_vec_info for strided stores after
1332         whole chain vectorization.
1333         * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD,
1334         UNSPEC_INTERHI, UNSPEC_INTERLO): New constants.
1335         (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even<mode>,
1336         vec_extract_odd<mode>, altivec_vmrghsf, altivec_vmrglsf,
1337         vec_interleave_high<mode>, vec_interleave_low<mode>): Implement.
1338
1339 2006-11-22  Steven Bosscher  <steven@gcc.gnu.org>
1340
1341         * cse.c (enum taken): Remove PATH_AROUND.
1342         (addr_affects_sp_p, invalidate_skipped_set,
1343         invalidate_skipped_block): Remove.
1344         (cse_end_of_basic_block): Remove skip_blocks and related code.
1345         (cse_main): Don't test for flag_cse_skip_blocks.
1346         Update cse_end_of_basic_block call.
1347         (cse_basic_block): Likewise.  Remove PATH_AROUND case.  Remove
1348         code to lengthen the path if a jump was simplified.
1349
1350 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
1351
1352         PR rtl-optimization/29924
1353         * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL.
1354         (unroll_loop_runtime_iterations): Assert that the argument passed to
1355         split_edge_and_insert is not NULL.
1356         * loop-doloop.c (add_test): Ditto.
1357
1358 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
1359
1360         * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor
1361         functions.
1362         * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto.
1363         * cfgloopmanip.c (update_single_exits_after_duplication,
1364         update_single_exit_for_duplicated_loop, loop_version): Ditto.
1365         * tree-scalar-evolution.c (get_loop_exit_condition,
1366         get_exit_conditions_rec, loop_closed_phi_def,
1367         number_of_iterations_in_loop, scev_const_prop): Ditto.
1368         * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto.
1369         * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule):
1370         Ditto.
1371         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
1372         Ditto.
1373         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
1374         slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2,
1375         slpeel_make_loop_iterate_ntimes,
1376         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p,
1377         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
1378         Ditto.
1379         * tree-if-conv.c (if_convertible_loop_p): Ditto.
1380         * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p,
1381         vect_analyze_loop_form): Ditto.
1382         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p,
1383         can_convert_to_perfect_nest, perfect_nestify): Ditto.
1384         * tree-vect-transform.c (vect_create_epilog_for_reduction,
1385         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
1386         vect_transform_loop): Ditto.
1387         * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto.
1388         (single_exit, set_single_exit): New functions.
1389         * cfgloop.h (struct loop): Rename single_exit field to single_exit_.
1390         (single_exit, set_single_exit): Declare.
1391         * doc/loop.texi: Undocument single_exit field.  Document single_exit
1392         accessor function.
1393
1394 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
1395
1396         PR tree-optimization/29902
1397         * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
1398         any involved ssa name appears in abnormal phi node.
1399
1400 2006-11-21  Bob Wilson  <bob.wilson@acm.org>
1401
1402         * config/xtensa/xtensa.c (xtensa_char_to_class): Delete.
1403         (xtensa_const_ok_for_letter_p): Delete.
1404         (xtensa_extra_constraint): Delete.
1405         (override_options): Delete xtensa_char_to_class initialization.
1406         * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete.
1407         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1408         (EXTRA_CONSTRAINT): Delete.
1409         * config/xtensa/xtensa.md: Include constraints.md.
1410         (call_internal): Combine alternatives.
1411         (call_value_internal): Likewise, and remove invalid constraints.
1412         * config/xtensa/constraints.md: New file.
1413         * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete.
1414         (xtensa_extra_constraint): Delete.
1415         * doc/md.texi (Machine Constraints): Refer to constraints.md for
1416         Xtensa constraints.
1417
1418 2006-11-21  Janis Johnson  <janis187@us.ibm.com>
1419
1420         * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result
1421         of conversion that doesn't fit.
1422
1423         * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
1424         * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
1425         DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
1426
1427         * config/dfp-bit.c (dfp_binary_func): Fix typedef.
1428
1429 2006-11-21  Douglas Gregor <doug.gregor@gmail.com>
1430
1431         * c-common.h (enum rid): Add RID_STATIC_ASSERT.
1432
1433 2006-11-21  Richard Guenther  <rguenther@suse.de>
1434
1435         * tree-vectorizer.h (NUM_PATTERNS): Increase.
1436         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
1437         vect_recog_pow_pattern.
1438         (vect_recog_pow_pattern): New function.
1439
1440 2006-11-21  Bernd Schmidt  <bernd.schmidt@analog.com>
1441
1442         * config/bfin/bfin.opt (mstack-check-l1): New.
1443         * doc/invoke.texi (Blackfin Options): Document it.
1444         * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use
1445         stack bounds in L1 memory if the new option is enabled.
1446         (override_options): Don't allow combinations of -fstack-limit and
1447         -mstack-check-l1.
1448         (add_to_reg): Renamed from add_to_sp.  All callers changed.  Lose some
1449         dead code.
1450
1451         * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31
1452         regs for DImode.
1453         (bfin_register_move_cost): Bump costs if trying to move plain
1454         integer values through accumulators.
1455
1456 2006-11-21  Ben Elliston  <bje@au.ibm.com>
1457
1458         * config/spu/spu.c (spu_expand_vector_init): Initialise x.
1459
1460 2006-11-20  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1461             Russell Olsen <Russell_Olsen@playstation.sony.com>
1462             Dmitri Makarov <Dmitri_Makarov@playstation.sony.com>
1463             Yukishige Shibata <shibata@rd.scei.sony.co.jp>
1464             Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
1465             Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
1466             Andrew Pinski <Andrew_Pinski@playstation.sony.com>
1467
1468         * config.gcc: Add target for SPU.
1469         * config/spu/constraints.md: New file.
1470         * config/spu/crt0.c: New file.
1471         * config/spu/crtend.c: New file.
1472         * config/spu/crti.asm: New file.
1473         * config/spu/crtn.asm: New file.
1474         * config/spu/float_unsdidf.c: New file.
1475         * config/spu/float_unssidf.c: New file.
1476         * config/spu/predicates.md: New file.
1477         * config/spu/spu-builtins.def: New file.
1478         * config/spu/spu-builtins.h: New file.
1479         * config/spu/spu-builtins.md: New file.
1480         * config/spu/spu-c.c: New file.
1481         * config/spu/spu-elf.h: New file.
1482         * config/spu/spu-modes.def: New file.
1483         * config/spu/spu-protos.h: New file.
1484         * config/spu/spu.c: New file.
1485         * config/spu/spu.h: New file.
1486         * config/spu/spu.md: New file.
1487         * config/spu/spu.opt: New file.
1488         * config/spu/spu_internals.h: New file.
1489         * config/spu/spu_intrinsics.h: New file.
1490         * config/spu/spu_mfcio.h: New file.
1491         * config/spu/t-spu-elf: New file.
1492         * config/spu/vec_types.h: New file.
1493         * config/spu/vmx2spu.h: New file.
1494         * doc/contrib.texi: Document SPU contributor.
1495         * doc/extend.texi: Document SPU extensions.
1496         * doc/invoke.texi: Document SPU options.
1497         * doc/md.texi: Document SPU constraints.
1498
1499 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
1500
1501         * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level
1502         of the loop.
1503         * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute):
1504         Removed.
1505         (flow_loop_dump): Do not dump loop level.
1506         (flow_loops_find): Do not call flow_loops_level_compute.
1507         * cfgloop.h (struct loop): Remove level field.
1508
1509 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
1510
1511         * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
1512         hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop):
1513         Use vector of edges instead of array.
1514         * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval,
1515         estimate_numbers_of_iterations_loop): Ditto.
1516         * predict.c (predict_loops): Ditto.
1517         * loop-unroll.c (analyze_insns_in_loop): Ditto.
1518         * tree-ssa-threadupdate.c: Remove declaration of heap allocation for
1519         edge vectors.
1520         * basic-block.h: Declare heap allocation for edge vectors.
1521         * tree-outof-ssa.c: Ditto.
1522         * cfgloop.c (get_loop_exit_edges): Return vector of edges.
1523         * cfgloop.h (get_loop_exit_edges): Declaration changed.
1524
1525 2006-11-20  Zack Weinberg  <zackw@panix.com>
1526
1527         * gengtype.c (process_gc_options): Remove unnecessary forward decl.
1528         Add another out parameter, "skip".
1529         (set_gc_used_type): Adjust calls to process_gc_options.  If a field
1530         is tagged "skip", do not mark its type used.
1531
1532 2006-11-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1533
1534         PR tree-opt/25500
1535         * tree-sra.c (single_scalar_field_in_record_p): New function.
1536         (decide_block_copy): Use it.
1537
1538 2006-11-20  David Daney  <ddaney@avtrex.com>
1539
1540         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
1541         PC to point to following instruction.
1542
1543 2006-11-20  Anatoly Sokolov <aesok@post.ru>
1544
1545         PR target/18553
1546         PR target/29449
1547         * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
1548
1549         * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
1550
1551 2006-11-20  J"orn Rennecke  <joern.rennecke@st.com>
1552
1553         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
1554         Add sh/superh.h to tm_file.
1555
1556 2006-11-20  Carlos O'Donell  <carlos@codesourcery.com>
1557             Mark Mitchell  <mark@codesourcery.com>
1558
1559         * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and
1560         gcc_exec_prefix.
1561         (cpp_relocated): New function.
1562         * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix
1563         and cpp_relocated.
1564         * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option.
1565         * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated,
1566         replace configured prefix with gcc_exec_prefix.
1567
1568 2006-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
1569
1570         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call
1571         bfin_legitimate_constant_p.
1572         * config/bfin/bfin.md (movsi expander): Check return value of
1573         expand_mvoe.
1574         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare.
1575         (expand_move): Adjust prototype.
1576         * config/bfin/bfin.c (expand_move): Now returns bool.  Handle
1577         invalid constants specially.
1578         (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New
1579         functions.
1580         (TARGET_CANNOT_FORCE_CONST_MEM): New macro.
1581
1582         * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol,
1583         sibcall_value_symbol): Allow these patterns if
1584         TARGET_LEAF_ID_SHARED_LIBRARY.
1585         * config/bfin/bfin.c (bfin_expand_call): Allow them here as well.
1586         (override_options): Turn on id shared library flags if -msep-data,
1587         but disallow the combination of these options on the command line.
1588         * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA
1589         MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros.
1590         (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies
1591         -mid-shared-library.
1592         (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data.
1593         * doc/invoke.texi (Blackfin Options): Document new switches.
1594
1595         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some
1596         edge cases with local functions and TARGET_ID_SHARED_LIBRARY.
1597
1598         * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially
1599         inflate costs for addresses with an out-of-bounds address.
1600
1601 2006-11-19  Andrew Pinski  <pinskia@gmail.com>
1602
1603         PR rtl-opt/29879
1604         * fwprop.c (loops): Remove.
1605         (forward_propagate_into): Use current_loops instead of
1606         loops.
1607         (fwprop_init): Call loop_optimizer_init instead of
1608         flow_loops_find.
1609         (fwprop_done): Call loop_optimizer_finalize instead of
1610         flow_loops_free.
1611         (fwprop): Use current_loops instead of loops.
1612
1613 2006-11-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1614
1615         PR c++/8586
1616         * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall.
1617
1618 2006-11-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1619
1620         PR target/29114
1621         * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
1622         larger than BITS_PER_WORD.
1623
1624 2006-11-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1625
1626         PR fortran/27885
1627         PR middle-end/28176
1628         * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
1629         to MAX_FIXED_MODE_SIZE.
1630
1631 2006-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1632
1633         * builtins.c (integer_valued_real_p): Handle fmin/fmax.
1634         (fold_builtin_fmin_fmax): New.
1635         (fold_builtin_1): Use it.
1636
1637         * fold-const.c (fold_strip_sign_ops): Handle copysign.
1638
1639 2006-11-18  Richard Guenther  <rguenther@suse.de>
1640
1641         * config/i386/i386.c (ix86_builtins): New array for ix86
1642         builtin function decls.
1643         (def_builtin): New function.
1644         (def_builtin_const): Likewise.
1645         (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const.
1646
1647 2006-11-18  Vladimir Makarov  <vmakarov@redhat.com>
1648
1649         * doc/invoke.texi (core2): Add item.
1650
1651         * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New
1652         macros.
1653         (TARGET_CPU_CPP_BUILTINS): Add code for core2.
1654         (TARGET_CPU_DEFAULT_generic): Change value.
1655         (TARGET_CPU_DEFAULT_NAMES): Add core2.
1656         (processor_type): Add new constant PROCESSOR_CORE2.
1657
1658         * config/i386/i386.md (cpu): Add core2.
1659
1660         * config/i386/i386.c (core2_cost): New initialized variable.
1661         (m_CORE2): New macro.
1662         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
1663         x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop,
1664         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
1665         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
1666         x86_partial_reg_dependency, x86_memory_mismatch_stall,
1667         x86_accumulate_outgoing_args, x86_prologue_using_move,
1668         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
1669         x86_sse_partial_reg_dependency, x86_rep_movl_optimal,
1670         x86_use_incdec, x86_four_jump_limit, x86_schedule,
1671         x86_pad_returns): Add m_CORE2.
1672         (override_options): Add entries for Core2.
1673         (ix86_issue_rate): Add case for Core2.
1674
1675 2006-11-18  Aldy Hernandez  <aldyh@redhat.com>
1676
1677         * doc/invoke.texi: Fix mno-isel typo.
1678
1679 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
1680
1681         * config/rs6000/spe.md (movv4hi_internal): Add alternative for
1682         easy vector constant loads.
1683
1684 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
1685
1686         * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
1687         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1688         __NO_LWSYNC__ if TARGET_NO_LWSYNC.
1689         * config/rs6000/sync.md (lwsync): Emit plain sync if
1690         TARGET_NO_LWSYNC.
1691
1692 2006-11-17  DJ Delorie  <dj@redhat.com>
1693
1694         * reload1.c (reloads_unique_chain): New.
1695         (reloads_conflict): Call it.
1696
1697 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
1698
1699         * config/xtensa/predicates.md (addsubx_operand): New.
1700         * config/xtensa/xtensa.c (xtensa_emit_branch): New.
1701         (xtensa_emit_bit_branch): New.
1702         (xtensa_emit_movcc): New.
1703         * config/xtensa/xtensa.md (any_minmax): New code macro.
1704         (minmax): New code attribute.
1705         (any_cond, any_scc, any_scc_sf): New code macros.
1706         (*addx2, *addx4, *addx8): Delete.
1707         (*addx): New.
1708         (*subx2, *subx4, *subx8): Delete.
1709         (*subx): New.
1710         (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro.
1711         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond.
1712         (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch.
1713         (*bittrue, *bitfalse): Use xtensa_emit_bit_branch.
1714         (seq, sne, sgt, sge, slt, sle): Use any_scc macro.
1715         (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc.
1716         (movsfcc_internal0, movsfcc_internal1): Likewise.
1717         (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro.
1718         * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New.
1719         (xtensa_emit_bit_branch): New.
1720         (xtensa_emit_movcc): New.
1721         (function_arg_boundary): Add missing prototype.
1722
1723 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
1724
1725         * config/xtensa/xtensa.md (tstsi): Delete
1726
1727 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
1728
1729         * config/xtensa/xtensa.md (entry): Do not emit .frame directive.
1730
1731 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
1732
1733         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1734
1735 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
1736
1737         * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
1738
1739 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1740
1741         * tree-vrp.c (execute_vrp): Do not update current_loops.
1742         * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
1743         * doc/loop.texi: Remove documentation for cancelled functions.
1744         * tree-ssa-loop-im.c (loop_commit_inserts): Removed.
1745         (move_computations, determine_lsm): Use bsi_commit_edge_inserts
1746         instead.
1747         * cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
1748         (remove_path): Ensure that in delete_basic_blocks, the loops
1749         are still allocated.
1750         (add_loop): Work on valid loop structures.
1751         (loopify): Modify call of add_loop.
1752         (mfb_update_loops): Removed.
1753         (create_preheader): Do not update loops explicitly.
1754         (force_single_succ_latches, loop_version): Do not use
1755         loop_split_edge_with.
1756         (loop_split_edge_with): Removed.
1757         * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
1758         Do not use bsi_insert_on_edge_immediate_loop.
1759         (split_loop_exit_edge, tree_unroll_loop): Do not use
1760         loop_split_edge_with.
1761         (bsi_insert_on_edge_immediate_loop): Removed.
1762         * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops.  Do not
1763         use loop_split_edge_with.
1764         * cfghooks.c: Include cfgloop.h.
1765         (verify_flow_info): Verify that loop_father is filled iff current_loops
1766         are available.
1767         (redirect_edge_and_branch_force, split_block, delete_basic_block,
1768         split_edge, merge_blocks, make_forwarder_block, duplicate_block):
1769         Update cfg.
1770         * cfgloopanal.c (mark_irreducible_loops): Work if the function contains
1771         no loops.
1772         * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
1773         loop_split_edge_with.
1774         (sms_schedule): Use current_loops.
1775         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
1776         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
1777         current_loops.
1778         (rtl_loop_init, rtl_loop_done): Do not set current_loops.
1779         * tree-ssa-sink.c (execute_sink_code): Use current_loops.
1780         * ifcvt.c (if_convert): Ditto.
1781         * predict.c (predict_loops): Do not clear current_loops.
1782         (tree_estimate_probability): Use current_loops.
1783         (propagate_freq): Receive head of the region to propagate instead of
1784         loop.
1785         (estimate_loops_at_level): Do not use shared to_visit bitmap.
1786         (estimate_loops): New function.  Handle case current_loops == NULL.
1787         (estimate_bb_frequencies): Do not allocate tovisit.  Use
1788         estimate_loops.
1789         * tree-ssa-loop.c (current_loops): Removed.
1790         (tree_loop_optimizer_init): Do not return loops.
1791         (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
1792         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
1793         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
1794         Do not update loops explicitly.
1795         * function.h (struct function): Add x_current_loops field.
1796         (current_loops): New macro.
1797         * tree-if-conv.c (combine_blocks): Do not update loops explicitly.
1798         * loop-unroll.c (split_edge_and_insert): New function.
1799         (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
1800         use loop_split_edge_with.
1801         * loop-doloop.c (add_test, doloop_modify): Ditto.
1802         * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
1803         * cfglayout.c (copy_bbs): Do not update loops explicitly.
1804         * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
1805         * tree-vect-transform.c (vect_transform_loop): Do not update loops
1806         explicitly.
1807         * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
1808         (flow_loops_free): Do not free dfs_order and rc_order.
1809         (flow_loops_find): Do not set dfs_order and rc_order in loops
1810         structure.  Do not call loops and flow info verification.
1811         (add_bb_to_loop, remove_bb_from_loops): Check whether the block
1812         already belongs to some loop.
1813         * cfgloop.h (struct loops): Remove struct cfg.
1814         (current_loops, loop_split_edge_with): Declaration removed.
1815         (loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
1816         * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
1817         Declaration removed.
1818         * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
1819         * basic-block.h (split_edge_and_insert): Declare.
1820         * tree-cfg.c (remove_bb): Do not update loops explicitly.
1821
1822 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1823
1824         PR tree-optimization/29801
1825         * tree-ssa-ccp.c (get_symbol_constant_value): New function.
1826         (get_default_value): Use get_symbol_constant_value.
1827         (set_lattice_value): ICE when the value of the constant is
1828         changed.
1829         (visit_assignment): Ignore VDEFs of read-only variables.
1830
1831 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1832
1833         * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix
1834         formating.
1835         (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
1836         vect_gen_niters_for_prolog_loop): Fold the emited expressions.
1837
1838 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1839
1840         * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to
1841         select subvars of var.
1842
1843 2006-11-17  Jakub Jelinek  <jakub@redhat.com>
1844
1845         PR middle-end/29584
1846         * tree-ssa-forwprop.c (simplify_switch_expr): Don't
1847         optimize if DEF doesn't have integral type.
1848
1849 2006-11-16  Mike Stump  <mrs@apple.com>
1850
1851         * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
1852         pre-darwin9 system, unless the user asks for it directly.
1853         (PREFERRED_DEBUGGING_TYPE): Likewise.
1854         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
1855         * config.gcc: Add suppport for darwin9.h.
1856         * config/darwin9.h: Add.
1857         * doc/install.texi (Specific): Clarify darwin documentation.
1858
1859 2006-11-16  Richard Earnshaw  <rearnsha@arm.com>
1860
1861         * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when
1862         optimizing for size.
1863
1864 2006-11-16  Mike Stump  <mrs@apple.com>
1865
1866         * Makefile.in (targhooks.o): Add $(OPTABS_H).
1867
1868 2006-11-16  Dirk Mueller  <dmueller@suse.de>
1869
1870         * tree-vrp.c (get_value_range): Use XCNEW instead
1871         of XNEW and memset.
1872         (insert_range_assertions): Use XCNEWVEC instead
1873         of XNEWVEC and memset.
1874         (vrp_initialize): Same.
1875         (vrp_finalize): Same.
1876         * tree-ssa-ccp.c (ccp_initialize): Same.
1877         * predict.c (tree_bb_level_predictions): Same.
1878         * calls.c (expand_call): Same.
1879         * tree-ssa-copy.c (init_copy_prop): Same.
1880         (fini_copy_prop): Same.
1881         * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
1882         of GGC_NEW and memset.
1883
1884 2006-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1885
1886         PR middle-end/26306
1887         * gimplify.c (gimplify_expr): Only force a load for references to
1888         non-BLKmode volatile values.
1889         * doc/implement-c.texi (Qualifiers implementation): Document the
1890         interpretation of what a volatile access is.
1891         * doc/extend.texi (C++ Extensions): Rework same documentation.
1892
1893 2006-11-16  Joseph Myers  <joseph@codesourcery.com>
1894
1895         * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
1896         memory operand.
1897
1898 2006-11-16  Richard Earnshaw  <rearnsha@arm.com>
1899
1900         * arm.md (abssi2): Allow Thumb as well.  Use an SImode scratch for
1901         Thumb.
1902         (arm_neg_abssi2): Renamed from neg_abssi2.
1903         (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
1904
1905 2006-11-16  Uros Bizjak  <ubizjak@gmail.com>
1906
1907         * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
1908         number of arguments passed to local functions in SSE registers is 3.
1909
1910         * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
1911         number of arguments passed in SSE registers to 3.
1912
1913 2006-11-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1914
1915         PR target/29201
1916         * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
1917         bb to ...
1918         (get_last_bb_insn): ... new global function.
1919         (basic_block.h): Declare it.
1920         * haifa-sched.c (create_recovery_block): Use it.
1921
1922 2006-11-15  H.J. Lu  <hongjiu.lu@intel.com>
1923
1924         PR middle-end/29862
1925         * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert.
1926
1927 2006-11-15  Paul Brook  <paul@codesourcery.com>
1928
1929         * config/arm/unwind-arm.c (_Unwind_GetDataRelBase,
1930         _Unwind_GetTextRelBase): Move from here ...
1931         * config/arm/pr-support.c (_Unwind_GetDataRelBase,
1932         _Unwind_GetTextRelBase): ... To here.
1933
1934 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1935
1936         * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory
1937         addresses we generate for testing are aligned.
1938
1939 2006-11-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1940
1941         PR tree-opt/29788
1942         * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
1943         to what is the const decl is a place holder for.
1944
1945 2006-11-15  Uros Bizjak  <ubizjak@gmail.com>
1946
1947         * config/i386/i386.opt: New target option -mx87regparm.
1948
1949         * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
1950         and float_in_x87 variables. mmx_words, sse_words: Remove.
1951         (X87_REGPARM_MAX): Define.
1952
1953         * config/i386/i386.c (override_options): Error out for
1954         -mx87regparm but no 80387 support.
1955         (ix86_attribute_table): Add x87regparm.
1956         (ix86_handle_cconv_attribute): Update comments for x87regparm.
1957         (ix86_comp_type_attributes): Check for mismatched x87regparm types.
1958         (ix86_function_x87regparm): New function.
1959         (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
1960         point registers.
1961         (init_cumulative_args): Initialize x87_nregs and float_in_x87
1962         variables.
1963         (function_arg_advance): Process x87_nregs and x87_regno when
1964         floating point argument is to be passed in 80387 register.
1965         (function_arg): Pass XFmode arguments in 80387 registers for local
1966         functions.  Pass SFmode and DFmode arguments to local functions
1967         in 80387 registers when flag_unsafe_math_optimizations is set.
1968
1969         * reg-stack.c (convert_regs_entry): Disable NaN load for
1970         stack registers that are used for argument passing.
1971
1972         * doc/extend.texi: Document x87regparm function attribute.
1973         * doc/invoke.texi: Document -mx87regparm.
1974
1975 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1976
1977         * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
1978         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
1979         arg MODE; all callers changed.  Use it to determine validity per
1980         machine mode instead of using Pmode for all memory references.
1981         (get_address_cost): Likewise add and use new arg MEM_MODE.
1982
1983 2006-11-15  Rask Ingemann Lambertsen <rask@sygehus.dk>
1984             J"orn Rennecke <joern.rennecke@st.com>
1985
1986         * combine.c (likely_spilled_retval_1): Fix masking operation.
1987         (likely_spilled_retval_p): Use proper pattern for call to
1988         likely_spilled_retval_1.
1989
1990 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1991
1992         * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
1993
1994         * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
1995         that tests for CONSTANT_POOL_ADDRESS_P.
1996
1997 2006-11-15  Jakub Jelinek  <jakub@redhat.com>
1998
1999         PR tree-optimization/29581
2000         * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
2001         REPLACEMENTS, FIRSTBSI arguments.  If initial condition or
2002         type is different between Y and USE, create a temporary
2003         variable, initialize it at the beginning of the body bb
2004         and use it as replacement instead of Y.
2005
2006 2006-11-15  Paolo Bonzini  <bonzini@gnu.org>
2007
2008         PR middle-end/29753
2009         * gimplify.c (fold_indirect_ref_rhs): Use
2010         STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
2011
2012 2006-11-14  Richard Earnshaw  <rearnsha@arm.com>
2013
2014         * expmed.c (emit_store_flag_1): New function.
2015         (emit_store_flag): Call it.  If we can't find a suitable scc insn,
2016         try a cstore insn.
2017         * expr.c (do_store_flag): If we can't find a scc insn, try cstore.
2018         Use do_compare_rtx_and_jump.
2019         * arm.h (BRANCH_COST): Increase to 2 on Thumb.
2020         * arm.md (cstoresi4): New define_expand.
2021         (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
2022         (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
2023         (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
2024
2025 2006-11-14  Caroline Tice  <ctice@apple.com>
2026
2027         * dwarf2out.c (debug_pubtypes_section): New static global variable.
2028         (pubname_entry):  Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
2029         this type.
2030         (pubname_table):  Redefine as a vector.
2031         (pubtype_table):  New static global variable, defined as a vector.
2032         (pubname_table_allocated): Remove static global variable.
2033         (pubname_table_in_use): Remove static global variable.
2034         (PUBNAME_TABLE_INCREMENT): Remove constant.
2035         (size_of_pubnames): Add parameter to deal with either pubnames or
2036         pubtypes, and change code to deal with table being a vector.
2037         (add_pubname):  Change to deal with table being a vector.
2038         (add_pubtype):  New function.
2039         (output_pubnames): Add parameter to deal with either pubnames or
2040         pubtypes, and change code to deal with table being a vector.
2041         (gen_array_type_die):  Add call to add_pubtype.
2042         (gen_enumeration_type_die): Add call to add_pubtype.
2043         (gen_struct_or_union_type_die): Add call to add_pubtype.
2044         (gen_subroutine_type_die): Add call to add_pubtype.
2045         (gen_typedef_die):  Add call to add_pubtype.
2046         (dwarf2out_init): Add code to initialize pubname_table and
2047         pubtype_table vectors; also initialize debug_pubtypes_section.
2048         (prune_unused_types):  Change to deal with pubnames being a vector.
2049         (dwarf2out_finish): Change to deal with pubnames being a vector; add
2050         pubnames table to call to output_pubnames;  Add code to output pubtypes
2051         table if DEBUG_PUBTYPES_SECTION is defined.
2052         * config/darwin.c (darwin_file_start):  Add DEBUG_PUBTYPES_SECTION to
2053         debugnames.
2054         * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
2055
2056 2006-11-14  Joseph Myers  <joseph@codesourcery.com>
2057
2058         * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
2059         iwmmxt_nregs if TARGET_IWMMXT_ABI.
2060         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2061         movv2si_internal): Support moves between core registers.
2062
2063 2006-11-14  Eric Christopher  <echristo@apple.com>
2064
2065         * configure: Regenerate with autoconf 2.59.
2066
2067 2006-11-14  Daniel Berlin  <dberlin@dberlin.org>
2068
2069         Fix PR tree-optimization/27755
2070
2071         * tree-ssa-pre.c: Update comments.
2072         (bb_bitmap_sets): Add pa_in and  deferred member.
2073         (BB_DEFERRED): New macro.
2074         (maximal_set): New variable.
2075         (pre_stats): Add pa_insert member.
2076         (bitmap_set_and): Short circuit orig == dest.
2077         (bitmap_set_subtract_values): New function.
2078         (bitmap_set_contains_expr): Ditto.
2079         (translate_vuses_through_block): Add phiblock argument.
2080         (dependent_clean): New function.
2081         (compute_antic_aux): Update for maximal_set changes.
2082         (compute_partial_antic_aux): New function.
2083         (compute_antic): Handle partial anticipation.
2084         (do_partial_partial_insertion): New function.
2085         (insert_aux): Handle partial anticipation.
2086         (add_to_sets): Add to maximal set.
2087         (compute_avail): Ditto.
2088         (init_pre): Initialize maximal_set.
2089         (execute_pre): Do partial anticipation if -O3+.
2090
2091 2006-11-14  Paolo Bonzini  <bonzini@gnu.org>
2092
2093         PR rtl-optimization/29798
2094
2095         * fwprop.c (use_killed_between): Check that DEF_INSN dominates
2096         TARGET_INSN before any other check.
2097         (fwprop_init): Always calculate dominators.
2098         (fwprop_done): Always free them.
2099
2100 2006-11-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2101
2102         * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
2103         COND_EXPR.
2104
2105 2006-11-13  DJ Delorie  <dj@redhat.com>
2106
2107         * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
2108         temporary for intermediates.
2109
2110 2006-11-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2111
2112         * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
2113         (sh_optimize_target_register_callee_saved): #if 0 the code
2114         using NOTE_INSN_LOOP_{BEG,END}.
2115
2116 2006-11-13  Roger Sayle  <roger@eyesopen.com>
2117
2118         * fold-const.c (optimize_bit_field_compare): Recursively call
2119         fold when simplifying non-constant comparisons between bit-fields.
2120
2121 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
2122
2123         * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
2124         test.
2125         * configure: Rebuilt.
2126
2127 2006-11-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2128
2129         * config/rs6000/cell.md: New file.
2130         * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
2131         variable.
2132         (ppccell_cost): New cost matrix.
2133         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
2134         (rs6000_override_options): Set rs6000_always_hint to false
2135         for cell. Also align functions/lables/loops to 8byte
2136         for the Cell. Use PROCESSOR_CELL.
2137         (rs6000_emit_epilogue): Rename using_mfcr_multiple to
2138         using_mtcr_multiple.
2139         (rs6000_variable_issue): If the insn is a nonpipelined instruction
2140         on the Cell, return 0.
2141         (rs6000_adjust_cost): Add Cell cost adjustments.
2142         (is_microcoded_insn): Return true for Cell microcoded
2143         instructions.
2144         (is_nonpipeline_insn): New function.
2145         (rs6000_issue_rate): Add PROCESSOR_CELL.
2146         (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
2147         instructions.
2148         (rs6000_use_sched_lookahead_guard): New function.
2149         (rs6000_sched_reorder):  Reorder the ready list, if the second
2150         to last ready insn is a nonepipeline insn on the Cell.
2151         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
2152         (ASM_CPU_SPEC): Add Cell.
2153         * config/rs6000/rs6000.md (cpu): Add Cell.
2154         (cell_micro): New Attr.
2155         Include cell.md
2156
2157 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
2158
2159         * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
2160         style versions.
2161         * configure: Rebuilt.
2162
2163 2006-11-13  Richard Guenther  <rguenther@suse.de>
2164
2165         * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
2166         return value.
2167         (ix86_expand_lfloorceil): Likewise.
2168         (ix86_expand_rint): Likewise.
2169         (ix86_expand_floorceildf_32): Likewise.
2170         (ix86_expand_floorceil): Likewise.
2171         (ix86_expand_rounddf_32): Likewise.
2172         (ix86_expand_truncdf_32): Likewise.
2173         (ix86_expand_round): Likewise.
2174
2175 2006-11-13  Carlos O'Donell  <carlos@codesourcery.com>
2176             Mark Mitchell  <mark@codesourcery.com>
2177
2178         * gcc.c: Organize search path variables into $prefix relative,
2179         and well-known native. Add comments.
2180         (add_sysrooted_prefix): Add comment.
2181         (process_command): If !gcc_exec_prefix add $prefix based paths.
2182         If *cross_compile == '0', add native well-known paths.
2183         Assert tooldir_base_prefix is always relative.
2184         (main): If print_search_dirs, and if gcc_exec_prefix is set,
2185         use this value for 'install:' path.
2186         * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
2187
2188 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
2189
2190         * config/i386/i386.c: Fix a typo in comment.
2191
2192 2006-11-13  Michael Matz  <matz@suse.de>
2193
2194         * genemit.c (gen_expand): Allocate enough memory.
2195
2196 2006-11-13  Joseph Myers  <joseph@codesourcery.com>
2197
2198         * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
2199         __GXX_TYPEINFO_EQUALITY_INLINE but not
2200         __GXX_MERGED_TYPEINFO_NAMES.
2201         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
2202         __GXX_MERGED_TYPEINFO_NAMES.
2203         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
2204         __GXX_TYPEINFO_EQUALITY_INLINE.
2205
2206 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
2207             Zdenek Dvorak <dvorakz@suse.cz>
2208
2209         PR tree-optimization/29680
2210         * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
2211         PR 14784.
2212
2213 2006-11-12  Jason Merrill  <jason@redhat.com>
2214             Andrew Pinski <pinskia@physics.uc.edu>
2215
2216         PR middle-end/28915
2217         * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
2218         vector ctors.
2219         * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
2220         vector ctors.
2221         * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
2222         * tree.c (build_vector): Handle non-_CST elements.
2223
2224 2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2225
2226         * genemit.c (gen_insn): Call gen_exp with a non-null used
2227         when handling multiple insns.
2228         (gen_expand): Likewise.
2229         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
2230         * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
2231         (movsi_const_16bit+1): Copy operands[1].
2232         (call_pcrel): Copy the call_site pattern.
2233         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
2234
2235 2006-11-12  Roger Sayle  <roger@eyesopen.com>
2236
2237         * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
2238         condition for transformations.  Use !HONOR_SIGN_DEPENDENT_ROUNDING
2239         && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
2240         (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
2241
2242 2006-11-12  Daniel Berlin  <dberlin@dberlin.org>
2243
2244         Fix PR tree-optimization/29587
2245         * tree-ssa-structalias.c (process_constraint): Don't
2246         mark address taken due only to escaped vars constraint.
2247
2248 2006-11-12  Michael Matz  <matz@suse.de>
2249             Roger Sayle  <roger@eyesopen.com>
2250
2251         PR rtl-optimization/29797
2252         * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
2253         BITS_BIG_ENDIAN targets.
2254
2255 2006-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2256
2257         * builtins.c (fold_builtin_cosh): New.
2258         (fold_builtin_1): Use it.
2259         * fold-const.c (negate_mathfn_p): Add llround, lround, round,
2260         trunc to the list of "odd" functions.  Also add llrint, lrint,
2261         rint and nearbyint when flag_rounding_math is false.
2262
2263 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
2264
2265         * tree-flow.h (name_mappings_registered_p): Declare.
2266         * tree-into-ssa.c (name_mappings_registered_p): New function.
2267         * tree-cfg.c (tree_can_merge_blocks_p): Check
2268         name_mappings_registered_p instead of need_ssa_update_p.
2269
2270 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
2271
2272         * tree-ssa-loop.c (tree_vectorize): Return the result of
2273         vectorize_loops.
2274         * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
2275         if anything changed.
2276         * tree-vectorizer.h (vectorize_loops): Declaration removed.
2277         * tree-flow.h (vectorize_loops): Declaration changed.
2278
2279 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
2280
2281         * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
2282         comments.
2283         (issue_prefetch_ref): Move assignment to write_p out of loop.
2284         (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
2285         SIMULTANEOUS_PREFETCHES into account.
2286         (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
2287         * lambda-code.c (lcm): Renamed to ...
2288         (least_common_multiple): ... and exported.
2289         * tree-flow.h (least_common_multiple): Declare.
2290
2291 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
2292
2293         * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
2294         * tree-ssa-loop-niter.c (derive_constant_upper_bound):  Follow
2295         ud-chains.  Handle AND_EXPR.
2296         (record_estimate): Record whether the estimate is realistic
2297         and whether it is derived from a loop exit.
2298         (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
2299         infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
2300         functions.
2301         (compute_estimated_nb_iterations): Take only realistic bounds into
2302         account.  Set estimate_state.  Use double_ints.
2303         (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
2304         and infer_loop_bounds_from_signedness.  Do not consider basic blocks
2305         that do not have to be always executed.
2306         (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
2307         to determine whether to call infer_loop_bounds_from_undefined
2308         and compute_estimated_nb_iterations.
2309         (n_of_executions_at_most): Use double_ints.
2310         (free_numbers_of_iterations_estimates_loop): Set estimate_state.
2311         (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
2312         * double-int.c (double_int_to_tree): Improve comment.
2313         (double_int_fits_to_tree_p): New function.
2314         * double-int.h (double_int_fits_to_tree_p): Declare.
2315         * tree-data-ref.c: Include langhooks.h.
2316         (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
2317         (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
2318         (analyze_array): Do not pass estimate_only argument to
2319         analyze_array_indexes.
2320         (get_number_of_iters_for_loop): Build tree from the stored double_int
2321         value.
2322         (get_references_in_stmt, find_data_references_in_stmt): New functions.
2323         (find_data_references_in_loop): Use find_data_references_in_stmt.
2324         * tree-data-ref.h (struct data_ref_loc_d): New.
2325         (get_references_in_stmt): Declare.
2326         (estimate_iters_using_array): Declaration removed.
2327         * cfgloop.h (struct nb_iter_bound): Change type of bound to
2328         double_int.  Improve comments.  Add is_exit and realistic
2329         fields.
2330         (struct loop): Changed type of estimated_nb_iterations to double_int.
2331         Added estimate_state field.
2332         (record_estimate): Declaration removed.
2333
2334 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
2335
2336         * params.c (set_param_value): Initialize the "set" field.
2337         * params.h (struct param_info): Add "set" field.
2338         (PARAM_SET_P): New macro.
2339         (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
2340         L1_CACHE_LINE_SIZE): New macros.
2341         * toplev.c (DEFPARAM): Initialize the "set" field.
2342         * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
2343         SIMULTANEOUS_PREFETCHES): Removed.
2344         (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
2345         (tree_ssa_prefetch_arrays): Dump the values of the parameters.
2346         * config/sparc/sparc.c: Include params.h.
2347         (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
2348         L1_CACHE_LINE_SIZE parameters.
2349         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
2350         Removed.
2351         * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
2352         Removed.
2353         * config/i386/i386.c: Include params.h.
2354         (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
2355         (override_options): Set SIMULTANEOUS_PREFETCHES and
2356         L1_CACHE_LINE_SIZE parameters.
2357         * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
2358         (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
2359         L1_CACHE_LINE_SIZE parameters.
2360         * config/ia64/ia64.c (ia64_optimization_options): Set
2361         SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
2362         * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
2363         Removed.
2364         * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
2365         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
2366         * doc/invoke.texi: Document new params.
2367
2368 2006-11-12  Roger Sayle  <roger@eyesopen.com>
2369
2370         PR tree-optimization/13827
2371         * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
2372         as ((X^Y)&C) op 0.
2373
2374 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
2375
2376         * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
2377         update_single_exit_for_duplicated_loops): New functions.
2378         (duplicate_loop_to_header_edge): Use
2379         update_single_exit_for_duplicated_loops.
2380         * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
2381         functions only with ENABLE_CHECKING.
2382
2383 2006-11-12  Andreas Schwab  <schwab@suse.de>
2384
2385         * except.c (sjlj_emit_function_enter): Remove unused variable.
2386
2387 2006-11-11  Roger Sayle  <roger@eyesopen.com>
2388
2389         * fold-const.c (int_binop_types_match_p): New function.
2390         (size_binop): Relax constraint that both arguments must both have
2391         exactly the same sizetype type.  Instead use int_binop_types_match_p.
2392         (size_diffop): Likewise.
2393
2394         (make_range): Use build_int_cst instead of fold_convert.
2395         (fold_cond_expr_with_comparison): Use build_int_cst to construct
2396         integer constants of the correct type.
2397         (fold_div_compare): Likewise.
2398         (fold_single_bit_test): Likewise.
2399         (fold_binary): Likewise.
2400         * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
2401         has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
2402
2403 2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2404
2405         PR rtl-opt/28812
2406         * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
2407         non null value if the struct memory access is in the 0th
2408         aliasing set.
2409
2410 2006-11-12  Jie Zhang  <jie.zhang@analog.com>
2411
2412         Revert
2413         2006-11-11  Jie Zhang  <jie.zhang@analog.com>
2414         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
2415         and __BFIN__.
2416
2417         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
2418         instead of builtin_define for bfin and BFIN.
2419
2420 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
2421
2422         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
2423         and __BFIN__.
2424
2425 2006-11-11  Jan Hubicka  <jh@suse.cz>
2426
2427         * extend.texi (__builtin_expect): We no longer require second argument
2428         to be constant.
2429         * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
2430         * builtins.c (expand_builtin_expect): Simplify.
2431         (expand_builtin_expect_jump): Kill.
2432         * final.c (final_scan_insn): Do not skip the removed notes.
2433         * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
2434         EXPECTED_VALUE): Remove.
2435         * dojump.c (do_jump): Do not care about __builtin_expect.
2436         * predict.c (expected_value_to_br_prob): Kill.
2437         * function.c (expand_function_end): Do not expand
2438         NOTE_INSN_REPEATED_LINE_NUMBER.
2439         * print-rtl.c (print_rtx): Do not pretty print the removed notes.
2440         * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
2441         * cfgexpand.c (add_reg_br_prob_note): Export.
2442         * cfgcleanup.c (rest_of_handle_jump2): Do not call
2443         expected_value_to_br_prob.
2444         * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
2445         * rtl.h (add_reg_br_prob_note): Declare.
2446
2447 2006-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2448
2449         * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
2450
2451 2006-11-11  Jan Hubicka  <jh@suse.cz>
2452
2453         * predict.c (predict_loops): Kill RTL variant.
2454
2455 2006-11-11  Jan Hubicka  <jh@suse.cz>
2456
2457         * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
2458         * modulo-sched.c (find_line_note): Remove.
2459         (loop_canon_p): Do not worry about line number notes.
2460         (sms_schedule): Likewise.
2461         * cse.c (cse_main): Likewise.
2462         * regmove.c (fixup_match_1): Likewise
2463         * function.c (emit_return_info_block): Likewise.
2464         (expand_function_end): Likewise.
2465         (thread_prologue_an_epilogue_insns): Likewise.
2466         * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
2467         Likewise.
2468         * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
2469         emit_note_copy_after): Kill.
2470         (emit_note_copy): Do not worry about line numbers.
2471         * jump.c (purge_line_number_notes): Kill.
2472         (pass_purge_lineno_notes): Kill.
2473         * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
2474         call.
2475         * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
2476         * passes.c (init_optimization_passes): Don't purge_lineno_notes.
2477         * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
2478         * tree-pass.h (pass_purge_lineno_notes): Kill.
2479         * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
2480         rm_redundant_line_notes.
2481         * sched-rgb.c (schedule_region): Don't rm_line_notes,
2482         rm_redundant_line_notes.
2483         * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
2484         * haifa-sched.c: Update comment about handling notes.
2485         (unlink_line_notes): Kill.
2486         (rm_line_notes): Kill.
2487         (save_line_notes): Simplify.
2488         (rm_redundant_line_notes): Kill.
2489
2490 2006-11-11  Richard Guenther  <rguenther@suse.de>
2491
2492         * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
2493         Remove unused tree codes.
2494         * tree-vrp.c (extract_range_from_unary_expr): Remove handling
2495         of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
2496         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2497         * tree.c (stabilize_reference): Likewise.
2498         * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
2499         fold_unary): Likewise.
2500         * tree-gimple.c (is_gimple_cast): Likewise.
2501         * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
2502         * expr.c (expand_expr_real_1): Likewise.
2503         * tree-eh.c (tree_could_trap_p): Likewise.
2504         * gimplify.c (gimplify_expr): Likewise.
2505         * tree-inline.c (estimate_num_insns_1): Likewise.
2506         * tree-cfg.c (verify_expr): Likewise.
2507
2508 2006-11-11  Zdenek Dvorak <dvorakz@suse.cz>
2509
2510         * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
2511         * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
2512         (tree_ssa_prefetch_arrays): Do not dump for removed loops.
2513
2514 2006-11-11  Richard Sandiford  <richard@codesourcery.com>
2515
2516         PR middle-end/27528
2517         * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
2518         constraints accept neither registers or memories.
2519
2520 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
2521
2522         * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
2523         (NO_PROFILE_COUNTERS): Define as 1.
2524
2525 2006-11-10  Roger Sayle  <roger@eyesopen.com>
2526
2527         * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
2528         Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
2529
2530 2006-11-10  Peter Bergner  <bergner@vnet.ibm.com>
2531
2532         * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
2533
2534 2006-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2535
2536         * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
2537         (fold_builtin_hypot): Likewise.
2538         * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
2539
2540         * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
2541
2542 2006-11-10  Roger Sayle  <roger@eyesopen.com>
2543
2544         * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
2545         when attempting to build INTEGER_CSTs of non-integral types.
2546         * expmed.c (make_tree): Use the correct type, i.e. the inner
2547         type, when constructing the individual elements of a CONST_VECTOR.
2548
2549 2006-11-10  Jan Hubicka  <jh@suse.cz>
2550
2551         * cse.c (cse_process_notes): Copy the propagated value.
2552         * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
2553         in REG_EQUIV notes.
2554         * gcse.c (try_replace_reg): Copy the replacement.
2555         * i386.c (emit_i387_cw_initialization): Copy stored_mode.
2556         (assign_386_stack_local): Always return copied memory expression
2557         * function.c (instantiate_virtual_regs_in_insn): Copy the operand
2558         duplicates.
2559
2560 2006-11-10  Jan Hubicka  <jh@suse.cz>
2561
2562         * final.c (final): Walk from first instruction.
2563         * cfglayout.c (insn_locators_initialize): Remove line number notes.
2564
2565 2006-11-10  Uros Bizjak  <ubizjak@gmail.com>
2566
2567         PR target/29777
2568         * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
2569         to define_expand.
2570         (umulv8hi3_highpart): Ditto.
2571         (vec_widen_smult_hi_v8hi): New expander.
2572         (vec_widen_smult_lo_v8hi): Ditto.
2573
2574 2006-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2575
2576         PR middle-end/29335
2577         * builtins.c (do_mpfr_arg3): New.
2578         (fold_builtin_1): Handle builtins fma, fmin and fmax.
2579
2580 2006-11-09  Eric Christopher  <echristo@apple.com>
2581
2582         PR bootstrap/26892
2583         PR bootstrap/27814
2584         PR other/28994
2585         * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
2586         * config.gcc (powerpc64-*-darwin*): New target.
2587         * config.host: Ditto.
2588         * config/rs6000/darwin64.h: New file.
2589         * config/rs6000/x-darwin64: Ditto.
2590         * config/rs6000/host-ppc64-darwin.c: Ditto.
2591
2592 2006-11-09  Steve Ellcey  <sje@cup.hp.com>
2593
2594         * config/ia64/ia64.c (ia64_hpux_init_libfuncs):  Use HP-UX millicode
2595         routines for integer division.
2596
2597 2006-11-09  Daniel Jacobowitz  <dan@codesourcery.com>
2598
2599         * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
2600
2601 2006-11-09  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
2602
2603         PR middle-end/29726
2604         * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
2605
2606 2006-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2607
2608         * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
2609         simplify_subreg with BLKmode outer mode.
2610
2611 2006-11-08  Brooks Moses  <brooks.moses@codesourcery.com>
2612
2613         * doc/invoke.texi: Minor formatting fixes in option lists.
2614
2615 2006-11-08  Zdenek Dvorak <dvorakz@suse.cz>
2616
2617         PR tree-optimization/29738
2618         * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
2619         (ccp_lattice_t): Remove UNKNOWN_VAL.
2620         (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
2621         Do not handle UNKNOWN_VAL.
2622         (get_default_value): Set initial value of virtual operands to
2623         VARYING.
2624         (get_value): Always use get_default_value on uninitialized
2625         operands.
2626         (set_value_varying, surely_varying_stmt_p): New functions.
2627         (set_lattice_value): Do not pass argument to get_value.
2628         Do not handle UNKNOWN_VAL.
2629         (likely_value): Follow the semantics described in the comment.
2630         (ccp_initialize): Use surely_varying_stmt_p.  Do not mark
2631         phi nodes DONT_SIMULATE_AGAIN.
2632         (ccp_fold): Do not pass argument to get_value.
2633         (fold_const_aggregate_ref, visit_assignment): Ditto.  Do not
2634         handle UNKNOWN_VAL.
2635
2636 2006-11-08  Andrew Pinski  <Andrew_Pinski@playstation.sony.com>
2637
2638         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
2639         HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
2640
2641 2006-11-08  Roger Sayle  <roger@eyesopen.com>
2642
2643         * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
2644         test for inclusion rather than as a test for exclusion.
2645         * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
2646         the condition after calling fold_binary.
2647         * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
2648         (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
2649         * builtins.c (fold_builtin_isascii): Likewise.
2650         (fold_builtin_isdigit): Likewise.
2651
2652 2006-11-08  Carlos O'Donell  <carlos@codesourcery.com>
2653
2654         * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
2655         * configure: Regenerate.
2656
2657 2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2658
2659         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
2660         enum argument instead of bool.
2661         (vect_analyze_operations): Call vectorizable_type_promotion.
2662         * tree-vectorizer.h (type_promotion_vec_info_type): New enum
2663         stmt_vec_info_type value.
2664         (supportable_widening_operation, vectorizable_type_promotion): New
2665         function declarations.
2666         * tree-vect-transform.c (vect_gen_widened_results_half): New function.
2667         (vectorizable_type_promotion): New function.
2668         (vect_transform_stmt): Call vectorizable_type_promotion.
2669         * tree-vect-analyze.c (supportable_widening_operation): New function.
2670         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
2671         Add implementation.
2672         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
2673         mode.
2674
2675         * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
2676         (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
2677         * tree-inline.c (estimate_num_insns_1): Add cases for above new
2678         tree-codes.
2679         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2680         * expr.c (expand_expr_real_1): Likewise.
2681         * optabs.c (optab_for_tree_code): Likewise.
2682         (init_optabs): Initialize new optabs.
2683         * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
2684         vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
2685         vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
2686         vec_unpacku_lo_optab): Initialize new optabs.
2687         * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
2688         (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
2689         OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
2690         optab indices.
2691         (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
2692         (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
2693         (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
2694         (vec_unpacku_lo_optab): New optabs.
2695         * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
2696         (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
2697         (vec_widen_smult_hi, vec_widen_smult_lo): New.
2698         * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
2699         (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
2700         (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
2701
2702         * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
2703         (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
2704         (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
2705         (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
2706         (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
2707         implement the unsigned unpacking patterns.
2708         (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
2709         (vec_unpacks_lo_v8hi): New signed unpacking patterns.
2710         (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
2711         (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
2712         (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
2713         (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
2714         (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
2715         (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
2716         multiplication patterns.
2717
2718         * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
2719         * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
2720         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
2721         * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
2722         (rs6000_builtin_mul_widen_odd): New.
2723         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
2724         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
2725         * tree-vectorizer.h (enum vect_relevant): New enum type.
2726         (_stmt_vec_info): Field relevant chaned from bool to enum
2727         vect_relevant.
2728         (STMT_VINFO_RELEVANT_P): Updated.
2729         (STMT_VINFO_RELEVANT): New.
2730         * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
2731         instead of STMT_VINFO_RELEVANT_P.
2732         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
2733         Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
2734         and boolean variable with enum vect_relevant.
2735         (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
2736         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
2737         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
2738
2739         2006-11-08  Richard Henderson  <rth@redhat.com>
2740
2741         * config/i386/sse.md (vec_widen_umult_hi_v8hi,
2742         vec_widen_umult_lo_v8hi): New.
2743         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
2744         vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
2745
2746         * config/i386/i386.c (ix86_expand_sse_unpack): New.
2747         * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
2748         * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
2749         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
2750         vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
2751         vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
2752         vec_unpacks_lo_v4si): New.
2753
2754         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2755
2756         * tree-vect-transform.c (vectorizable_type_demotion): New function.
2757         (vect_transform_stmt): Add case for type_demotion_vec_info_type.
2758         (vect_analyze_operations): Call vectorizable_type_demotion.
2759         * tree-vectorizer.h (type_demotion_vec_info_type): New enum
2760         stmt_vec_info_type value.
2761         (vectorizable_type_demotion): New function declaration.
2762         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
2763         mode.
2764
2765         * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
2766         * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
2767         VEC_PACK_SAT_EXPR.
2768         * tree-iniline.c (estimate_num_insns_1): Likewise.
2769         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2770         * optabs.c (optab_for_tree_code): Likewise.
2771
2772         * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
2773         compared against the predicate of the result is not 'mode' (the input
2774         to the function) but a mode with half the size of 'mode'.
2775         (init_optab): Initialize new optabs.
2776         * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
2777         New optab indices.
2778         (vec_pack_mod_optab, vec_pack_ssat_optab,  vec_pack_usat_optab): New
2779         optabs.
2780         * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
2781         (vec_pack_usat_optab): Initialize new optabs.
2782         * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
2783         * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
2784
2785         2006-11-08  Richard Henderson  <rth@redehat.com>
2786
2787         * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
2788         (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
2789         (vec_interleave_highv8hi, vec_interleave_lowv8hi):
2790         (vec_interleave_highv4si, vec_interleave_lowv4si):
2791         (vec_interleave_highv2di, vec_interleave_lowv2di): New.
2792
2793         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2794
2795         * tree-vect-transform.c (vectorizable_reduction): Support multiple
2796         datatypes.
2797         (vect_transform_stmt): Removed redundant code.
2798
2799         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2800
2801         * tree-vect-transform.c (vectorizable_operation): Support multiple
2802         datatypes.
2803
2804         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2805
2806         * tree-vect-transform.c (vect_align_data_ref): Removed.
2807         (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
2808         Updated function documentation. Return the increment stmt in ptr_incr.
2809         (bump_vector_ptr): New function.
2810         (vect_get_vec_def_for_stmt_copy): New function.
2811         (vect_finish_stmt_generation): Create a stmt_info to newly created
2812         vector stmts.
2813         (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
2814         argument.
2815         (vectorizable_reduction, vectorizable_assignment): Not supported yet if
2816         VF is greater than the number of elements that can fit in one vector
2817         word.
2818         (vectorizable_operation, vectorizable_condition): Likewise.
2819         (vectorizable_store, vectorizable_load): Support the case that the VF
2820         is greater than the number of elements that can fit in one vector word.
2821         (vect_transform_loop): Don't fail in case of multiple data-types.
2822         * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
2823         in case of multiple data-types; the smallest type determines the VF.
2824         (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
2825         if they are of different sizes.
2826         (vect_update_misalignment_for_peel): Compare misalignments in terms of
2827         number of elements rather than number of bytes.
2828         (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
2829         (vect_can_advance_ivs_p): Fix a dump printout
2830
2831 2006-11-07  Eric Christopher  <echristo@apple.com>
2832
2833         * libgcc2.c (__bswapdi2): Rename from bswapDI2.
2834         (__bswapsi2): Ditto.
2835         * libgcc2.h: Remove transformation of bswap routines.
2836         * config/i386/i386.md (bswapsi2): New.
2837         (bswapdi2): Ditto.
2838
2839 2006-11-07  Jakub Jelinek  <jakub@redhat.com>
2840
2841         * c-common.c (c_common_attributes): Add gnu_inline attribyte.
2842         (handle_gnu_inline_attribute): New function.
2843         * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
2844         (merge_decls, start_decl, start_function): Likewise.
2845         * doc/extend.texi: Document gnu_inline attribute.
2846
2847 2006-11-07  Steve Ellcey  <sje@cup.hp.com>
2848
2849         PR other/25028
2850         * config/ia64/t-hpux (LIB1ASMFUNCS):  Filter out _fixtfdi,
2851         _fixunstfdi, and  _floatditf
2852
2853 2006-11-06  Anatoly Sokolov <aesok@post.ru>
2854
2855         * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
2856         prototype.
2857         * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
2858         (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
2859         lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
2860         which start in an odd register.
2861
2862 2006-11-07  Richard Sandiford  <richard@codesourcery.com>
2863
2864         * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
2865
2866 2006-11-07  Josh Conner  <jconner@apple.com>
2867
2868         * doc/invoke.texi (fstrict-aliasing): Move implementation
2869         details...
2870         * doc/tree-ssa.texi (Alias analysis): ...here.
2871
2872 2006-11-07  Richard Guenther  <rguenther@suse.de>
2873
2874         PR tree-optimization/29610
2875         * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
2876         of tree_purge_dead_eh_edges as it may free dominators.
2877
2878         * g++.dg/other/pr29610.C: New testcase.
2879
2880 2006-11-07  David Ung  <davidu@mips.com>
2881
2882         * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
2883         costs when optimizing for size.
2884         (override_options): Use mips_rtx_cost_optimize_size table for cost
2885         calculations.
2886
2887 2006-11-07  Jie Zhang  <jie.zhang@analog.com>
2888
2889         * gcc.c (process_command): Treat -b as normal switch if its argument
2890         has no dash.
2891
2892 2006-11-07  David Ung  <davidu@mips.com>
2893
2894         * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
2895         list.
2896
2897 2006-11-06  Eric Christopher  <echristo@apple.com>
2898
2899         * config.gcc: Add x86_64-darwin host support.
2900         * config.host: Ditto.
2901         * config/i386/darwin64.h: New file.
2902         * config/i386/t-darwin64: Ditto.
2903
2904 2006-11-06  Janis Johnson  <janis187@us.ibm.com>
2905
2906         * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
2907         and output-exists-not.
2908
2909 2006-11-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2910
2911         PR tree-opt/29439
2912         * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
2913         checking for overflow.
2914
2915 2006-11-06  Jan van Dijk  <jan@etpmod.phys.tue.nl>
2916
2917         * configure.ac: Fixed typo in case statement: :: changed to ;;
2918
2919 2006-11-06  Bob Wilson  <bob.wilson@acm.org>
2920
2921         * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
2922         count_leading_zeros, and count_trailing_zeros.
2923         * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
2924         (TARGET_FOLD_BUILTIN): Define.
2925         (TARGET_EXPAND_BUILTIN): Define.
2926         (xtensa_init_builtins): New.
2927         (xtensa_fold_builtin): New.
2928         (xtensa_expand_builtin): New.
2929         (xtensa_rtx_costs): Add CTZ and CLZ.  Adjust costs for MULT.
2930         * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
2931         (CLZ_DEFINED_VALUE_AT_ZERO): Define.
2932         (CTZ_DEFINED_VALUE_AT_ZERO): Define.
2933         * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
2934         (any_extend): New code macro.
2935         (u, su): New code attributes.
2936         (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
2937         (nsau): Remove; replaced by clzsi2.
2938         (ffssi2): Use clzsi2.
2939         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
2940         _clzsi2, _ctzsi2, and _ffssi2.  Rename _nsau to _clz.
2941         * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
2942         (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
2943         (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
2944
2945 2006-11-06  Vladimir Prus  <vladimir@codesourcery.com>
2946
2947         * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
2948         set inhibit_libc.
2949         * config/arm/t-strongarm-elf: Likewise.
2950         * config/arm/t-pe: Likewise.
2951         * config/arm/t-arm-elf: Likewise.
2952         * config/arm/t-xscale-elf: Likewise.
2953         * config/arm/t-arm-coff: Likewise.
2954         * config/arm/t-xscale-coff: Likewise.
2955         * config/arm/t-wince-pe: Likewise.
2956
2957 2006-11-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2958
2959         * config/sh/lib1funcs-4-300.asm: Guard entire file with
2960         #if !__SHMEDIA__ .
2961
2962 2006-11-05  Jakub Jelinek  <jakub@redhat.com>
2963
2964         PR middle-end/29695
2965         * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
2966         simplification.
2967
2968 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
2969
2970         PR target/26915
2971         * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
2972         as a valid 80387 constant.
2973         (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
2974         * config/i386/i386.md (unnamed splitter): Split the load of
2975         constant -0.0 or -1.0  into the load of 0.0 or 1.0, followed
2976         by negation.
2977
2978 2006-11-04  Richard Earnshaw  <rearnsha@arm.com>
2979
2980         * arm.c (thumb_legitimate_addres_p): Allow any constant offset
2981         from the soft-frame, argument and virtual registers.
2982
2983 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
2984
2985         * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
2986         patterns for standard 80387 constants.
2987
2988 2006-11-03  Paolo Bonzini  <bonzini@gnu.org>
2989             Steven Bosscher  <steven@gcc.gnu.org>
2990
2991         * fwprop.c: New file.
2992         * Makefile.in: Add fwprop.o.
2993         * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
2994         * passes.c (init_optimization_passes): Schedule forward propagation.
2995         * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
2996         parameter.
2997         * timevar.def (TV_FWPROP): New.
2998         * common.opt (-fforward-propagate): New.
2999         * opts.c (decode_options): Enable forward propagation at -O2.
3000         * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
3001         * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
3002         canon_for_address, table_size): Remove.
3003         (new_basic_block, insert, remove_from_table): Remove references to
3004         table_size.
3005         (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
3006         simplification loop more straightforward by not calling fold_rtx
3007         recursively.
3008         (equiv_constant): Move here a small part of fold_rtx_subreg,
3009         do not call fold_rtx.  Call avoid_constant_pool_reference
3010         to process MEMs.
3011         * recog.h (canonicalize_change_group): New.
3012
3013         * doc/invoke.texi (Optimization Options): Document fwprop.
3014         * doc/passes.texi (RTL passes): Document fwprop.
3015
3016 2006-11-03  Geoffrey Keating  <geoffk@apple.com>
3017
3018         * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
3019         (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
3020         (grokdeclarator): Likewise.
3021
3022 2006-11-03  Steven Bosscher  <steven@gcc.gnu.org>
3023
3024         * tree-dump.c (dump_enable_all): Rename local variable
3025         ir_type to avoid name conflicts.
3026         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
3027         instead of using ir_type().
3028         * profile.c (tree_register_profile_hooks): Likewise.
3029         * value-prof.c (tree_register_value_prof_hooks): Likewise.
3030         * basic-block.h (struct edge_def): Likewise.
3031         * config/arm/arm.c (legitimize_pic_address): Likewise.
3032         * coretypes.h (ir_type): New enum of all intermediate languages
3033         used in GCC.
3034         * cfghooks.c (ir_type): Rename to...
3035         (current_ir_type): ...this.  Distinguish between cfgrtl and
3036         cfglayout mode when the current IR is RTL.  Return enum ir_type.
3037         * cfghooks.h (ir_type): Replace with current_ir_type prototype.
3038
3039 2006-11-03  Paul Brook  <paul@codesourcery.com>
3040
3041         * config/arm/arm.c (arm_file_start): New function.
3042         (TARGET_ASM_FILE_START): Define.
3043         (arm_default_cpu): New variable.
3044         (arm_override_options): Set arm_default_cpu.
3045
3046 2006-11-03  David Ung  <davidu@mips.com>
3047
3048         * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
3049         PROCESSOR_24KC and PROCESSOR_24KF.
3050         * config/mips/mips.c (mips_cpu_info_table): Add processor names
3051         and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
3052         (mips_rtx_cost_data): Add costs for the 24kc.
3053         * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
3054         * config/mips/24k.md: Remove references to 24k and replace with
3055         uses of 24kc/24kf in the appropriate reservations.
3056         * doc/invoke.texi (MIPS Options): Updated.
3057
3058 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
3059
3060         * config/sh/crt1.asm: Fix #ifdef indent.
3061
3062 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
3063         Merged from STMicroelectronics sources:
3064         2006-10-06  Andrew Stubbs  <andrew.stubbs@st.com>
3065           * config/sh/crt1.asm (vbr_600): Add missing #if.
3066         2006-08-03  J"orn Rennecke  <joern.rennecke@st.com>
3067           * sh.opt (mfused-madd): New option.
3068           * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
3069         2006-07-04  Andrew Stubbs  <andrew.stubbs@st.com>
3070           * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
3071           Remove pointless handler at VBR+0.
3072           (vbr_200, vbr_300, vbr_500): Remove pointless handler.
3073           (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
3074           fr7. Make sure the timer handler is called with the correct FPU
3075           precision setting, according to the ABI.
3076         2006-06-14  J"orn Rennecke <joern.rennecke@st.com>
3077           * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
3078           * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
3079           (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
3080         2006-06-09  J"orn Rennecke <joern.rennecke@st.com>
3081           * sh.md (cmpgeusi_t): Change into define_insn_and_split.  Accept
3082           zero as second operand.
3083         2006-04-28  J"orn Rennecke <joern.rennecke@st.com>
3084           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
3085           Fixed some bugs related to negative values, in particular -0
3086           and overflow at -0x80000000.
3087           * config/sh/divcost-analysis: Added sh4-300 figures.
3088         2006-04-27  J"orn Rennecke <joern.rennecke@st.com>
3089           * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
3090         2006-04-26  J"orn Rennecke <joern.rennecke@st.com>
3091           * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
3092           ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
3093           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
3094         New files.
3095           * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
3096           -m4-340.
3097         2006-04-24  J"orn Rennecke <joern.rennecke@st.com>
3098           SH4-300 scheduling description & fixes to SH4-[12]00 description:
3099           * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
3100           mac_mem, mem_mac, dfp_mul, fp_cmp.
3101           (insn_class, dfp_comp, any_fp_comp): Update.
3102           (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
3103           (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
3104           (muldf3_i): Likewise.
3105           (movsi_i): Split rI08 alternative into two separate alternatives.
3106           Update type.
3107           (movsi_ie, movsi_i_lowpart): Likewise.
3108           (movqi_i): Split ri alternative into two separate alternatives.
3109           Update type.
3110           * sh1.md (sh1_load_store, sh1_fp): Update.
3111           * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
3112           (mac_mem, sh4_fpscr_toggle): New insn_reservations.
3113           * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
3114           (sh4a_fp_double_arith): Likewise.
3115           * sh4-300.md: New file.
3116           * sh.c (sh_handle_option): Handle m4-300* options.
3117           (sh_adjust_cost): Fix latency of auto-increments.
3118           Handle SH4-300 differently than other SH4s.  Check for new insn types.
3119           * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
3120           been set by an option.
3121           * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
3122           (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
3123           (mbranch-cost=): Likewise.
3124           * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
3125
3126           * sh.md (mulsf3): Remove special expansion code.
3127           (mulsf3_ie): Now a define_insn_and_split.
3128           (macsf3): Allow for TARGET_SH4.
3129
3130           * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
3131           * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
3132           (expand_cbranchdi4): Likewise.
3133           (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
3134           CONST_DOUBLE if the outer code is COMPARE.
3135           * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
3136           TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
3137           (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
3138           (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
3139           Remove redundant fp_{zero,one}_operand checks.
3140           * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
3141           * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
3142           (expand_cbranchdi4): Likewise.
3143         2006-04-20  J"orn Rennecke <joern.rennecke@st.com>
3144           * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
3145
3146 2006-11-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3147
3148         * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
3149         constraints.
3150
3151 2006-11-02  Brooks Moses  <brooks.moses@codesourcery.com>
3152
3153         * doc/invoke.texi: Fix mfp-trap-mode typo.
3154
3155 2006-11-02  Carlos O'Donell  <carlos@codesourcery.com>
3156
3157         * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
3158         * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
3159         file_end_indicate_exec_stack.
3160         * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
3161         Define as 0.
3162         * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
3163         for a non-executable stack.
3164         * crti.asm: Likewise.
3165         * crtn.asm: Likewise.
3166         * libunwind.S: Likewise.
3167
3168 2006-11-02  Ben Elliston  <bje@au.ibm.com>
3169
3170         * tree-ssa.c (warn_uninit): Use expand_location variables for
3171         locus and declaration locus.
3172
3173 2006-11-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3174
3175         PR target/27405
3176         * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
3177         (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
3178         cmp{eq,gt,gtu}{si,di}_media.
3179         (*cmpne0si_media): Remove.
3180         (*movsicc_umin): Adjust gen_cmp*_media call.
3181         (unordered): Change the mode of unordered and operands[1] to
3182         SImode.
3183         (seq): Adjust gen_cmp*_media calls.  Make the mode of
3184         a temporary result of compare SImode if needed.  If the mode
3185         of operands[0] is DImode, extend the temporary result to DImode.
3186         (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
3187         (sunorderd): Change the mode of match_operand and unorderd to
3188         SImode.
3189         (cmpeq{sf,df}_media): Remove.
3190         (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
3191         (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
3192         and compare operation to SImode.
3193
3194 2006-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
3195
3196         * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
3197         instructions.
3198         (sparc64-sun-solaris2*): Likewise.
3199
3200 2006-11-02  Paul Brook  <paul@codesourcery.com>
3201
3202         * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
3203         from priority argument.  Use different section for non-default
3204         priority.
3205         * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
3206
3207 2006-11-02  Eric Botcazou  <ebotcazou@adacore.com>
3208
3209         PR other/29639
3210         * except.c (switch_to_exception_section): Do not cache the section
3211         if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
3212         and flag_function_sections is set.
3213
3214 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3215
3216         PR middle-end/29335
3217         * builtins.c (do_mpfr_sincos): New.
3218         (fold_builtin_1): Use it to fold builtin sincos.
3219
3220 2006-11-01  Roger Sayle  <roger@eyesopen.com>
3221
3222         * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
3223         it into -D_REENTRANT.
3224
3225 2006-11-01  Roger Sayle  <roger@eyesopen.com>
3226
3227         * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
3228         whether the assembler supports taking the difference of symbols in
3229         different sections.  On x86/Solaris, GAS does but Solaris as doesn't.
3230         * configure: Regenerate.
3231         * config.in: Regenerate.
3232         * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
3233         the assembler doesn't support taking the difference of symbols in
3234         different sections, i.e. we're using the native solaris assembler.
3235
3236 2006-11-01  Pete Steinmetz  <steinmtz@us.ibm.com>
3237             Peter Bergner  <bergner@vnet.ibm.com>
3238
3239         * doc/invoke.texi: Add cpu_type power6x
3240         (RS/6000 and PowerPC Options): Add -mmfpgpr.
3241         * config.gcc: Add cpu_type power6x.
3242         * configure.ac: Add test for mf{t,f}gpr instructions.
3243         (HAVE_AS_MFPGPR): New.
3244         * config.in: Regenerate.
3245         * configure: Regenerate.
3246         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
3247         * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
3248         shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
3249         and mftgpr attributes.
3250         (define_attr "cpu"): Add power6.
3251         Change instruction sequences to use new attributes.
3252         (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
3253         (fix_truncdfsi2_mfpgpr): New.
3254         (floatsidf_ppc64_mfpgpr): New.
3255         (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
3256         (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
3257         (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
3258         (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
3259         (fix_truncdfsi2): Use gpc_reg_operand constraint.
3260         * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
3261         7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
3262         Add descriptions for insert_dword, shift,trap,var_shift_rotate,
3263         cntlz,exts and var_delayed_compare.
3264         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3265         _ARCH_PWR6X, if features enabled.
3266         * config/rs6000/rs6000.opt (mmfpgpr): New.
3267         * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
3268         (cached_can_issue_more): New variable.
3269         (processor_costs): Add power6_cost.
3270         (rs6000_sched_init): New function.
3271         (is_dispatch_slot_restricted): Deleted.
3272         (set_to_load_agen): New function.
3273         (is_load_insn,is_store_insn): New functions.
3274         (adjacent_mem_locations): New function.
3275         (insn_must_be_first_in_group): New function.
3276         (insn_must_be_last_in_group): New function.
3277         (rs6000_sched_reorder): New function.
3278         (rs6000_sched_reorder2): New function.
3279         (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
3280         TARGET_SCHED_REORDER2): Define.
3281         (processor_target_table): Use PROCESSOR_POWER6 for power6.
3282         Add power6x. Add MASK_MFPGPR for power6x.
3283         (POWERPC_MASKS): Add MASK_MFPGPR.
3284         (rs6000_override_options): Set rs6000_always_hint to false
3285         for power6.  Set rs6000_align_branch_targets. Replace
3286         rs6000_sched_groups check with rs6000_align_branch_targets.
3287         Use PROCESSOR_POWER6.
3288         (last_scheduled_insn): New variable.
3289         (load_store_pendulum): New variable.
3290         (rs6000_variable_issue): Set last_scheduled_insn and
3291         cached_can_issue_more.
3292         (rs6000_adjust_cost): Add power6 cost adjustments.
3293         (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
3294         with insn_must_be_first_in_group. Add power6 priority adjustments.
3295         (rs6000_issue_rate): Add CPU_POWER6.
3296         (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
3297         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
3298         (TARGET_MFPGPR): New.
3299         (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
3300         (ASM_CPU_SPEC): Add power6x.
3301         (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
3302         conditions.
3303         * config/rs6000/power6.md: New file.
3304
3305 2006-11-01  Adam Nemet  <anemet@caviumnetworks.com>
3306
3307         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
3308         HOST_WIDE_INT_PRINT to print high and low parts.  Use
3309         HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT.  When
3310         printing a hexadecimal number prefix it with 0x.
3311
3312 2006-11-01  Chris Johns <chris@contemporary.net.au>
3313
3314         PR bootstrap/28400
3315         * Makefile.in (install-driver): Use exeext when installing
3316         $target-gcc-$version.
3317
3318 2006-11-01      Douglas Gregor <doug.gregor@gmail.com>
3319
3320         * c-common.c (flag_cpp0x): New.
3321         * c-common.h (flag_cpp0x): New.
3322         * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
3323         supported, define __GXX_EXPERIMENTAL_CPP0X__.
3324         * c-opts.c (set_std_cxx0x): New.
3325         (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
3326         * c.opt (std=c++0x): Document.
3327         (std=gnu++0x): Ditto.
3328         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
3329         * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
3330
3331 2006-11-01  Richard Guenther  <rguenther@suse.de>
3332
3333         * config/i386/i386.c (ix86_expand_rint): Fix issues with
3334         signed zeros.
3335         (ix86_expand_floorceildf_32): Likewise.
3336         (ix86_expand_floorceil): Likewise.
3337         (ix86_expand_trunc): Likewise.
3338
3339 2006-10-31  Andrew Pinski  <pinskia@gmail.com>
3340
3341         * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
3342         to "GNU C89".
3343
3344 2006-11-01  Danny Smith  <dannysmith@users.sourceforge.net>
3345
3346         * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
3347         hook.
3348         * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
3349         default.
3350         * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
3351         Override default.
3352         * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
3353         * configure.ac (use_cxa_atexit): As a special case, don't test
3354         for libc definition of __cxa_atexit on mingw32
3355         * configure: Regenerate.
3356         * config.gcc (i[34567]86-pc-mingw32): Default to
3357         enable__cxa_atexit=yes.
3358
3359 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3360
3361         * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
3362
3363 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
3364
3365         PR 23067
3366         * c-decl.c (start_struct): Don't create self-containing
3367         structures.
3368         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
3369         New.
3370         * config/rs6000/rs6000-protos.h
3371         (darwin_rs6000_special_round_type_align): New.
3372         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
3373         (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
3374
3375 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
3376
3377         * toplev.c (compile_file): Call final_write_globals
3378         even if there have been errors.
3379
3380 2006-10-31  Eric Christopher  <echristo@apple.com>
3381             Falk Hueffner  <falk@debian.org>
3382
3383         * doc/extend.texi (__builtin_bswap32): Document.
3384         (__builtin_bswap64): Ditto.
3385         * doc/libgcc.texi (bswapsi2): Document.
3386         (bswapdi2): Ditto.
3387         * doc/rtl.texi (bswap): Document.
3388         * optabs.c (expand_unop): Don't widen a bswap.
3389         (init_optabs): Init bswap. Set libfuncs explicitly
3390         for bswapsi2 and bswapdi2.
3391         * optabs.h (OTI_bswap): New.
3392         (bswap_optab): Ditto.
3393         * genopinit.c (optabs): Handle bswap_optab.
3394         * tree.h (tree_index): Add TI_UINT32_TYPE and
3395         TI_UINT64_TYPE.
3396         (uint32_type_node): New.
3397         (uint64_type_node): Ditto.
3398         * tree.c (build_common_tree_nodes_2): Initialize
3399         uint32_type_node and uint64_type_node.
3400         * builtins.c (expand_builtin_bswap): New.
3401         (expand_builtin): Call.
3402         (fold_builtin_bswap): New.
3403         (fold_builtin_1): Call.
3404         * fold-const.c (tree_expr_nonnegative_p): Return true
3405         for bswap.
3406         * builtin-types.def (BT_UINT32): New.
3407         (BT_UINT64): Ditto.
3408         (BT_FN_UINT32_UINT32): Ditto.
3409         (BT_FN_UINT64_UINT64): Ditto.
3410         * builtins.def (BUILT_IN_BSWAP32): New.
3411         (BUILT_IN_BSWAP64): Ditto.
3412         * rtl.def (BSWAP): New.
3413         * genattrtab.c (check_attr_value): New.
3414         * libgcc2.c (__bswapSI2): New.
3415         (__bswapDI2): Ditto.
3416         * libgcc2.h (__bswapSI2): Declare.
3417         (__bswapDI2): Ditto.
3418         * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
3419         * simplify-rtx.c (simplify_const_unary_operation): Return
3420         0 for BSWAP.
3421         * libgcc-std.ver (__bwapsi2): Add.
3422         (__bswapdi2): Ditto.
3423         * reload1.c (eliminate_regs_1): Add bswap.
3424         (elimination_effects): Ditto.
3425         * config/i386/i386.h (x86_bswap): New.
3426         (TARGET_BSWAP): Use.
3427         * config/i386/i386.c (x86_bswap): Set.
3428
3429 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
3430
3431         * coverage.c (coverage_checksum_string): Update comment.
3432         * dwarf2out.c (switch_to_eh_frame_section): Update for removal
3433         of get_file_function_name.
3434         * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
3435         of get_file_function_name_long.
3436         * tree.c (get_file_function_name): Rename from
3437         get_file_function_name_long; improve comment; handle 'I' and 'D'
3438         specially when the target has ctor/dtor support; remove special
3439         handling for 'F'.
3440         (get_file_function_name): Remove.
3441         * tree.h (get_file_function_name): Rename from
3442         get_file_function_name_long.
3443         (get_file_function_name): Remove prototype.
3444
3445 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
3446
3447         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
3448         * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
3449
3450         * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
3451         Call dsymutil when compiling and linking one or more source files
3452         in one step.
3453
3454 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
3455
3456         PR 15834
3457         * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
3458
3459 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
3460
3461         * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
3462         inline static functions in c99 mode.
3463
3464         PR 16622
3465         * doc/extend.texi (Inline): Update.
3466         * c-tree.h (struct language_function): Remove field 'extern_inline'.
3467         * c-decl.c (current_extern_inline): Delete.
3468         (pop_scope): Adjust test for an undefined nested function.
3469         Add warning about undeclared inline function.
3470         (diagnose_mismatched_decls): Update comments.  Disallow overriding
3471         of inline functions in a translation unit in C99.  Allow inline
3472         declarations in C99 at any time.
3473         (merge_decls): Boolize variables.  Handle C99 'extern inline'
3474         semantics.
3475         (grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
3476         C99 inline semantics.
3477         (start_function): Don't clear current_extern_inline.  Don't set
3478         DECL_EXTERNAL.
3479         (c_push_function_context): Don't push current_extern_inline.
3480         (c_pop_function_context): Don't restore current_extern_inline.
3481
3482         PR 11377
3483         * c-typeck.c (build_external_ref): Warn about static variables
3484         used in extern inline functions.
3485         * c-decl.c (start_decl): Warn about static variables declared
3486         in extern inline functions.
3487
3488 2006-10-31  Roger Sayle  <roger@eyesopen.com>
3489
3490         PR middle-end/23470
3491         * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
3492         * fold-const.c (tree_expr_nonnegative_p): Likewise.  Consider
3493         pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
3494         or y is an even integer.
3495
3496 2006-10-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3497
3498         PR target/24071
3499         * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
3500         * gthr-posix95.h (__gthread_active_p): Likewise.
3501
3502 2006-10-31  Richard Guenther  <rguenther@suse.de>
3503
3504         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
3505         acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
3506         expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
3507         exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
3508         ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
3509         lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
3510         lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
3511         btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
3512         !optimize_size.
3513
3514 2006-10-31  Steven Bosscher  <steven@gcc.gnu.org>
3515
3516         * opts.c (decode_options): Disable CSE skip blocks.
3517
3518 2006-10-30  Dirk Mueller  <dmueller@suse.de>
3519
3520         * c-common.h (strict_aliasing_warning): Fix whitespace.
3521         * c-decl (start_function): Move code for main decl warning ..
3522         * c-common.c (check_main_parameter_types): .. here.
3523         * c-common.h (check_main_parameter_types): Declare.
3524
3525 2006-10-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3526
3527         PR middle-end/29335
3528         * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
3529
3530 2006-10-30  Pete Steinmetz  <steinmtz@us.ibm.com>
3531
3532         * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
3533         be a PARALLEL containing sets.  Return false when out_pat is not
3534         a PARALLEL insn.
3535
3536 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
3537
3538         * config/mips/mips.md (mul<mode>3): Split into...
3539         (mulsi3, muldi3): ...these separate patterns.
3540
3541 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
3542
3543         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
3544         but with each set of options separated by spaces.
3545
3546 2006-10-30  J"orn Rennecke  <joern.rennecke@st.com>
3547
3548         * unwind-dw2.c (uw_init_context_1): Fix test that checks if
3549         dwarf_reg_size_table has been initialized.
3550
3551 2006-10-30  Roger Sayle  <roger@eyesopen.com>
3552
3553         * builtins.c (expand_builtin_mathfn_3): Correct coding style.
3554         * ddg.c (print_ddg_edge): Likewise.
3555         * dwarf2out.c (prune_unused_types_walk): Likewise.
3556         * ifcvt.c (noce_try_cmove_arith): Likewise.
3557         * langhooks.c (add_builtin_function): Likewise.
3558         * reg-stack.c (subst_stack_regs_pat): Likewise.
3559         * tree.c (expanded_location): Likewise.
3560         * tree-dump.c (dequeue_and_dump): Likewise.
3561
3562 2006-10-30  David Daney  <ddaney@avtrex.com>
3563
3564         * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
3565
3566 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
3567
3568         PR tree-optimization/29637
3569         * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
3570         of the innertype is the innertype itself.
3571
3572 2006-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
3573
3574         * dwarf2out.c (file_name_acquire): Correct typo.
3575
3576 2006-10-29  Daniel Berlin  <dberlin@dberlin.org>
3577
3578         * tree.h (tree_value_handle): Remove struct value_set declaration.
3579         Change value_set to bitmap_set.
3580         * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
3581         * tree-vn.c (get_value_handle): Made inline and moved to
3582         tree-flow-inline.h.
3583         * tree-flow-inline.h: (has_stmt_ann): New function.
3584         * tree-ssa-pre.c (expressions): New variable.
3585         (next_expression_id): Ditto.
3586         (alloc_expression_id): New function.
3587         (struct value_set): Remove.
3588         (get_expression_id): New function.
3589         (get_or_alloc_expression_id): Ditto.
3590         (expression_for_id): Ditto.
3591         (clear_expression_ids): Ditto.
3592         (FOR_EACH_EXPR_ID_IN_SET): New macro.
3593         (bb_value_sets): Renamed to bb_bitmap_sets.
3594         All value sets replaced with bitmap_sets.
3595         Add visited member.
3596         (BB_VISITED): New macro.
3597         (postorder): New variable.
3598         (add_to_value): Removed.
3599         (value_exists_in_set_bitmap): Ditto.
3600         (value_insert_into_set_bitmap): Ditto.
3601         (set_new): Ditto.
3602         (set_copy): Ditto.
3603         (set_remove): Ditto.
3604         (set_contains_value): Ditto.
3605         (insert_into_set): Ditto.
3606         (set_equal): Ditto.
3607         (find_leader): Ditto.
3608         (bitmap_set_subtract_from_value_set): Ditto.
3609         (value_insert_into_set): Ditto.
3610         (print_value_set): Ditto.
3611         (debug_value_set): Ditto.
3612         (constant_expr_p): New function.
3613         (bitmap_remove_from_set): Ditto.
3614         (bitmap_insert_into_set): Ditto.
3615         (bitmap_set_free): Ditto.
3616         (vh_compare): Ditto.
3617         (sorted_array_from_bitmap_set): Ditto.
3618         (bitmap_set_subtract): Ditto.
3619         (bitmap_set_equal): Ditto.
3620         (debug_bitmap_set): Ditto.
3621         (find_leader_in_sets): Ditto.
3622         (bitmap_set_replace_value): Modify for bitmapped sets.
3623         (phi_translate): Ditto.
3624         (phi_translate_set): Ditto.
3625         (bitmap_find_leader): Ditto.
3626         (valid_in_sets): Ditto.
3627         (union_contains_value): Ditto.
3628         (clean): Ditto.
3629         (compute_antic_aux): Ditto.  Mark changed blocks.
3630         (compute_antic): Ditto. Iterate in postorder and only over
3631         changing blocks.
3632         (compute_rvuse_and_antic_safe): Reuse postorder.
3633         (create_component_ref_by_pieces): Modify for bitmapped sets.
3634         (find_or_generate_expression): Ditto.
3635         (create_expression_by_pieces): Ditto.
3636         (insert_into_preds_of_block): Ditto.
3637         (changed_blocks): New variable.
3638         (do_regular_insertion): Broken out from insert_aux.
3639         (insert_aux): Modified for bitmapped sets.
3640         (find_existing_value_expr): New function.
3641         (create_value_expr_from): Use it.
3642         (insert_extra_phis): Removed.
3643         (print_bitmap_set): Renamed from bitmap_print_value_set.
3644         (compute_avail): Handle RETURN_EXPR.
3645         (init_pre): Modify for bitmapped sets.
3646         * tree-flow.h (has_stmt_ann): New function.
3647
3648 2006-10-29  Roger Sayle  <roger@eyesopen.com>
3649
3650         * builtins.c (fold_builtin_floor): Check for the availability of
3651         the C99 trunc function before transforming floor into trunc.
3652
3653 2006-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3654
3655         * builtins.c (fold_builtin_hypot): Rearrange recursive
3656         transformation before others, and also do ABS_EXPR.  When
3657         necessary, check flag_unsafe_math_optimizations.  When necessary,
3658         add fabs.
3659
3660 2006-10-29  Roger Sayle  <roger@eyesopen.com>
3661
3662         * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
3663         Fold ~X op C as X op' ~C, where op' is the swapped comparison.
3664         (fold_binary): ~X eq/ne C is now handled in fold_comparison.
3665         Fold -X eq/ne -Y as X eq/ne Y.
3666
3667 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
3668
3669         * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
3670         GENERATE_MULT3_<MODE>.  Restrict the test to SImode.  Use ISA_HAS_MUL3
3671         rather than GENERATE_MULT3_SI in the various define_peephole2s.
3672         (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
3673         Use an inclusive test for "mult" rather than "mul".
3674         (rotr<mode>3): Depend on ISA_HAS_ROR.
3675         * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
3676         ISA_HAS_MUL3.
3677         (GENERATE_MULT3_DI): Delete.
3678         (ISA_HAS_64BIT_REGS): Use consistent formatting.
3679         (ISA_HAS_MUL3): New macro.
3680         (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
3681         (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
3682         (ISA_HAS_CLZ_CLO): Likewise.
3683         (ISA_HAS_DCLZ_DCLO): Delete.
3684         (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
3685         (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
3686         the VR4120 and VR4130.
3687         (ISA_HAS_MACCHI): Use consistent formatting.
3688         (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
3689         (ISA_HAS_ROR): ...this new macro.
3690         (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
3691         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
3692         (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
3693
3694 2006-10-29  Roger Sayle  <roger@eyesopen.com>
3695
3696         PR tree-optimization/15458
3697         * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
3698         is a constant.
3699
3700 2006-10-29  Richard Guenther  <rguenther@suse.de>
3701
3702         * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
3703         (ix86_expand_truncdf_32): Likewise.
3704         * config/i386/i386.c (ix86_expand_trunc): New function expanding
3705         trunc inline for SSE math and -fno-trapping-math and if not
3706         optimizing for size.
3707         (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
3708         * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
3709         for expanding btrunc inline for SSE math.
3710
3711 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
3712
3713         * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
3714         Handle tuning for bi-arch i[34567]86-*-linux* like that for
3715         i[34567]86-*-solaris2.1[0-9]*.
3716         * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
3717         Define conditionally depending on TARGET_64BIT_DEFAULT.
3718         (SPEC_32, SPEC_64): Define.
3719         (LINK_SPEC): Use them.
3720         * doc/install.texi (--enable-targets=all): Document for x86-linux.
3721
3722 2006-10-29  Richard Guenther  <rguenther@suse.de>
3723
3724         * config/i386/i386-protos.h (ix86_expand_round): Declare.
3725         (ix86_expand_rounddf_32): Likewise.
3726         * config/i386/i386.c (ix86_expand_round): New function expanding
3727         round inline for SSE math and -fno-trapping-math and if not
3728         optimizing for size.
3729         (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
3730         * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
3731         round via ix86_expand_round.
3732
3733 2006-10-29  Richard Guenther  <rguenther@suse.de>
3734
3735         * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
3736         (ix86_expand_floorceildf_32): Likewise.
3737         * config/i386/i386.c (ix86_expand_sse_compare_mask): New
3738         static helper function.
3739         (ix86_expand_floorceil): Expander for floor and ceil to SSE
3740         math.
3741         (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
3742         * config/i386/i386.md (floordf2): Adjust to enable floor
3743         expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
3744         -fno-trapping-math is enabled and if not optimizing for size.
3745         (floorsf2, ceildf2, ceilsf2): Likewise.
3746         * config/i386/sse.md (sse_maskcmpsf3): New insn.
3747         (sse2_maskcmpdf3): Likewise.
3748
3749 2006-10-29  Richard Guenther  <rguenther@suse.de>
3750
3751         * builtins.c (expand_builtin_mathfn): Expand nearbyint as
3752         rint in case -fno-trapping-math is enabled.
3753         * config/i386/i386-protos.h (ix86_expand_rint): Declare.
3754         * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
3755         (ix86_expand_sse_fabs): Likewise.
3756         (ix86_expand_rint): New function expanding rint to x87 or SSE math.
3757         * config/i386/i386.md (rintdf2): Enable for SSE math if
3758         -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
3759         (rintsf2): Likewise.
3760
3761 2006-10-29  Richard Guenther  <rguenther@suse.de>
3762
3763         * genopinit.c (optabs): Change lfloor_optab and lceil_optab
3764         to conversion optabs.
3765         * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
3766         as conversion optab.
3767         * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
3768         (enum convert_optab_index): Add COI_lfloor and COI_lceil.
3769         (lfloor_optab, lceil_optab): Adjust defines.
3770         * builtins.c (expand_builtin_int_roundingfn): Adjust for
3771         lfloor and lceil optabs now being conversion optabs.
3772         * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
3773         * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
3774         New static helper function.
3775         (ix86_expand_lfloorceil): New function to expand lfloor and
3776         lceil inline.
3777         * config/i386/i386.md (lfloor<mode>2): Split into ...
3778         (lfloorxf<mode>2): ... x87 variant
3779         (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
3780         using ix86_expand_lfloorceil.
3781         (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
3782         Likewise.
3783         * doc/md.texi (lfloorMN, lceilMN): Document.
3784
3785 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
3786
3787         * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE.  Test for the
3788         -mno-shared assembler option on mips targets.
3789         * configure, config.in: Regenerate.
3790         * config/mips/linux.h (NO_SHARED_SPECS): New macro.
3791         (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
3792         * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
3793
3794 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
3795
3796         * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
3797         as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
3798
3799 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
3800
3801         * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
3802         config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
3803         comment typos.
3804
3805 2006-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3806
3807         PR middle-end/29335
3808         * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
3809         (fold_builtin_pow): Evaluate constant arguments at compile-time
3810         using MPFR.
3811         (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
3812         (do_mpfr_ckconv): New helper function.
3813         (do_mpfr_arg1): Use do_mpfr_ckconv.
3814         (do_mpfr_arg2): New.
3815
3816 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3817
3818         PR tree-opt/29271
3819         * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
3820         (-fdump-rtl-sched): Rename to ..
3821         (-fdump-rtl-sched1): here.  Also fix file extension number.
3822
3823 2006-10-28  Richard Guenther  <rguenther@suse.de>
3824
3825         * fold-const.c (maybe_canonicalize_comparison): Fix code
3826         to match comment.
3827
3828 2006-10-28  Uros Bizjak  <uros@kss-loka.si>
3829
3830         * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
3831         (NON_QI_REG_P): Use IN_RANGE.
3832         (REX_INT_REGNO_P): Use IN_RANGE.
3833         (FP_REGNO_P): Use IN_RANGE.
3834         (SSE_REGNO_P): Use IN_RANGE.
3835         (REX_SSE_REGNO_P): Use IN_RANGE.
3836         (MMX_REGNO_P): Use IN_RANGE.
3837         (STACK_REGNO_P): New macro.
3838         (STACK_REG_P): Use STACK_REGNO_P.
3839         (NON_STACK_REG_P): Use STACK_REGNO_P.
3840         (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
3841         (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
3842         (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
3843         (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
3844         (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
3845
3846 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
3847
3848         * except.h (output_function_exception_table): Add 'const char*' param.
3849         * except.c (switch_to_exception_section): Add 'const char*' param.
3850         If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
3851         and flag_function_sections is set, use a function-specific section.
3852         (output_function_exception_table): Add 'const char*' param.
3853         Adjust call to switch_to_exception_section.
3854         * final.c (rest_of_handle_final): Adjust calls to
3855         output_function_exception_table.
3856         * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
3857         * config.in: Regenerate.
3858         * configure: Likewise.
3859
3860 2006-10-28  Richard Guenther  <rguenther@suse.de>
3861
3862         PR middle-end/26899
3863         * fold-const.c (maybe_canonicalize_comparison_1): Helper
3864         for maybe_canonicalize_comparison.
3865         (maybe_canonicalize_comparison): New function for canonicalizing
3866         comparison trees.
3867         (fold_comparison): Call it to canonicalize comparisons with
3868         constants involved.
3869
3870 2006-10-28  Richard Guenther  <rguenther@suse.de>
3871
3872         PR target/28806
3873         * builtins.c (expand_builtin_int_roundingfn_2): Expand
3874         BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
3875         (expand_builtin): Adjust likewise.
3876         * genopinit.c (optabs[]): Add lround optab.
3877         * optabs.c (init_optabs): Initialize lround_optab.
3878         * optabs.h (enum convert_optab_index): Add COI_lround.
3879         (lround_optab): Define.
3880         * config/i386/i386-protos.h (ix86_expand_lround): Declare.
3881         * config/i386/i386.c (ix86_sse_copysign_to_positive): New
3882         static function.
3883         (ix86_expand_lround): New function.
3884         * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
3885         New expanders.
3886         * doc/md.texi (lroundMN2): Document.
3887
3888 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3889
3890         PR target/29377
3891         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
3892         argument to HOST_WIDE_INT.  Update function prototype.
3893         (round_frame_size): Change return type to HOST_WIDE_INT.  Change
3894         "size" argument to HOST_WIDE_INT.  Update function prototype.
3895
3896 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3897
3898         * config/i386/i386.c (output_387_ffreep): Create output from a
3899         template string for !HAVE_AS_IX86_FFREEP.
3900
3901 2006-10-27  Eric Christopher  <echristo@apple.com>
3902
3903         * config/darwin.c: Fix formatting and grammar.
3904
3905 2006-10-27  Jan Hubicka  <jh@suse.cz>
3906
3907         * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
3908         to be thrown away soon when IGNORE is set.
3909         * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
3910         indicating when return value shall not be computed.
3911         * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
3912
3913 2006-10-27  Vladimir Makarov  <vmakarov@redhat.com>
3914
3915         * config/i386/i386.h (TARGET_GEODE):
3916         (TARGET_CPU_CPP_BUILTINS): Add code for geode.
3917         (TARGET_CPU_DEFAULT_geode): New macro.
3918         (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
3919         TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
3920         TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
3921         TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
3922         TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
3923         the macro values.
3924         (TARGET_CPU_DEFAULT_NAMES): Add geode.
3925         (processor_type): Add PROCESSOR_GEODE.
3926
3927         * config/i386/i386.md: Include geode.md.
3928         (cpu): Add geode.
3929
3930         * config/i386/i386.c (geode_cost): New initialized global
3931         variable.
3932         (m_GEODE, m_K6_GEODE): New macros.
3933         (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
3934         x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
3935         x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
3936         x86_schedule): Use m_K6_GEODE instead of m_K6.
3937         (x86_movx, x86_cmove): Set up m_GEODE.
3938         (x86_integer_DFmode_moves): Clear m_GEODE.
3939         (processor_target_table): Add entry for geode.
3940         (processor_alias_table): Ditto.
3941
3942         * config/i386/geode.md: New file.
3943
3944         * doc/invoke.texi: Add entry about geode processor.
3945
3946 2006-10-27  Mike Stump  <mrs@apple.com>
3947
3948         * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
3949         __DYNAMIC__ from here back to ...
3950         * config/darwin.h (CPP_SPEC): ... here.
3951
3952 2006-10-26  Nathan Froyd  <froydnj@codesourcery.com>
3953             Nathan Sidwell  <nathan@codesourcery.com>
3954
3955         * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
3956         when choosing the minimum heapsize.
3957
3958 2006-10-26  Nathan Froyd <froydnj@codesourcery.com>
3959
3960         * gcc/unwind-dw2.h: Move cfa-related variables into
3961         struct frame_state_reg_info to ensure that the CFA is properly
3962         handled when executing DW_CFA_{remember,restore}_state.
3963         * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
3964         gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
3965         gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
3966         gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
3967         gcc/config/rs6000/linux-unwind.h,
3968         gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
3969         gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
3970         Modify to use new cfa_* fields.
3971
3972 2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>
3973
3974         * config/s390/s390.c (s390_init_frame_layout): Check positive
3975         frame_size.
3976
3977 2006-10-26  Ben Elliston  <bje@au.ibm.com>
3978
3979         * gimplify.c (get_name): Remove extraneous break.
3980         (gimplify_omp_for): Initialise ret with GS_OK.
3981
3982 2006-10-25  Steve Ellcey  <sje@cup.hp.com>
3983
3984         * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
3985         Add unix98.o to link line.
3986
3987 2006-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3988
3989         PR middle-end/29335
3990         * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
3991         Calculate compile-time constants using MPFR.
3992         (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
3993         BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
3994
3995 2006-10-25  Bob Wilson  <bob.wilson@acm.org>
3996
3997         * config/xtensa/lib2funcs.S: Use C-style comments.
3998
3999 2006-10-24  Nathan Froyd  <froydnj@codesourcery.com>
4000
4001         * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
4002         (file_table_relative_p): Likewise.
4003         (dwarf2out_finish): Likewise.
4004         (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
4005
4006 2006-10-25  Daniel Berlin  <dberlin@dberlin.org>
4007
4008         * tree-ssa-structalias.c (intra_create_variable_infos):
4009           Don't recreate nonlocal_all if it already exists.
4010
4011 2006-10-25  Richard Guenther  <rguenther@suse.de>
4012
4013         PR target/28803
4014         * optabs.h (enum optab_index): Remove OTI_lrint.
4015         (enum convert_optab_index): Add COI_lrint.
4016         (lrint_optab): Adjust.
4017         (expand_sfix_optab): Declare.
4018         * optabs.c (expand_sfix_optab): New function.
4019         (init_optabs): Init lrint_optab as conversion optab.
4020         * genopinit.c (lrint_optab): Change to a conversion optab.
4021         * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
4022         expansion via conversion optab.
4023         * config/i386/i386.md (*fistdi2_1): Remove
4024         flag_unsafe_math_optimizations guard.
4025         (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
4026         fist<mode>2_with_temp): Likewise.
4027         (lrint<mode>2): Split into...
4028         (lrintxf<mode>2): ... x87 part
4029         (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
4030         * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
4031         sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
4032         UNSPEC_FIX_NOTRUNC matching non-vector float modes.
4033         * doc/md.texi (lrintMN2): Document.
4034
4035 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
4036
4037         PR target/28909
4038         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
4039         Use inc and dec instructions for TARGET_USE_INCDEC.
4040         ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
4041         ("sync_double_compare_and_swap<mode>"): Likewise.
4042         ("*sync_double_compare_and_swapdi_pic"): Likewise.
4043         ("*sync_compare_and_swap_cc<mode>"): Likewise.
4044         ("sync_double_compare_and_swap_cc<mode>"): Likewise.
4045         ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
4046         ("sync_old_add<mode>"): Likewise.
4047         ("sync_lock_test_and_set<mode>"): Likewise.
4048         ("sync_lock_test_and_set<mode>"): Likewise.
4049         ("sync_add<mode>"): Likewise.
4050         ("sync_sub<mode>"): Likewise.
4051         ("sync_ior<mode>"): Likewise.
4052         ("sync_and<mode>"): Likewise.
4053         ("sync_xor<mode>"): Likewise.
4054
4055 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
4056
4057         * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
4058         (remainder_optab): Define corresponding macro.
4059         (drem_optab): Remove.
4060         * optabs.c (init_optabs): Initialize remainder_optab.  Remove
4061         drem_optab initialization.
4062         * genopinit.c (optabs): Implement remainder_optab using
4063         remainder?f3 patterns.  Remove drem_optab.
4064         * builtins.c (expand_builtin_mathfn_2): Handle
4065         BUILT_IN_REMAINDER{,F,L} using remainder_optab.
4066         (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
4067         expand_builtin_mathfn_2.
4068
4069         (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
4070         depend on flag_unsafe_math_optimizations.
4071
4072         * config/i386/i386.md ("remaindersf3", "remainderdf3")
4073         ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
4074         Do not depend on flag_unsafe_math_optimizations.  Use
4075         truncxf?f expander instead of truncxf?f_i387_noop.
4076
4077         ("fpremxf4", "fprem1xf4"): Do not depend on
4078         flag_unsafe_math_optimizations.
4079         ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
4080         flag_unsafe_math_optimizations.  Use truncxf?f expander
4081         instead of truncxf?f_i387_noop.
4082
4083         * doc/md.texi (fmod, remainder): Document standard named pattern.
4084
4085 2006-10-24  Richard Sandiford  <richard@codesourcery.com>
4086             David Daney  <ddaney@avtrex.com>
4087
4088         PR middle-end/29519
4089         * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
4090
4091 2006-10-25  Ben Elliston  <bje@au.ibm.com>
4092
4093         * doc/extend.texi (Variable Attributes): Typo fix.
4094
4095 2006-10-24  Uros Bizjak  <uros@kss-loka.si>
4096
4097         * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
4098         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
4099         (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
4100         (FRAME_POINTER_REGNUM): Update register number to 21.
4101         (REG_CLASS_CONTENTS): Update contents for added fpcr register.
4102         (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
4103
4104         * config/i386/i386.c (regclass_map): Add fpcr entry.
4105         (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
4106         Add fpcr entry.
4107         (print_reg): Assert REGNO (x) != FPCR_REG.
4108
4109         * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
4110         (DIRFLAG_REG): Renumber.
4111         (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
4112         (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
4113         (sse_prologue_save, *sse_prologue_save_insn): Renumber
4114         hardcoded SSE register numbers.
4115
4116         * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
4117         hardcoded MMX register numbers.
4118
4119 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4120
4121         PR middle-end/29335
4122         * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
4123         (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
4124         Update all callers.
4125         (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
4126         (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
4127         BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
4128         BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
4129
4130 2006-10-24  Richard Guenther  <rguenther@suse.de>
4131
4132         PR middle-end/28796
4133         * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
4134         and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
4135         for deciding optimizations in consistency with fold-const.c
4136         (fold_builtin_unordered_cmp): Likewise.
4137
4138 2006-10-24  Richard Guenther  <rguenther@suse.de>
4139
4140         * builtins.c (fold_builtin_floor): Fold floor (x) where
4141         x is nonnegative to trunc (x).
4142         (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
4143         nonnegative to FIX_TRUNC_EXPR.
4144
4145 2006-10-24  Richard Guenther  <rguenther@suse.de>
4146
4147         PR tree-optimization/29567
4148         * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
4149         for TRUTH_NOT_EXPR.  Clarify comments.
4150
4151 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4152
4153         PR middle-end/29335
4154         * builtins.c (fold_builtin_exponent): Evaluate constant arguments
4155         at compile-time using MPFR.  Change parameter VALUE to FUNC,
4156         update all callers.
4157         (do_mpfr_arg1): Rename `exact' to `inexact'.  Carefully check
4158         for overflow and underflow at all times and avoid folding in
4159         those cases.
4160
4161 2006-10-24  Ben Elliston  <bje@au.ibm.com>
4162
4163         * reload1.c: Formatting fixes.
4164
4165 2006-10-23  Zdenek Dvorak <dvorakz@suse.cz>
4166
4167         PR tree-optimization/14784
4168         * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
4169         * tree-ssa-structalias.c (get_constraint_for,
4170         intra_create_variable_infos): Set is_heapvar.
4171         * tree-ssa-operands.c (access_can_touch_variable): Do not handle
4172         non-heapvar pointer variables specially.
4173
4174 2006-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4175
4176         PR middle-end/29335
4177         * builtins.c (fold_builtin_sin, fold_builtin_cos,
4178         fold_builtin_tan): Fold all constant arguments.  Take a "type"
4179         argument as necessary.
4180         (do_mpfr_arg1): New.
4181         * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
4182
4183 2006-10-23  Bob Wilson  <bob.wilson@acm.org>
4184
4185         * config/xtensa/lib1funcs.asm: Use C-style comments.
4186
4187 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
4188
4189         * tree.c (local_define_builtin): Replace calls to
4190         lang_hooks.builtin_function with add_builtin_function.
4191         * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
4192         c_builtin_function.
4193         * c-tree.h (builtin_function): Rename to c_builtin_function. Change
4194         the signature.
4195         * c-decl.c (builtin_function): Rename to c_builtin_function. Move
4196         common code to add_builtin_function.
4197         * langhooks.c (add_builtin_function): New function.
4198         (lhd_builtin_function): New function.
4199         * langhooks.h (struct lang_hooks): Change the signature of
4200         builtin_function.
4201         (add_builtin_function): New function.
4202         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
4203         calls to lang_hooks.builtin_function with add_builtin_function.
4204         * c-common.c (decl_builtin_1): Replace calls to
4205         lang_hooks.builtin_function with add_builtin_function.
4206         * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
4207         lang_hooks.builtin_function with add_builtin_function.
4208         * config/frv/frv.c (def_builtin): Replace calls to
4209         lang_hooks.builtin_function with add_builtin_function.
4210         * config/s390/s390.c (s390_init_builtins): Replace calls to
4211         lang_hooks.builtin_function with add_builtin_function.
4212         * config/sparc/sparc.c (def_builtin): Replace calls to
4213         lang_hooks.builtin_function with add_builtin_function.
4214         * config/i386/i386.c (def_builtin): Replace calls to
4215         lang_hooks.builtin_function with add_builtin_function.
4216         * config/sh/sh.c (sh_media_init_builtins): Replace calls to
4217         lang_hooks.builtin_function with add_builtin_function.
4218         * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
4219         lang_hooks.builtin_function with add_builtin_function.
4220         * config/stormy16/stormy16.c (xstormy16_init_builtins):
4221         Replace calls to lang_hooks.builtin_function with
4222         add_builtin_function.
4223         * config/iq2000/iq2000.c (def_builtin):
4224         Replace calls to lang_hooks.builtin_function with
4225         add_builtin_function.
4226         * config/ia64/ia64.c (def_builtin): Replace calls to
4227         lang_hooks.builtin_function with add_builtin_function.
4228         * config/rs6000/rs6000.c (def_builtin): Replace calls to
4229         lang_hooks.builtin_function with add_builtin_function.
4230         (altivec_init_builtins): Replace calls to
4231         lang_hooks.builtin_function with add_builtin_function.
4232         * config/arm/arm.c (def_mbuiltin): Replace calls to
4233         lang_hooks.builtin_function with add_builtin_function.
4234         (arm_init_tls_builtins): Replace calls to
4235         lang_hooks.builtin_function with add_builtin_function.
4236         * config/mips/mips.c (mips_init_builtins): Replace calls to
4237         lang_hooks.builtin_function with add_builtin_function.
4238         * config/bfin/bfin.c (def_builtin): Replace calls to
4239         lang_hooks.builtin_function with add_builtin_function.
4240         * langhooks-def.h (lhd_builtin_function): New function.
4241         (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
4242
4243 2006-10-23  Jakub Jelinek  <jakub@redhat.com>
4244
4245         * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
4246         BUILT_IN_STRNCAT_CHK.
4247
4248 2006-10-23  Jan Hubicka  <jh@suse.cz>
4249
4250         * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
4251         don't do conversion from memmove to memcpy here.
4252         (expand_builtin_bcopy, expand_builtin): Update call of
4253         expand_builtin_memmove.
4254         (fold_builtin_memory_op): Do folding of memmove to memcpy here.
4255
4256 2006-10-23  Paul Brook  <paul@codesourcery.com>
4257
4258         * stor-layout.c (start_record_layout): maximum_field_alignment
4259         overrides STRUCTURE_SIZE_BOUNDARY.
4260
4261 2006-10-23  Ulrich Weigand  <uweigand@de.ibm.com>
4262
4263         * config/s390/predicates.md ("bras_sym_operand"): Do not accept
4264         nonlocal function symbols if flag_pic.
4265
4266 2006-10-23  Richard Guenther  <rguenther@suse.de>
4267
4268         PR middle-end/27132
4269         PR middle-end/23295
4270         * builtins.c (fold_binary): Remove checks for flag_wrapv
4271         and flag_trapv where negate_expr_p covers these cases.
4272
4273 2006-10-23  Richard Guenther  <rguenther@suse.de>
4274
4275         PR middle-end/29548
4276         * fold-const.c (fold_plusminus_mult_expr): Check exact power
4277         of two on the absolute value.
4278         (fold_binary): Fold x * -C to -x * C if x is easily negatable
4279         and negating -C does not overflow.
4280
4281 2006-10-23  Richard Guenther  <rguenther@suse.de>
4282
4283         PR middle-end/21032
4284         * convert.c (convert_to_real): Fold (float)-x to -(float)x
4285         only if not flag_rounding_math.
4286
4287 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
4288             Kaz Kojima  <kkojima@gcc.gnu.org>
4289
4290         PR target/28232
4291         * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
4292         SImode memory reference for the source of a movua.
4293         * config/sh/sh.md (UNSPEC_MOVUA): New macro.
4294         (movua): Use an unspec instead of sign_extract.  Expect the source
4295         to have mode BLKmode.
4296         (extv, insv): Use a BLKmode rather than SImode memory reference
4297         for the source of a movua.
4298
4299 2006-10-22  Jeff Law  <law@redhat.com>
4300         Richard Guenther  <rguenther@suse.de>
4301
4302         PR tree-optimization/15911
4303         * tree-vrp.c (extract_code_and_val_from_cond): New function.
4304         (register_edge_assert_for_1): Likewise.
4305         (register_edge_assert_for): Handle &&/&/||/| in conditionals.
4306         (find_conditional_asserts): Adjust for new function signature.
4307         (find_assert_locations): Likewise.
4308
4309 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
4310
4311         * config/i386/tmmintrin.h: Remove the duplicated content.
4312
4313 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
4314
4315         * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
4316         (x86_64-*-*): Likewise.
4317
4318         * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
4319         (override_options): Check SSSE3.
4320         (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
4321         IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
4322         IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
4323         IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
4324         IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
4325         IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
4326         IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
4327         IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
4328         IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
4329         IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
4330         IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
4331         IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
4332         IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
4333         IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
4334         IX86_BUILTIN_PABSD128.
4335         (bdesc_2arg): Add SSSE3.
4336         (bdesc_1arg): Likewise.
4337         (ix86_init_mmx_sse_builtins): Support SSSE3.
4338         (ix86_expand_builtin): Likewise.
4339         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
4340
4341         * config/i386/i386.md (UNSPEC_PSHUFB): New.
4342         (UNSPEC_PSIGN): Likewise.
4343         (UNSPEC_PALIGNR): Likewise.
4344         Include mmx.md before sse.md.
4345
4346         * config/i386/i386.opt: Add -mssse3.
4347
4348         * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
4349         (ssse3_phaddwv4hi3): Likewise.
4350         (ssse3_phadddv4si3): Likewise.
4351         (ssse3_phadddv2si3): Likewise.
4352         (ssse3_phaddswv8hi3): Likewise.
4353         (ssse3_phaddswv4hi3): Likewise.
4354         (ssse3_phsubwv8hi3): Likewise.
4355         (ssse3_phsubwv4hi3): Likewise.
4356         (ssse3_phsubdv4si3): Likewise.
4357         (ssse3_phsubdv2si3): Likewise.
4358         (ssse3_phsubswv8hi3): Likewise.
4359         (ssse3_phsubswv4hi3): Likewise.
4360         (ssse3_pmaddubswv8hi3): Likewise.
4361         (ssse3_pmaddubswv4hi3): Likewise.
4362         (ssse3_pmulhrswv8hi3): Likewise.
4363         (ssse3_pmulhrswv4hi3): Likewise.
4364         (ssse3_pshufbv16qi3): Likewise.
4365         (ssse3_pshufbv8qi3): Likewise.
4366         (ssse3_psign<mode>3): Likewise.
4367         (ssse3_psign<mode>3): Likewise.
4368         (ssse3_palignrti): Likewise.
4369         (ssse3_palignrdi): Likewise.
4370         (abs<mode>2): Likewise.
4371         (abs<mode>2): Likewise.
4372
4373         * config/i386/tmmintrin.h: New file.
4374
4375         * doc/extend.texi: Document SSSE3 built-in functions.
4376
4377         * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
4378
4379 2006-10-22  Ira Rosen  <irar@il.ibm.com>
4380
4381         * tree-vect-transform.c (vectorizable_load): Use the type of the
4382         return value of the mask_for_load builtin to create realign_load
4383         stmt.
4384
4385 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
4386
4387         * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
4388         expressions.
4389
4390 2006-10-21  H.J. Lu  <hongjiu.lu@intel.com>
4391
4392         * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
4393         (UNSPEC_LDDQU): This.
4394         * config/i386/sse.md (sse3_lddqu): Updated.
4395
4396 2006-10-21  Richard Guenther  <rguenther@suse.de>
4397
4398         * builtins.c (expand_builtin_int_roundingfn_2): New function.
4399         (expand_builtin): Use it to expand lrint instead of
4400         expand_builtin_mathfn.
4401
4402 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
4403
4404         PR middle-end/28252
4405         * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
4406         flag_unsafe_math_optimizations is set.
4407
4408 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
4409
4410         PR target/19398
4411         * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
4412         patterns to use memory input operand in x87->mem->XMM
4413         reload sequences.  Skip transformation for TARGET_K8.
4414
4415 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
4416
4417         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
4418         force operand1 to register if both operands are memory operands.
4419         (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
4420         (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
4421         if both operands are memory operands.
4422         (truncdfsf2): Do not force operand1 to register if both operands
4423         are memory operands.
4424
4425 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4426
4427         * Makefile.in (LIBS): Add $(GMPLIBS).
4428         * doc/install.texi: Update GMP and MPFR requirements.
4429         * doc/sourcebuild.texi (need_gmp): Delete.
4430
4431 2006-10-21  Richard Guenther  <rguenther@suse.de>
4432
4433         PR tree-optimization/3511
4434         * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
4435         got new invariant arguments during PHI translation.
4436
4437 2006-10-21  Richard Guenther  <rguenther@suse.de>
4438
4439         PR middle-end/26898
4440         * fold-const.c (fold_comparison): Fold signed comparisons
4441         of the form X +- C1 CMP Y +- C2.
4442
4443 2006-10-21  Richard Guenther  <rguenther@suse.de>
4444
4445         PR target/19116
4446         * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
4447         if flag_unsafe_math_optimizations is specified.  We have
4448         flag_finite_math_only for that.
4449         * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
4450         or flag_unsafe_math_optimizations.
4451
4452 2006-10-21  Richard Guenther  <rguenther@suse.de>
4453
4454         * builtins.c (fold_builtin_classify): Fix typo.
4455
4456 2006-10-21  Richard Guenther  <rguenther@suse.de>
4457
4458         PR middle-end/28796
4459         * simplify-rtx.c (simplify_const_relational_operation):
4460         Do not constant-fold ORDERED and UNORDERED for
4461         flag_unsafe_math_optimizations but only we do not need to
4462         honor NaNs for the given mode.
4463
4464 2006-10-21  Richard Guenther  <rguenther@suse.de>
4465
4466         PR target/29512
4467         * config/i386/i386.c (classify_argument): Remove redundant
4468         walking of the BINFOs.
4469         (contains_128bit_aligned_vector_p): Likewise.
4470
4471 2006-10-20  Mark Mitchell  <mark@codesourcery.com>
4472
4473         * BASE-VER: Set to 4.3.0.
4474
4475 2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
4476
4477         * tree.h (DECL_PTA_ARTIFICIAL): Remove.
4478         (tree_decl_with_vis): Remove artificial_pta_var flag.
4479         * tree-flow.h (referenced_var_check_and_insert): Expose.
4480         (nonlocal_all): New prototype.
4481         * tree-ssa-structalias.c (nonlocal_for_type): Remove.
4482         (nonlocal_all): Make global.
4483         (nonlocal_lookup): Remove.
4484         (nonlocal_insert): Ditto.
4485         (create_nonlocal_var): Do not call nonlocal_insert.
4486         (get_nonlocal_id_for_type): Remove.
4487         (find_global_initializers): Mark new vars we find for renaming.
4488         (intra_create_variable_infos): Only create one nonlocal.
4489         (expand_nonlocal_solutions): Remove.
4490         (compute_points_to_sets): Don't call it.
4491         (ipa_pta_execute): Ditto.
4492         (init_alias_heapvars): Don't create nonlocal_for_type.
4493         (delete_alias_heapvars): Don't remove it.
4494         * tree-ssa-operands.c (access_can_touch_variable): Don't prune
4495         nonlocal_all.
4496
4497 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
4498
4499         * doc/install.texi (Downloading GCC): Clarify mention of
4500         Fortran in the "full distribution" description.
4501
4502 2006-10-19  Daniel Berlin  <dberlin@dberlin.org>
4503
4504         Fix PR tree-optimization/28778
4505         Fix PR tree-optimization/29156
4506         Fix PR tree-optimization/29415
4507         * tree.h (DECL_PTA_ARTIFICIAL): New macro.
4508         (tree_decl_with_vis): Add artificial_pta_var flag.
4509         * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
4510         pushed into callers.
4511         * tree-ssa-structalias.c (nonlocal_for_type): New variable.
4512         (nonlocal_all): Ditto.
4513         (struct variable_info): Add directly_dereferenced member.
4514         (var_escaped_vars): New variable.
4515         (escaped_vars_tree): Ditto.
4516         (escaped_vars_id): Ditto.
4517         (nonlocal_vars_id): Ditto.
4518         (new_var_info): Set directly_dereferenced.
4519         (graph_size): New variable
4520         (build_constraint_graph): Use graph_size.
4521         (solve_graph): Don't process constraints that cannot change the
4522         solution, don't try to propagate an empty solution to our
4523         successors.
4524         (process_constraint): Set directly_dereferenced.
4525         (could_have_pointers): New function.
4526         (get_constraint_for_component_ref): Don't process STRING_CST.
4527         (nonlocal_lookup): New function.
4528         (nonlocal_insert): Ditto.
4529         (create_nonlocal_var): Ditto.
4530         (get_nonlocal_id_for_type): Ditto.
4531         (get_constraint_for): Allow results vector to be empty in the case
4532         of string constants.
4533         Handle results of calls properly.
4534         (update_alias_info): Update alias info stats on number and type of
4535         calls.
4536         (find_func_aliases): Use could_have_pointers.
4537         (make_constraint_from_escaped): Renamed from
4538         make_constraint_to_anything, and changed to make constraints from
4539         escape variable.
4540         (make_constraint_to_escaped): New function.
4541         (find_global_initializers): Ditto.
4542         (create_variable_info_for): Make constraint from escaped to any
4543         global variable, and from any global variable to the set of
4544         escaped vars.
4545         (intra_create_variable_infos): Deal with escaped instead of
4546         pointing to anything.
4547         (set_uids_in_ptset): Do type pruning on directly dereferenced
4548         variables.
4549         (find_what_p_points_to): Adjust call to set_uids_with_ptset.
4550         (init_base_vars): Fix comment, and initialize escaped_vars.
4551         (need_to_solve): Removed.
4552         (find_escape_constraints): New function.
4553         (expand_nonlocal_solutions): Ditto.
4554         (compute_points_to_sets): Call find_escape_constraints and
4555         expand_nonlocal_solutions.
4556         (delete_points_to_sets): Don't fall off the end of the graph.
4557         (init_alias_heapvars): Initialize nonlocal_for_type and
4558         nonlocal_all.
4559         (delete_alias_heapvars): Free nonlocal_for_type and null out
4560         nonlocal_all.
4561
4562 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
4563
4564         * fold-const.c (add_double): Rename to add_double_with_sign.
4565         Add 'unsigned_p' parameter and take it into account for the overflow.
4566         (mul_double): Rename to mul_double_with_sign.
4567         Add 'unsigned_p' parameter and take it into account for the overflow.
4568         (fold_div_compare): Call add_double_with_sign instead of add_double
4569         and mul_double_with_sign instead of mul_double, passing them the
4570         unsignedness of the type.
4571         * tree.h (add_double): Macroize.
4572         (add_double_with_sign): New prototype.
4573         (mul_double): Macroize.
4574         (mul_double_with_sign): New prototype.
4575
4576 2006-10-19  Chen Liqin  <liqin@sunnorth.com.cn>
4577
4578         * config/score/crti.asm: New file.
4579         * config/score/crtn.asm: New file.
4580         * config/score/elf.h: New file.
4581         * config/score/mac.md: New file.
4582         * config/score/misc.md: New file.
4583         * config/score/mul-div.S: New file.
4584         * config/score/predicates.md: New file.
4585         * config/score/score7.md: New file.
4586         * config/score/score.c: New file.
4587         * config/score/score-conv.h: New file.
4588         * config/score/score.h: New file.
4589         * config/score/score.md: New file.
4590         * config/score/score-mdaux.c: New file.
4591         * config/score/score-mdaux.h: New file.
4592         * config/score/score-modes.def: New file.
4593         * config/score/score.opt: New file.
4594         * config/score/score-protos.h: New file.
4595         * config/score/score-version.h: New file.
4596         * config/score/t-score-elf: New file.
4597         * config.gcc: Add score*-*-* configurations(Update before).
4598         * doc/invoke.texi (Score Options): New section.
4599         * doc/md.texi (Score family): New section to document constraints.
4600
4601 2006-10-19  Nick Clifton  <nickc@redhat.com>
4602
4603         * config/arm/arm.c: Fix spelling typo.
4604
4605 2006-10-18  Tom Tromey  <tromey@redhat.com>
4606
4607         * doc/install.texi (Prerequisites): Mention automake 1.9.6.
4608
4609 2006-10-18  Jan Hubicka  <jh@suse.cz>
4610
4611         PR middle-end/29299
4612         * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
4613         are used.
4614
4615 2006-10-18  Marcin Dalecki  <martin@dalecki.de>
4616
4617         * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
4618         TSI_SAME_STMT, since that's the desired entity.
4619
4620 2006-10-17  Wolfgang Gellerich  <gellerich@de.ibm.com>
4621
4622         * config/s390/contraints.md: New file.
4623         * config/s390/s390-protos.h (s390_mem_constraint,
4624         s390_O_constraint_str, s390_N_constraint_str,
4625         s390_float_const_zero_p): Function prototypes added.
4626         * config/s390/s390.c (s390_extra_constraint_str,
4627         s390_const_double_ok_for_constraint_p,
4628         s390_const_ok_for_constraint_p): Functions removed.
4629         (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
4630         s390_float_const_zero_p): New functions.
4631         * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
4632         CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
4633         EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
4634         Macro definitions removed.
4635         (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
4636         s390_extra_constraint_str): Functions removed.
4637
4638 2006-10-17  Andrew Pinsiki  <pinskia@gmail.com>
4639             Richard Sandiford  <richard@codesourcery.com>
4640
4641         PR target/29413
4642         * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
4643         * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
4644
4645 2006-10-16  Geoffrey Keating  <geoffk@apple.com>
4646
4647         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
4648         (DWARF2_FRAME_REG_OUT): Likewise.
4649         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
4650         (DWARF2_FRAME_REG_OUT): Likewise.
4651
4652 2006-10-17  Paul Brook  <paul@codesourcery.com>
4653
4654         * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
4655
4656 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
4657
4658         * doc/contrib.texi, doc/install.texi, doc/standards.texi:
4659         Standardize on "GNU Fortran" as the official name of the Fortran
4660         compiler.
4661
4662 2006-10-16  Mike Stump  <mrs@apple.com>
4663
4664         * doc/invoke.texi (Darwin Options): Document -mkernel.
4665         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
4666         -mkernel support.
4667         (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support.  Add
4668         SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
4669         (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
4670         (OS_MISSING_ALTIVEC): Add.
4671         * config/i386/i386.c (override_options): Add
4672         SUBSUBTARGET_OVERRIDE_OPTIONS callout.
4673         * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
4674         -mkernel, -static or -mdynamic-no-pic is given.
4675         (C_COMMON_OVERRIDE_OPTIONS): Add.
4676         * config/darwin.opt (fapple-kext): Add.
4677         (mkernel): Add.
4678         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
4679         -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
4680         -mkernel support.
4681         (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
4682         (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
4683         (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
4684         (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
4685         (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
4686         (flag_mkernel): Add.
4687         (flag_apple_kext): Add.
4688         (TARGET_KEXTABI): Add.
4689         * config/darwin.c (darwin_handle_kext_attribute): Add.
4690         (DARWIN_VTABLE_P): Add.
4691         (darwin_binds_local_p): Add partial support for rebinding vtables
4692         in kexts.
4693         (darwin_kextabi_p): Add.
4694         (darwin_override_options): Add.
4695         * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
4696         (darwin_kextabi_p): Add.
4697         (darwin_override_options): Add.
4698         * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
4699         __DYNAMIC__ and __STATIC__ here.
4700
4701 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
4702
4703         * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
4704         Added mention of "make pdf" target, and Texinfo requirements for
4705         same.
4706
4707 2006-10-16  DJ Delorie  <dj@redhat.com>
4708
4709         * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
4710         into the GOT in case we need a subreg of the address.
4711
4712 2006-10-16  Richard Guenther  <rguenther@suse.de>
4713
4714         PR target/25519
4715         * doc/extend.texi (X86 Built-in Functions): Fix typos in
4716         SSE builtin documentation.  Document SSE2 builtins.
4717
4718 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4719
4720         * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
4721         symbol in the output file for non-shared links when -nostdlib or
4722         -nodefaultlibs isn't specified.
4723
4724         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
4725         posix thread support.
4726
4727 2006-10-15  Jan Hubicka  <jh@suse.cz>
4728
4729         PR middle-end/29241
4730         * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
4731         declared always_inline even when not inlining.
4732
4733 2006-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
4734             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4735             Andrew Pinski  <pinskia@gmail.com>
4736
4737         PR middle-end/29111
4738         * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
4739
4740 2006-10-15  Jan Hubicka  <jh@suse.cz>
4741             Richard Guenther  <rguenther@suse.de>
4742
4743         PR middle-end/29299
4744         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
4745         process_function_and_variable_attributes on all variables, including
4746         those discovered during cgraph construction phase.
4747
4748 2006-10-15  Bernhard Fischer  <aldot@gcc.gnu.org>
4749
4750         * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
4751
4752 2006-10-14  Uros Bizjak  <uros@kss-loka.si>
4753
4754         * config/i386/athlon.md (athlon_fist): Add fisttp.
4755
4756 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
4757             Ian Lance Taylor  <ian@airs.com>
4758
4759         PR middle-end/29250
4760         * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
4761         CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
4762         recursing.
4763
4764 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
4765
4766         * config/score/score.c, config/score/score.h: Fix comment
4767         typos.
4768
4769 2006-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4770
4771         PR bootstrap/29402
4772         * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
4773         shell pipeline.
4774
4775 2006-10-13  Eric Christopher  <echristo@apple.com>
4776
4777         * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
4778
4779 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
4780
4781         Revert this change:
4782         2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
4783         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
4784         alignment supported by 32-bit ELF.
4785
4786 2006-10-13  Eric Christopher  <echristo@apple.com>
4787
4788         * config/darwin.c (darwin_emit_unwind_label): Strip
4789         name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
4790
4791 2006-10-13  Richard Guenther  <rguenther@suse.de>
4792
4793         PR tree-optimization/29446
4794         * tree-vrp.c (fix_equivalence_set): Remove.
4795         (extract_range_from_assert): Do not call fix_equivalence_set.
4796         (debug_value_range): Print a newline.
4797         (compare_name_with_value): For equivalence sets with
4798         inconsistent value ranges conservatively bail out.
4799         (compare_names): Likewise.
4800
4801 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
4802
4803         * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
4804         and MPFR for gfortran.
4805
4806 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
4807
4808         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
4809         alignment supported by 32-bit ELF.
4810
4811 2006-10-13  Paolo Bonzini  <bonzini@gnu.org>
4812
4813         PR c/29092
4814
4815         * c-typeck.c (digest_init): Always allow initializing vectors
4816         that have static storage duration with compound literals.
4817         * tree.c (build_type_attribute_qual_variant): New, based on
4818         build_type_attribute_variant.
4819         (build_type_attribute_variant): Rewrite using the former.
4820         (make_vector_type): Use build_type_attribute_qual_variant to build
4821         type variants.  Use type_hash_canon on the others.
4822
4823 2006-10-13  Daniel Berlin <dberlin@dberlin.org>
4824             Ramana Radhakrishnan  <ramana.radhakrishnan@celunite.com>
4825
4826         * tree-flow-inline.h (zero_ssa_operands): Fix comment.
4827
4828 2006-10-12  Jan Hubicka  <jh@suse.cz>
4829
4830         PR c/28419
4831         * c-decl.c (c_make_fname_decl): Do not segfault in case where
4832         current_function_decl is set but current_function_scope is not.
4833
4834 2006-10-12  Jie Zhang  <jie.zhang@analog.com>
4835
4836         * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
4837         emit_insn to emit eh_return_internal instruction.
4838         (eh_return_internal): Explicitly set pc.
4839
4840 2006-10-11  Richard Guenther  <rguenther@suse.de>
4841
4842         PR tree-optimization/28230
4843         * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
4844         to the correct place.
4845
4846 2006-10-11  Richard Guenther  <rguenther@suse.de>
4847
4848         PR inline-asm/29119
4849         * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
4850         addressable.
4851
4852 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
4853
4854         * configure.ac: Added pdf to "Make-hooks"
4855         * Makefile.in: Added TEXI2PDF definition, and various pdf-file
4856         targets and *.pdf file patterns in cleanup targets.
4857         * configure: Regenerated.
4858
4859 2006-10-10  Anatoly Sokolov <aesok@post.ru>
4860
4861         * config/avr/predicates.md: New file.
4862         * config/avr/avr.md: Include it.
4863         (REG_SP): New constant.
4864         (peepholes): Use predicates.
4865         (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
4866         difficult_branch,  difficult_rvbranch, cbi, sbi, sbix_branch,
4867         sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
4868
4869 2006-10-10  Adam Nemet  <anemet@caviumnetworks.com>
4870
4871         * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
4872         avoid alias set 0.
4873
4874 2006-10-10  Jakub Jelinek  <jakub@redhat.com>
4875
4876         PR middle-end/29272
4877         * builtins.c (var_decl_component_p): New function.
4878         (fold_builtin_memset, fold_builtin_memory_op): Restrict
4879         single entry optimization to variables and components thereof.
4880
4881 2006-10-10  Richard Guenther  <rguenther@suse.de>
4882
4883         PR rtl-optimization/29323
4884         * except.c (set_nothrow_function_flags): For functions
4885         that do not bind local bail out early.
4886
4887 2006-10-10  Ben Elliston  <bje@au.ibm.com>
4888
4889         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
4890         -mdlmzb option.
4891
4892 2006-10-09  Richard Henderson  <rth@redhat.com>
4893
4894         Revert emutls patch.
4895
4896 2006-10-09  Richard Guenther  <rguenther@suse.de>
4897
4898         PR middle-end/29254
4899         * cgraphunit.c (verify_cgraph_node): Bail out on earlier
4900         errors.
4901
4902 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
4903
4904         PR target/27880
4905         * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
4906         * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
4907         * configure: Regenerate.
4908         * config.in: Regenerate.
4909
4910 2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
4911
4912         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
4913
4914 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
4915
4916         * config/mips/mips.c (mips_legitimize_tls_address): Implement
4917         all TLS models in the same way as local exec if !TARGET_ABICALLS.
4918         Remove stray newline.
4919
4920 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
4921
4922         * config/mips/mips.c (mips_classify_symbol): Do not return
4923         SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
4924         (mips_in_small_data_p): Tweak comments.
4925
4926 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
4927
4928         * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
4929
4930 2006-10-07  Kazu Hirata  <kazu@codesourcery.com>
4931
4932         * gimplify.c, sched-int.h: Fix comment typos.
4933
4934         * sched-int.h: Fix comment typos.
4935
4936 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
4937
4938         * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
4939         New macros.
4940         * sched-ebb.c (begin_schedule_ready): Use them.
4941         * haifa-sched.c (schedule_insn, move_insn, try_ready,
4942         add_to_speculative_block, create_check_block_twin, speculate_insn,
4943         fix_jump_move, move_block_after_check): Ditto.
4944         * sched-rgn.c (new_ready): Ditto.
4945
4946 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
4947
4948         PR rtl-optimization/29128
4949         * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
4950         * sched-ebb.c (advance_target_bb): Use it to fix condition to
4951         allow interblock movement of speculation checks.
4952
4953 2006-10-06  Zdenek Dvorak <dvorakz@suse.cz>
4954
4955         PR middle-end/29256
4956         * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
4957         casted to integer type.
4958         (get_address_cost): Decrease cost of [symbol + index] addressing modes
4959         if they are significantly more expensive than [reg + index] ones.
4960
4961 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
4962
4963         PR tree-optimization/29330
4964         * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
4965         (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
4966         on newly allocated ddrs.
4967         (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
4968         to VEC (loop_p, heap) pointer.
4969         (compute_data_dependences_for_loop): Adjust caller.
4970         (free_dependence_relations): Free DDR_LOOP_NEST.
4971
4972         * tree-loop-linear.c (linear_transform_loops): Don't forget to
4973         free DEPENDENCE_RELATIONS and DATAREFS.
4974
4975         PR target/28924
4976         * builtins.c (expand_builtin_sync_operation,
4977         expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
4978         Use convert_to_mode to handle promoted arguments.
4979
4980 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
4981
4982         * print-tree.c (print_node_brief, print_node): Print sign of Inf.
4983
4984 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
4985
4986         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
4987
4988 2006-10-05  Uros Bizjak  <uros@kss-loka.si>
4989
4990         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
4991         "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
4992         Use <modeconstraint> instead of "r" as operand 1 constraint.
4993
4994 2006-10-06  Olivier Hainque  <hainque@adacore.com>
4995
4996         * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
4997         Don't recurse on the pointed-to type.
4998         * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
4999         DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
5000         types with components of variable size.
5001
5002 2006-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
5003
5004         * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
5005
5006 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
5007
5008         PR tree-optimization/29290
5009         * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
5010         multiple exits.
5011
5012         PR target/29198
5013         * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
5014         * config/i386/predicates.md (local_symbolic_operand): Likewise.
5015
5016         PR c/29091
5017         * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
5018         the number of vector elements fill the rest with zeros.
5019
5020 2006-10-05  Richard Sandiford  <richard@codesourcery.com>
5021
5022         * config/mips/mips.c (mips_pass_by_reference): Do not return false
5023         for EABI if type is NULL.  Use a size check based on GET_MODE_SIZE
5024         instead.
5025
5026 2006-10-05  Bernd Schmidt  <bernd.schmidt@analog.com>
5027
5028         * config/bfin/bfin.md (subsi3): Lose expander, change previously
5029         unnamed pattern into subsi3.  Use correct constraints/predicates.
5030         * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
5031         * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
5032
5033 2006-10-05  Ira Rosen  <irar@il.ibm.com>
5034
5035         * doc/loop.texi: Add data references analysis description.
5036
5037 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
5038
5039         * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
5040
5041 2006-10-04  Richard Henderson  <rth@redhat.com>
5042             Jakub Jelinek  <jakub@redhat.com>
5043
5044         * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
5045         * builtin-types.def (BT_WORD): Make unsigned.
5046         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
5047         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
5048         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
5049         * c-decl.c (grokdeclarator): Don't error if !have_tls.
5050         * c-parser.c (c_parser_omp_threadprivate): Likewise.
5051         * cgraph.c (decide_is_variable_needed): Look at force_output.
5052         Recurse for emulated tls.
5053         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
5054         checks redundant with decide_is_variable_needed.
5055         (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
5056         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
5057         emulated tls.
5058         * expr.c (emutls_var_address): New.
5059         (expand_expr_real_1): Expand emulated tls.
5060         (expand_expr_addr_expr_1): Likewise.
5061         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
5062         * output.h (emutls_finish): Declare.
5063         * toplev.c (compile_file): Call it.
5064         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
5065         address before wrapping in CONST.
5066         * varasm.c (emutls_htab, emutls_object_type): New.
5067         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
5068         (get_emutls_object_name, get_emutls_object_type): New.
5069         (get_emutls_init_templ_addr, emutls_decl): New.
5070         (emutls_common_1, emutls_finish): New.
5071         (assemble_variable): When emulating tls, swap decls; generate
5072         constructor for the emutls objects.
5073         (do_assemble_alias): When emulating tls, swap decl and target name.
5074         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
5075         for emulated tls.
5076         * emutls.c: New file.
5077         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
5078         tls_object for real tls.
5079
5080 2006-10-04  Zack Weinberg  <zackw@panix.com>
5081
5082         Fix bug in constraint-check generator, reported by Rask Ingemann
5083         Lambertsen:
5084         * genpreds.c (add_constraint): Don't remove anything from the
5085         expression here.
5086         (write_tm_constrs_h): Detect whether "op" argument is used, and
5087         mark it ARG_UNUSED if it isn't.
5088         (write_insn_const_int_ok_for_constraint): Skip the part of the
5089         expression that would test whether "op" (which is not available
5090         here) is a CONST_INT.
5091
5092 2006-10-04  Ryan Mansfield  <rmansfield@qnx.com>
5093
5094         PR c++/28448
5095         * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
5096
5097 2006-10-03  Geoffrey Keating  <geoffk@apple.com>
5098
5099         * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
5100         current Leopard versions.
5101         * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
5102
5103 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
5104
5105         * doc/install.texi: Fix typos.
5106
5107 2006-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5108
5109         * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
5110         * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
5111         * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
5112
5113 2006-10-02  Jack Howarth  <howarth@bromo.med.uc.edu>
5114
5115         * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
5116         arg to be struct mach_header_64* instead.
5117
5118 2006-10-02  Jakub Jelinek  <jakub@redhat.com>
5119
5120         PR c/29154
5121         * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
5122         side effects after the outer expression's post side effects.
5123
5124 2006-10-01  Sandra Loosemore  <sandra@codesourcery.com>
5125
5126         * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET):  Fix
5127         comments to reflect actual behavior and relationship between
5128         DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
5129
5130         * doc/c-tree.texi (Working with declarations): Fix documentation
5131         of FIELD_DECL likewise.
5132
5133 2006-10-01  Ryan Mansfield  <rmansfield@qnx.com>
5134
5135         PR c/20533
5136         * doc/extend.texi: Add used variable attribute description.
5137
5138 2006-09-30  Joseph S. Myers  <joseph@codesourcery.com>
5139
5140         PR c/24010
5141         * c.opt (Woverride-init): New.
5142         * c-opts.c (c_common_post_options): Default warn_override_init to
5143         extra_warnings.
5144         * c-typeck.c (add_pending_init, output_init_element): Warn for
5145         overriding initializers without side effects.
5146         * doc/invoke.texi (-Woverride-init): Document.
5147         (-Wextra): Update.
5148
5149 2006-09-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
5150
5151         PR rtl-optimization/28096
5152         * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
5153         assignment has already been used as a destination earlier in the block.
5154
5155 2006-09-29  Eric Botcazou  <ebotcazou@adacore.com>
5156
5157         * builtins.c (expand_builtin_setjmp): Delete.
5158         (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
5159         <BUILT_IN_SETJMP_SETUP>: New case.
5160         <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
5161         <BUILT_IN_SETJMP_RECEIVER>: Likewise.
5162         * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
5163         (BUILT_IN_SETJMP_DISPATCHER): Likewise.
5164         (BUILT_IN_SETJMP_RECEIVER): Likewise.
5165         * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
5166         (lower_function_body): Initialize it to false.  If it is set to true
5167         at the end of the processing, emit the setjmp dispatcher.
5168         (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
5169         is __builtin_setjmp and set calls_builtin_setjmp to true as well.
5170         <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
5171         on the rhs of the assignment.
5172         (lower_builtin_setjmp): New function.
5173         * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
5174         BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
5175         * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
5176         to detect calls that can go to non-local labels.  Use specific
5177         helper to create the abnormal edges associated with them.
5178         <MODIFY_EXPR>: Likewise.
5179         (make_abnormal_goto_edges): New function extracted from...
5180         (make_goto_expr_edges): ...here.  Call it for computed gotos.
5181         (simple_goto_p): Minor tweak.
5182         (tree_can_make_abnormal_goto): New predicate.
5183         (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
5184         (tree_purge_dead_abnormal_call_edges): New function.
5185         * tree-flow.h (tree_can_make_abnormal_goto): Declare.
5186         (tree_purge_dead_abnormal_call_edges): Likewise.
5187         (make_abnormal_goto_edges): Likewise.
5188         * tree-inline.c (expand_call_inline): Simplify statement frobbing.
5189         Purge all dead abnormal edges if the call was in the last statement.
5190         * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
5191         (execute_fixup_cfg): If there are non-local labels in the function,
5192         scan the basic blocks and split them at calls that can go to non-local
5193         labels or add missing abnormal call edges.  Write down the CFG in the
5194         dump file.
5195         (pass_fixup_cfg): Remove TODO_dump_func flag.
5196         * unwind-sjlj.c: Poison setjmp.
5197         * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
5198         * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
5199         (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
5200         (DONT_USE_BUILTIN_SETJMP): Document it.
5201
5202 2006-09-28  Geoffrey Keating  <geoffk@apple.com>
5203
5204         PR target/28617
5205         * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
5206         to 1 when __ppc64__ is defined.
5207         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
5208         darwin-64.c.
5209         * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
5210
5211 2006-09-28  Steve Ellcey  <sje@cup.hp.com>
5212
5213         * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
5214         * config/ia64/unwind-hpux.c: Delete.
5215
5216 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
5217
5218         * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
5219         on the element before gimplifying it, instead of punting if it is of
5220         variable size.
5221
5222 2006-09-28  Zdenek Dvorak <dvorakz@suse.cz>
5223
5224         * doc/loop.texi: New file.
5225         * doc/gccint.texi: Reference loop.texi.
5226         * Makefile.in (loop.texi): Add.
5227
5228 2006-09-27  Geoffrey Keating  <geoffk@apple.com>
5229
5230         * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
5231         __sysctl.
5232         * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
5233         * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
5234
5235 2006-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5236
5237         * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
5238
5239 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
5240
5241         * doc/install.texi: Document required versions of GMP and MPFR.
5242
5243 2006-09-27  Paul Brook  <paul@codesourcery.com>
5244
5245         PR target/29230
5246         * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
5247
5248 2006-09-27  Richard Sandiford  <richard@codesourcery.com>
5249
5250         * reload1.c (alter_reg): Require the alignment of the stack slot to
5251         be at least reg_max_ref_width bytes.
5252         (scan_paradoxical_subregs): Record the largest width in
5253         reg_max_ref_width.
5254
5255 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
5256
5257         PR middle-end/25261
5258         PR middle-end/28790
5259         * tree-nested.c (struct nesting_info): Added static_chain_added.
5260         (convert_call_expr): Set static_chain_added when adding static
5261         chain.  Handle OMP_PARALLEL and OMP_SECTION.
5262
5263 2006-09-25  Matthias Klose  <doko@debian.org>
5264
5265         * doc/invoke.texi: Add missing full stop.
5266
5267 2006-09-25  Richard Henderson  <rth@redhat.com>
5268
5269         * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
5270         before cgraph_function_flags_ready.
5271
5272 2006-09-24  Zdenek Dvorak <dvorakz@suse.cz>
5273             Adam Nemet  <anemet@caviumnetworks.com>
5274
5275         * tree-ssa-loop-ivopts.c (aff_combination_convert,
5276         determine_common_wider_type): New functions.
5277         (get_computation_aff): Use them to simplify arithmetic between
5278         UBASE and CBASE if they are shortened from the same type.
5279
5280 2006-09-24  Kazu Hirata  <kazu@codesourcery.com>
5281
5282         PR target/28911
5283         * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
5284         -2147483647 - 1 instead of 0x80000000.
5285
5286 2006-09-23  Revital1 Eres  <ERES@il.ibm.com>
5287
5288         * flags.h (HONOR_NANS): Fix typo in comment.
5289
5290 2006-09-23  Uros Bizjak <uros@kss-loka.si>
5291
5292         * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
5293
5294 2006-09-23  Jakub Jelinek  <jakub@redhat.com>
5295
5296         PR c/28706
5297         PR c/28712
5298         * tree.c (merge_attributes, attribute_list_contained): If both
5299         TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
5300         simple_cst_equal.
5301         * c-typeck.c (comptypes_internal): Don't consider aggregates
5302         in different TUs as compatible if there one set of attributes is
5303         not a subset of the other type's attributes.
5304         (composite_type): Try harder not to create a new aggregate type.
5305
5306 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
5307
5308         * config/i386/driver-i386.c: Always define host_detect_local_cpu.
5309         * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
5310         or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
5311         (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
5312         than replicating condition above.
5313         * config.host (i[34567]86-*-*): Always use driver-i386.o.
5314
5315         * config/darwin.h (LINK_SYSROOT_SPEC): New.
5316         (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
5317         the linker by default.
5318
5319 2006-09-22  Mike Stump  <mrs@apple.com>
5320
5321         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
5322         code.
5323
5324 2006-09-22  Richard Guenther  <rguenther@suse.de>
5325
5326         PR middle-end/28964
5327         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
5328         sort of stack variables stable.
5329
5330 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
5331
5332         PR middle-end/28690
5333         * explow.c (force_reg): Set REG_POINTER flag according to
5334         MEM_POINTER flag.
5335
5336 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
5337
5338         PR tree-optimization/28888
5339         * tree-if-conv.c (combine_blocks): Rewritten.
5340         * tree-cfg.c (tree_verify_flow_info): Check that edges with
5341         EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
5342
5343 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
5344
5345         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
5346         needed.
5347
5348 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
5349
5350         * varasm.c (copy_constant): Fix reversed gcc_assert check.
5351
5352 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
5353
5354         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
5355
5356 2006-09-21  Roger Sayle  <roger@eyesopen.com>
5357
5358         PR debug/29132
5359         * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
5360         dw_fde_current_label, to be the start of the function, i.e. the same
5361         value as dw_fde_begin.
5362
5363 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
5364
5365         * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
5366         * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
5367         (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
5368         (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
5369         (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
5370         (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
5371         (abs<mode>2, neg<mode>2): Likewise.
5372         * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
5373         (*mips_abs_ps): New define_insn.
5374
5375 2006-09-20  Josh Conner  <jconner@apple.com>
5376
5377         PR middle-end/25505
5378         * calls.c (expand_call): Allow reuse of structure return stack
5379         temp.
5380
5381 2006-09-20  Paul Brook  <paul@codesourcery.com>
5382
5383         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
5384         positive offsets.
5385
5386 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
5387
5388         * doc/extend.texi (Decimal Float): Update for latest draft TR,
5389         clean up terminology.
5390
5391 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
5392
5393         PR target/28574
5394         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
5395         with tablejumps in them.
5396
5397 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
5398
5399         PR middle-end/28046
5400         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
5401         wrap it into TARGET_EXPR.
5402
5403 2006-09-20  Eric Christopher  <echristo@apple.com>
5404
5405         * config/i386/i386.c (x86_fisttp): Remove.
5406         * config/i386/i386.h (x86_fisttp): Ditto.
5407         (TARGET_FISTTP): Ditto.
5408
5409 2006-09-19  Eric Christopher  <echristo@apple.com>
5410
5411         * doc/tm.texi (OBJC_JBLEN): Describe.
5412         * config/i386/darwin.h (OBJC_JBLEN): Define.
5413         * config/rs6000/darwin.h: Ditto.
5414
5415 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
5416
5417         PR rtl-optimization/21299
5418         * reload1.c (reload): Purge invalid ASMs in the final pass.
5419
5420 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
5421
5422         PR  28490
5423         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
5424         pointers as legitimate constants.
5425
5426 2006-09-19  Paul Brook  <paul@codesourcery.com>
5427
5428         PR target/28516
5429         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
5430
5431 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
5432
5433         PR tree-optimization/28887
5434         * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
5435         component parts from the reference.
5436         (gather_memory_references_ref): Record the reference without the
5437         nonaddressable component parts.
5438
5439 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
5440
5441         PR c/25993
5442         * c-opts.c (c_common_handle_option): Ignore the -std options
5443         if the input language is assembly.
5444
5445 2006-09-17  Ira Rosen  <irar@il.ibm.com>
5446
5447         PR tree-opt/21591
5448         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
5449         tag first.
5450         (ptr_ptr_may_alias_p): Likewise.
5451         (record_record_differ_p): New function.
5452         (base_object_differ_p): Call record_record_differ_p.
5453
5454 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
5455
5456         PR tree-opt/29059
5457         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
5458         away for the expr argument.
5459
5460 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
5461
5462         PR tree-opt/27742
5463         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
5464         before using it for dumping after vectorizing loops.
5465
5466 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
5467             Jack Howarth  <howarth@bromo.med.uc.edu>
5468
5469         PR target/29030
5470         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
5471         skip on error_mark_node.
5472         (rs6000_darwin64_record_arg_recurse): Likewise.
5473
5474 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
5475
5476         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
5477         * doc/rtl.texi: Remove related documentation.
5478
5479 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
5480
5481         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
5482         printf.
5483
5484 2006-09-15  Jim Wilson  <wilson@specifix.com>
5485
5486         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
5487         Handle symbol offsets same as they are handled in ia64_expand_move
5488         and move_operand.
5489
5490 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
5491
5492         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
5493         Add forgotten parameter to the fprintf call.
5494
5495 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
5496
5497         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
5498
5499 2006-09-15  Uros Bizjak <uros@kss-loka.si>
5500
5501         * doc/contrib.texi: Add my entry.
5502
5503 2006-09-15  Nick Clifton  <nickc@redhat.com>
5504
5505         * doc/md.texi (Processor pipeline description): Fix typo in
5506         example of how to use the absence_set directive and reword the
5507         description to make it slightly easier to read.
5508
5509 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
5510
5511         * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
5512         * loop-doloop.c (doloop_optimize): Use it to limit costs of
5513         expanding the number of iterations.
5514         * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
5515
5516         * cfgrtl.c (emit_insn_at_entry): New function.
5517         * rtl.h (emit_insn_at_entry): Declare it.
5518         * integrate.c (emit_initial_value_sets): Use it.
5519
5520         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
5521
5522         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
5523         bad.
5524         (struct loop_work and related VEC declarations): Delete.
5525         (bfin_dump_loops): Print out new member bad.
5526         (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
5527         (bfin_scan_loop): Don't recurse.
5528         (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
5529         loops.  No longer need to update outer loops if the current one is
5530         found bad.  Move some validitiy checks to bfin_discover_loop.
5531         (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
5532         but changed not to check for nesting.  Also changed to use the new bad
5533         flag.
5534         (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
5535         time.  Use bitmap based test to discover loop nesting.
5536
5537 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
5538
5539         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
5540         one line.
5541
5542 2006-09-14  Richard Guenther  <rguenther@suse.de>
5543             Kazu Hirata  <kazu@codesourcery.com>
5544
5545         PR middle-end/28884.
5546         * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
5547         (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
5548         Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
5549         with TARGET_FUNCTION_VALUE.
5550
5551 2006-09-14  Anatoly Sokolov <aesok@post.ru>
5552
5553         PR target/26504
5554         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
5555
5556 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
5557
5558         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
5559         of a RETURN_EXPR
5560
5561 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
5562
5563         PR debug/28980
5564         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
5565         FUNCTION_DECL.
5566
5567 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
5568
5569         * basic_block.h (bb_has_eh_pred): Fix comment.
5570
5571 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
5572
5573         * flow.c (calculate_global_regs_live): Invalidate eh registers
5574         on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
5575         (propagate_block): Handle eh registers as if they were set at basic
5576         block start.
5577         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
5578         registers.
5579         * global.c (global_conflicts): Make eh registers to conflict with
5580         pseudos live at basic block begin.
5581         * basic_block.h (bb_has_eh_pred): New function.
5582
5583 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
5584
5585         PR rtl-optimization/28982
5586         * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
5587         index of a PRE_MODIFY or POST_MODIFY address.
5588         * reload1.c (inc_for_reload): Use find_replacement on the original
5589         base and index registers.
5590
5591 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
5592
5593         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
5594         for -Os. Update __m128 alignment requirement.
5595
5596 2006-09-13  Jan Hubicka  <jh@suse.cz>
5597
5598         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
5599
5600 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5601
5602         PR rtl-optimization/28243
5603         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
5604         the insn to which the note was originally attached.
5605
5606 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
5607             Roger Sayle  <roger@eyesopen.com>
5608
5609         * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
5610         outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
5611         on platforms that don't use dwarf for debug info.
5612
5613 2006-09-12  Jason Merrill  <jason@redhat.com>
5614
5615         PR middle-end/28493
5616         * builtins.c (expand_builtin_setjmp_receiver): Clobber
5617         hard_frame_pointer_rtx after using it to update the frame pointer.
5618
5619 2006-09-12  Roger Sayle  <roger@eyesopen.com>
5620
5621         * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
5622         (TARGET_ASM_CLOSE_PAREN): Likewise.
5623         * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
5624         (TARGET_ASM_CLOSE_PAREN): Likewise.
5625
5626 2006-09-12  Roger Sayle  <roger@eyesopen.com>
5627
5628         PR target/22223
5629         * config/alpha/alpha.c (alpha_start_function): Don't emit stack
5630         frame information for frames larger than 512 Kbytes on Tru64 when
5631         using the native assembler.
5632
5633 2006-09-12  Roger Sayle  <roger@eyesopen.com>
5634
5635         PR middle-end/4520
5636         PR bootstrap/28784
5637         * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
5638         and symbols.  Instead use the implementation from cse.c's hash_rtx.
5639
5640 2006-09-12  Jan Hubicka  <jh@suse.cz>
5641
5642         PR rtl-optimization/28071
5643         * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
5644         (vect_transform_loop): Likewise.
5645         * tree-vectorizer.c (new_loop_vec_info): Likewise.
5646         (new_loop_vec_info): Likewise.
5647         (destroy_loop_vec_info): Likewise.
5648         * tree-dfa.c (create_var_ann): Use GCC_CNEW.
5649         (create_stmt_ann): Likewise.
5650         (create_tree_ann): Rename to ...
5651         (create_tree_common_ann): ... this one; allocate only the common part
5652         of annotations.
5653         * tree-vn.c (set_value_handle): Use get_tree_common_ann.
5654         (get_value_handle): Likewise.
5655         * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
5656         get_tree_common_ann.
5657         * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
5658         (vinfo_for_stmt): Use stmt annotations.
5659         * tree-flow.h (tree_ann_common_t): New type.
5660         (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
5661         (tree_ann, get_tree_ann, create_tree_ann): New.
5662         * tree-flow-inline.h (get_function_ann): Do more type checking.
5663         (stmt_ann): Likewise.
5664         (tree_ann): Rename to ...
5665         (tree_common_ann): ... this one; return ony common_ann
5666         (get_tree_ann): Rename to ...
5667         (tree_common_ann): This one; return only common_ann.
5668         * tree-vect-patterns.c (vect_pattern_recog_1): Update call
5669         of set_stmt_info.
5670
5671 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
5672
5673         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
5674         with_cpu by default.
5675
5676         * dwarf2out.c (dwarf_file_data): New.
5677         (enum dw_val_class): Add dw_val_class_file.
5678         (struct dw_val_struct): Add val_file.
5679         (file_table): Change to a hash table.
5680         (file_table_emitted): Delete.
5681         (file_table_last_lookup_index): Delete.
5682         (emitcount): Delete.
5683         (last_emitted_file): New.
5684         (lookup_filename): Change prototype to return a struct dwarf_file_data.
5685         (init_file_table): Delete.
5686         (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
5687         (AT_addr): Add comment.
5688         (add_AT_file): New.
5689         (AT_file): New.
5690         (get_AT_file): New.
5691         (print_die): Handle dw_val_class_file.
5692         (print_dwarf_line_table): Update for new file table structure.
5693         (attr_checksum): Do checksum a filename.
5694         (same_dw_val_p, same_attr_p): Do compare a filename.
5695         (size_of_die): Handle dw_val_class_file.
5696         (value_format): Likewise.
5697         (output_die): Likewise.  Also, call maybe_emit_file here.
5698         (struct file_info): Constify filenames.  Make file_idx a pointer
5699         to a struct dwarf_file_data.
5700         (struct dir_info): Constify directory names.  Remove 'used' field.
5701         (struct file_name_acquire_data): New.
5702         (file_name_acquire): New.
5703         (output_file_names): Modify to handle new file data structures.
5704         (add_src_coords_attributes): Use add_AT_file.
5705         (add_call_src_coords_attributes): Likewise.
5706         (dwarf2out_imported_module_or_decl): Likewise.
5707         (gen_subprogram_die): Modify for new file data structures.
5708         (gen_variable_die): Likewise.
5709         (file_table_eq): New.
5710         (file_table_hash): New.
5711         (file_table_last_lookup): New.
5712         (lookup_filename): Rewrite to handle new file data structures.
5713         (maybe_emit_file): Rewrite to handle new file data structures.
5714         (dwarf2out_source_line): Always call lookup_filename and
5715         maybe_emit_file.
5716         (dwarf2out_init): Create file_table here.
5717         (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
5718         (file_table_relative_p): New.
5719         (dwarf2out_finish): Change detection of relative filenames
5720         to work with new file data structures.  Move output_line_info call
5721         after debug_info output.
5722
5723 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
5724
5725         PR target/13685
5726         PR target/27537
5727         PR target/28621
5728         * config/i386/i386.c (override_options): Always default to 16
5729         byte stack boundary.
5730
5731 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
5732
5733         PR target/28672
5734         * var-tracking.c (dump_dataflow_set): Start dumping at
5735         register zero.
5736         (clobber_variable_part): Kill only the variable part in
5737         registers holding it, leaving other variables alone.
5738
5739 2006-09-11  Josh Triplett  <josh@freedesktop.org>
5740
5741         * doc/extend.texi (Other Builtins): Actually use the macro
5742         argument in the documentation example for
5743         __builtin_types_compatible_p.
5744
5745 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5746
5747         PR rtl-optimization/28726
5748         * sched-deps.c (sched_analyze_reg): New function extracted from...
5749         (sched_analyze_1): ...here.  Call it to analyze references to
5750         registers.  Treat again writes to a stack register as writing to the
5751         register.
5752         (sched_analyze_2): ...and here.  Call it to analyze references to
5753         registers.  Treat again reads of a stack register as reading the
5754         register.
5755
5756 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
5757             David Edelsohn  <edelsohn@gnu.org>
5758
5759         PR target/27287
5760         * config/rs6000/spe.md (frob_df_di): Remove %H.
5761         (frob_di_df): Remove %H.  Change evmergelo to mr.
5762         (frob_di_df_2): Remove %H.  Change evldd to two loads.
5763
5764 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
5765
5766         * doc/cpp.texi: Fix names of charset options.
5767
5768 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
5769
5770         PR target/29009
5771         * config/i386/i386.c (override_options): Use 128-bit
5772         stack boundary always for 64bits.
5773
5774 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5775
5776         PR rtl-optimization/28636
5777         * combine.c (force_to_mode): Test for side-effects before
5778         substituting by zero.
5779         (simplify_shift_const): Likewise for zero or other constants.
5780
5781 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
5782
5783         PR middle-end/26983
5784         * builtins.c (expand_builtin_setjmp): Force next_lab to be
5785         preserved.
5786
5787 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
5788
5789         PR target/29006
5790         * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
5791         * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
5792         returned by mode_for_size, rather than the mode of src itself,
5793         to choose between 32-bit and 64-bit patterns.
5794         (mips_mem_fits_mode_p): New function.
5795         * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
5796         that the size of the source matches the size of the destination.
5797         (mov_<store>l, mov_<store>r): Likewise.
5798
5799 2006-09-10  Eric Christopher  <echristo@apple.com>
5800
5801         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
5802         for literal16.
5803
5804 2006-09-09  Eric Christopher  <echristo@apple.com>
5805
5806         PR target/28995
5807         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
5808         for literal16.
5809
5810 2006-09-09  Roger Sayle  <roger@eyesopen.com>
5811             Nicolas Setton <setton@adacore.com>
5812
5813         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
5814
5815 2006-09-10  Andreas Schwab  <schwab@suse.de>
5816
5817         * config/m68k/m68k.md (bungt_rev): New pattern.
5818
5819 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
5820             Dale Johannesen  <dalej@apple.com>
5821
5822         PR target/26778
5823         * regclass.c (struct reg_pref): Update documentation.
5824         (regclass): Set prefclass to NO_REGS if memory is the best option.
5825         (record_reg_classes): Cope with a prefclass set to NO_REGS.
5826
5827 2006-09-08  Eric Christopher  <echristo@apple.com>
5828
5829         * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
5830         * config/t-slibgcc-darwin: Support x86_64 multilib.
5831         * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
5832         Return 1 for x86_64-darwin.
5833         * config/i386/t-darwin: Add m64 multilib.
5834         (LIB2_SIDITI_CONV_FUNCS): Use.
5835         (LIB2FUNCS_EXTRA): Ditto.
5836         * config/i386/darwin.h: Support x86_64.
5837         * config/i386/i386.c (override_options): Turn on flag_pic
5838         for x86_64-darwin. Disable flag_omit_pointer.
5839         (get_pc_thunk_name): Assert !TARGET_64BIT.
5840         (legitimate_address_p): Disable machopic addressing for
5841         x86_64.
5842         (legitimize_pic_address): Ditto.
5843         (ix86_expand_move): Ditto.
5844         (ix86_expand_call): Ditto.
5845         (machopic_output_stub): Ditto.
5846         * config/darwin.c (machopic_select_section): Support literal16.
5847         (machopic_select_rtx_section): Ditto.
5848         * config/darwin-sections.def: Ditto.
5849         * config/darwin-64.c: New.
5850
5851 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
5852
5853         PR c/28504
5854         * c-tree.h (struct c_arg_info): Add pending_sizes.
5855         * c-parser.c (c_parser_parms_declarator,
5856         c_parser_parms_list_declarator): Initialize pending_sizes.
5857         * c-decl.c (get_parm_info): Initialize pending_sizes.
5858         (get_parm_info): Set pending_sizes.
5859         (grokdeclarator): Call put_pending_sizes for parameters for
5860         function definition only.
5861
5862 2006-09-07  Jason Merrill  <jason@redhat.com>
5863
5864         PR middle-end/27724
5865         * varasm.c (output_constant): Only strip actual no-op conversions.
5866
5867         PR target/13685
5868         * config/i386/i386.c (override_options): Use 128-bit
5869         stack boundary if -msse.
5870
5871 2006-09-07  Eric Christopher  <echristo@apple.com>
5872
5873         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
5874         comment.
5875         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
5876         Redefine.
5877
5878 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
5879
5880         * dwarf2out.c: Remove strange characters from comment above
5881         dwarf2out_frame_debug_expr.
5882
5883 2006-09-07  Eric Christopher  <echristo@apple.com>
5884
5885         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
5886         * config/darwin.h: ... to here.
5887
5888 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
5889
5890         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
5891
5892         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
5893         (TARGET_PARTIAL_FLAG_REG_STALL): New.
5894
5895         * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
5896         TARGET_PARTIAL_FLAG_REG_STALL.
5897         (*ashldi3_cconly_rex64): Likewise.
5898         (*ashlsi3_cmp): Likewise.
5899         (*ashlsi3_cconly): Likewise.
5900         (*ashlsi3_cmp_zext): Likewise.
5901         (*ashlhi3_cmp): Likewise.
5902         (*ashlhi3_cconly): Likewise.
5903         (*ashlqi3_cmp): Likewise.
5904         (*ashlqi3_cconly): Likewise.
5905         (*ashrdi3_cmp_rex64): Likewise.
5906         (*ashrdi3_cconly_rex64): Likewise.
5907         (*ashrsi3_cmp): Likewise.
5908         (*ashrsi3_cconly): Likewise.
5909         (*ashrsi3_cmp_zext): Likewise.
5910         (*ashrhi3_cmp): Likewise.
5911         (*ashrhi3_cconly): Likewise.
5912         (*ashrqi3_cmp): Likewise.
5913         (*ashrqi3_cconly): Likewise.
5914         (*lshrdi3_cmp_rex64): Likewise.
5915         (*lshrdi3_cconly_rex64): Likewise.
5916         (*lshrsi3_cmp): Likewise.
5917         (*lshrsi3_cconly): Likewise.
5918         (*lshrsi3_cmp_zext): Likewise.
5919         (*lshrhi3_cmp): Likewise.
5920         (*lshrhi3_cconly): Likewise.
5921         (*lshrqi2_cmp): Likewise.
5922         (*lshrqi2_cconly): Likewise.
5923
5924 2006-09-07 Uros Bizjak <uros@kss-loka.si>
5925
5926         PR target/28946
5927         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
5928         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
5929         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
5930         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
5931         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
5932         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
5933         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
5934         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
5935         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
5936         implement only CC setting effects of shift instructions.
5937
5938 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
5939
5940         * doc/contrib.texi: Add myself.
5941
5942 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
5943
5944         PR middle-end/28862
5945         * stor-layout.c (relayout_decl): Don't zero the alignment if it
5946         was set by the user.
5947
5948 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
5949
5950         PR target/27117
5951         * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
5952         (divsi_inv_m1): Use them.
5953         (UNSPEC_DIV_INV_TABLE): New constant.
5954
5955 2006-09-06  James E Wilson  <wilson@specifix.com>
5956
5957         PR rtl-opt/27883
5958         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
5959         then call count_or_remove_death_notes.
5960
5961 2006-09-06  Jason Merrill  <jason@redhat.com>
5962
5963         PR c++/27371
5964         * tree-inline.c (copy_result_decl_to_var): New fn.
5965         (declare_return_variable): Use it.  Call declare_inline_vars here.
5966         (expand_call_inline): Not here.
5967
5968 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
5969
5970         * doc/contrib.texi: Update my entry.
5971
5972 2006-09-06  Nick Clifton  <nickc@redhat.com>
5973
5974         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
5975
5976 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
5977
5978         PR tree-opt/28937
5979         * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
5980         (canonicalize_induction_variables): Likewise.
5981         (tree_unroll_loops_completely): Likewise.
5982         (tree_ssa_prefetch_arrays): Likewise.
5983         (remove_empty_loops): Likewise.
5984         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
5985         TODO_cleanup_cfg instead of directly calling
5986         cleanup_tree_cfg_loop.
5987         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
5988         Likewise.
5989         (tree_unroll_loops_completely): Likewise.
5990         (remove_empty_loops): Likewise.
5991         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
5992         * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
5993         of tree_ssa_unswitch_loops.
5994         (tree_ssa_loop_ivcanon): Use the return value of
5995         canonicalize_induction_variables.
5996         (tree_ssa_empty_loop): Use the return value of
5997         remove_empty_loops.
5998         (tree_complete_unroll): Use the return value of
5999         tree_unroll_loops_completely.
6000         (tree_ssa_loop_prefetch): Use the return value of
6001         tree_ssa_prefetch_arrays.
6002         * passes.c (execute_todo): Before Cleanup CFG, set
6003         updating_used_alone and after cleanup CFG, call
6004         recalculate_used_alone.
6005
6006 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
6007
6008         PR tree-opt/28952
6009         * tree-vect-transform.c (vectorizable_condition): Move the check
6010         for the type after the check for simple condition.
6011
6012 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
6013             Kaz Kojima  <kkojima@gcc.gnu.org>
6014
6015         PR target/28764
6016         * mode-switching.c (optimize_mode_switching): Make the destination
6017         block of an abnormal edge have no anticipatable mode.  Don't
6018         insert mode switching code at the end of the source block of
6019         an abnormal edge.
6020
6021 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
6022
6023         PR rtl-optimization/26847
6024         * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
6025         (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
6026         (simplify_plus_minus): Count n_constants while filling ops.  Replace
6027         qsort with insertion sort.  Before going through the array to simplify
6028         pairs, sort it.  Delay early exit until after the first sort, exiting
6029         only if no swaps occurred.  Simplify pairs in reversed order, without
6030         special-casing the first iteration.  Pack ops after simplifying pairs.
6031
6032 2006-09-05  Anatoly Sokolov <aesok@post.ru>
6033
6034         * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
6035         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
6036         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6037         (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
6038
6039 2006-09-05  Richard Guenther  <rguenther@suse.de>
6040
6041         PR tree-optimization/28900
6042         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
6043         compound conditional before creating COND_EXPR condition.
6044
6045 2006-09-05  Richard Guenther  <rguenther@suse.de>
6046
6047         PR tree-optimization/28905
6048         * tree-vrp.c (fix_equivalence_set): Manually implement
6049         !value_ranges_intersect_p to also handle symbolic ranges.
6050
6051 2006-09-05  Richard Guenther  <rguenther@suse.de>
6052
6053         PR middle-end/28935
6054         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
6055         of a COND_EXPR.
6056
6057 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6058
6059         PR rtl-optimization/27616
6060         * cse.c (table_size): New static variable.
6061         (new_basic_block): Initialize it to 0.
6062         (remove_from_table): Decrement it.
6063         (insert): Increment it.
6064         (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
6065         (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
6066         fold_rtx_mem_1 if under the cap.
6067         (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
6068         the lookup of the equivalent expression and test for equality of the
6069         first operand of the equivalent expression before in turn looking up
6070         an equivalent constant for the second operand.
6071
6072 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
6073
6074         Revert this change:
6075         2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
6076         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
6077         pointer, instead of assuming it is possible to derive the
6078         correct args size from a call insn.
6079
6080 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
6081
6082         PR middle-end/27567
6083         * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
6084         (fold_builtin_mempcpy): Rename to...
6085         (fold_builtin_memory_op): ... this.  Optimize one element copy
6086         into an assignment.
6087         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
6088         functions.
6089         (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
6090         (expand_builtin_memcpy, expand_builtin_mempcpy,
6091         expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
6092         (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
6093         BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
6094         BUILT_IN_MEM{CPY,PCPY,MOVE}.
6095
6096 2006-09-01  DJ Delorie  <dj@redhat.com>
6097
6098         * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
6099         (stzx_16): Likewise.
6100         ("stzx_24_<mode>"): Likewise.
6101         ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
6102         ("cmp<mode>_op"): New.
6103         (cmp<mode>): Change to expander; just save operands.
6104         (b<code>_op): New.
6105         (b<code>): Change to expander, emit compare here.
6106         (s<code>_op): Change to use split and expander.
6107         (s<code>_24_op): Likewise.
6108         (s<code>_<mode>): New.
6109         (s<code>_<mode>_24): New.
6110         (movqicc_<code>_<mode): New.
6111         (movhicc_<code>_<mode>): New.
6112         (s<code>): New.
6113         (s<code>_24): New.
6114         * config/m32c/m32c.c (compare_op0, compare_op1): New.
6115         (m32c_pend_compare): New.
6116         (m32c_unpend_compare): New.
6117         (m32c_expand_scc): New.
6118         (m32c_expand_movcc): Emit the compare also.
6119         * config/m32c/predicates.md (mra_nopp_operand): New.
6120
6121 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
6122         Richard Guenther  <rguenther@suse.de>
6123         Adam Nemet  <anemet@caviumnetworks.com>
6124
6125         PR middle-end/27226
6126         * builtins.c (get_pointer_alignment): Handle more forms
6127         of base addresses that can be used to derive more precise
6128         information about alignment.
6129
6130 2006-09-01  Jason Merrill  <jason@redhat.com>
6131
6132         PR c++/28899
6133         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
6134         want_value.
6135
6136         * gimplify.c (voidify_wrapper_expr): Handle null type.
6137
6138 2006-09-01  Josh Conner  <jconner@apple.com>
6139
6140         PR c++/25505
6141         * tree-nrv.c (dest_safe_for_nrv_p): New function.
6142         (execute_return_slot_opt): Use it.
6143
6144 2006-08-31  Josh Conner  <jconner@apple.com>
6145
6146         PR c++/25505
6147         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
6148         returning aggregates.
6149
6150 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
6151
6152         PR tree-optimization/28839
6153         * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
6154         blocks in that phi arguments appear.
6155
6156 2006-08-31  Roger Sayle  <roger@eyesopen.com>
6157
6158         PR other/22313
6159         * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
6160         NULL, otherwise use an advance_loc4 to adjust relative to the
6161         current label.
6162         (output_cfi) <DW_CFA_set_loc>: Update the current label.
6163         (dwarf2out_switch_text_section): Reset the current label to avoid
6164         using advance_loc4 over section boundaries.
6165
6166 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
6167
6168         PR target/24367
6169         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
6170         r12 + SYMBOLIC_CONST.
6171
6172 2006-08-30  Richard Guenther  <rguenther@suse.de>
6173
6174         * Makefile.in (see.o): Add $(EXPR_H) dependency.
6175
6176 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
6177
6178         PR rtl-optimization/27735
6179         * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
6180         Add new argument to keep track of whether an irreducible region
6181         was affected.  All callers changed.
6182         (fix_irreducible_loops): Removed.
6183         (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
6184         flags were invalidated.
6185
6186 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
6187
6188         * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
6189         instead of SF operands.
6190         (*fop_df_comm_sse): Likewise.
6191         (*fop_df_comm_i387): Likewise.
6192         (*fop_df_1_mixed): Likewise.
6193         (*fop_df_1_sse): Likewise.
6194
6195 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
6196             J"orn Rennecke  <joern.rennecke@st.com>
6197
6198         PR tree-optimization/17506
6199         * tree-ssa.c (warn_uninit): If warning about a location outside of
6200         the current function, note where the variable was declared.
6201
6202 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
6203
6204         PR tree-optimization/28411
6205         * double-int.c (double_int_div): Use double_int_divmod.
6206         (double_int_divmod, double_int_sdivmod, double_int_udivmod,
6207         double_int_mod, double_int_smod, double_int_umod): New functions.
6208         * double-int.h (double_int_divmod, double_int_sdivmod,
6209         double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
6210         Declare.
6211         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
6212         in double_int.
6213         (get_computation_aff, get_computation_cost_at): Handle double_int
6214         return type of constant_multiple_of.
6215
6216 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
6217
6218         PR middle-end/26632
6219         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
6220         an implicit conversion.
6221
6222 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
6223
6224         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
6225
6226 2006-08-27  Roger Sayle  <roger@eyesopen.com>
6227
6228         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
6229         x87 instructions.
6230
6231 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
6232
6233         * config/i386/crtfastmath.c: Fix a comment typo.
6234
6235 2006-08-26  Roger Sayle  <roger@eyesopen.com>
6236
6237         * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
6238         temporary visit flags on CASE_LABEL_EXPRs.
6239         * c-common.c (match_case_to_enum): Add function comment.  Avoid
6240         O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
6241         (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
6242         CASE_HIGH_SEEN for enumerated types.  If the switch expression is
6243         a constant, only warn if that constant value isn't handled.
6244
6245 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
6246
6247         PR c++/24009
6248         * input.h (restore_input_file_stack): Declare.
6249         (INPUT_FILE_STACK_BITS): Define.
6250         * toplev.c (fs_p, input_file_stack_history,
6251         input_file_stack_restored, restore_input_file_stack): New.
6252         (push_srcloc, pop_srcloc): Check for input_file_stack_tick
6253         overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
6254         (pop_srcloc): Don't free old state of stack.
6255
6256 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
6257
6258         PR target/27544
6259         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
6260         (PowerPC Type Attributes): New.
6261
6262 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
6263
6264         * config/xtensa/xtensa.c (function_arg_boundary): New.
6265         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
6266         STACK_BOUNDARY.
6267         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
6268         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
6269
6270 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
6271
6272         PR middle-end/28683
6273         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
6274         3 following insns.
6275
6276 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6277
6278         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
6279         (verify_local_live_at_start): Likewise.
6280
6281 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
6282
6283         PR c/27893
6284         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
6285         omp_add_variable): Treat sizes as variable whenever not
6286         INTEGER_CST.
6287
6288 2006-08-26  Richard Guenther  <rguenther@suse.de>
6289
6290         PR middle-end/28814
6291         * fold-const.c (fold_binary): Fold temporary to correct
6292         type before constructing new comparison.
6293
6294 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
6295
6296         PR c/28418
6297         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
6298         variable again if DECL_SEEN_IN_BIND_EXPR_P.
6299
6300 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
6301
6302         PR c/28299
6303         * c-decl.c (start_function): Don't try to process prototype
6304         information from old declaration that isn't a function.
6305
6306 2006-08-25  Jan Hubicka  <jh@suse.cz>
6307
6308         PR target/28621
6309         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
6310
6311 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
6312
6313         PR target/27075
6314         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
6315         for 8 byte objects.
6316
6317 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
6318
6319         PR tree-optimization/16876
6320         * c-typeck.c (c_convert_parm_for_inlining): Don't take early
6321         exit if PARM doesn't match VALUE.
6322
6323 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
6324
6325         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
6326         literal_prefix directive.
6327         (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
6328         * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
6329         * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
6330
6331 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
6332
6333         PR target/28753
6334         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
6335         predicate to general_operand.  Add 0->y and I->r alternatives.
6336
6337 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
6338
6339         * doc/tm.texi: Fix a typo.
6340         * predict.c: Fix comment typos.
6341
6342 2006-08-25  Nick Clifton  <nickc@redhat.com>
6343
6344         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
6345         assertions of "cpu" and "machine".
6346
6347 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
6348
6349         PR tree-opt/28807
6350         * tree-ssa-operands.c (access_can_touch_variable): Don't say
6351         the access through a base which has an alias set of 0 cannot
6352         touch the variable.
6353
6354 2006-08-24  Bill Wendling  <wendling@apple.com>
6355
6356         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
6357
6358 2006-08-24  Jan Hubicka  <jh@suse.cz>
6359
6360         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
6361
6362 2006-08-24  Jan Hubicka  <jh@suse.cz>
6363
6364         PR debug/26881
6365         * cgraph.c: Fix comments.
6366         (cgraph_varpool_mark_needed_node): Mark only variables not already
6367         output to file.
6368         * cgraphunit.c: Update comments; include gt-cgraphunit.h
6369         (cgraph_varpool_assembled_nodes_queue): New static variable.
6370         (cgraph_varpool_assemble_decl): Record output decls for debug out code.
6371         (cgraph_varpool_output_debug_info): New function.
6372         (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
6373         * Makefile.in: Add gt-cgraphunit.h
6374
6375 2006-08-24  Jan Hubicka  <jh@suse.cz>
6376
6377         * predict.c (probability_reliable_p): New predicate.
6378         (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
6379         (predict_loops): Do not predict loop exit with less than 2%
6380         probability.
6381         * basic-block.h (edge_probability_reliable_p,
6382         br_prob_note_reliable_p): Declare.
6383         * ia64.h (ia64_print_operand): Do not disable on-chip branch
6384         prediction when static predictor is not reliable.
6385         * rs6000.c (output_cbranch): Likewise.
6386
6387 2006-08-23  Stuart Hastings  <stuart@apple.com>
6388
6389         PR 28825
6390         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
6391         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
6392
6393 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
6394
6395         PR debug/28692
6396         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
6397         complex values, nor for generic vector values.
6398
6399 2006-08-22  Richard Guenther  <rguenther@suse.de>
6400
6401         PR middle-end/28776
6402         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
6403         parameter.  Convert arguments to arithmetic expression to the
6404         chrecs type.
6405         (analyze_scalar_evolution_1): Adjust caller.
6406
6407 2006-08-22  Jan Hubicka  <jh@suse.cz>
6408
6409         Patch by Paolo Bonzini
6410         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
6411         my previous patch.
6412
6413 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
6414
6415         PR tree-optimization/28003
6416         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
6417         before grouping aliases.
6418
6419 2006-08-22  Roger Sayle  <roger@eyesopen.com>
6420
6421         * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
6422         if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
6423
6424 2006-08-21  Jason Merrill  <jason@redhat.com>
6425
6426         PR c++/27115
6427         * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
6428         wrapper.  Loop to handle nested wrappers.
6429         (gimplify_bind_expr): Remove temp parameter.
6430         (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
6431         and STATEMENT_LIST on the rhs.
6432         (gimplify_statement_list): Voidify the STATEMENT_LIST.
6433         (gimplify_expr): Pass pre_p to gimplify_statement_list.
6434         (gimplify_target_expr): Remove special BIND_EXPR handling.
6435
6436 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
6437
6438         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
6439         #if !__SHMEDIA__ .
6440
6441 2006-08-21  Olivier Hainque  <hainque@adacore.com>
6442
6443         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
6444         Arrange for the temporary captures of components overlapping the lhs
6445         to happen before the lhs is possibly cleared.
6446
6447 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
6448
6449         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
6450         necessary places to pass the correct "number of registers" values
6451         to _Unwind_VRS_Pop.
6452
6453 2006-08-20  Jan Hubicka  <jh@suse.cz>
6454
6455         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
6456         (create_name_tags): Instead of quadratic checking use hashtable.
6457         * bitmap.h: Include hashtab.h.
6458         (bitmap_hash): Declare.
6459         * bitmap.c (bitmap_hash): New function.
6460
6461 2006-08-20  Jan Hubicka  <jh@suse.cz>
6462
6463         PR rtl-optimization/28071
6464         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
6465         twice.
6466         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
6467         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
6468         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
6469         cgraph_decide_inlining_incrementally): Update use of
6470         cgraph_check_inline_limits.
6471         * cgraph.c (edge_hash, edge_eq): New function.
6472         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
6473         cgraph_edge_remove_caller, cgraph_node_remove_callees,
6474         cgraph_remove_node): Maintain call site hash.
6475         * cgraph.h (struct cgraph_node): Add call_site_hash.
6476         (cgraph_set_call_stmt): New function.
6477
6478 2006-08-20  Jan Hubicka  <jh@suse.cz>
6479
6480         PR rtl-optimization/28071
6481         * reload1.c (reg_has_output_reload): Turn into regset.
6482         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
6483         choose_reload_regs, emit_reload_insns): Update to new
6484         reg_has_output_reload.
6485
6486 2006-08-20  Jan Hubicka  <jh@suse.cz>
6487
6488         PR middle-end/28779
6489         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
6490         function body sizes.
6491         * cgraphunit.c (cgraph_analyze_function): Don't do so.
6492
6493 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
6494
6495         PR target/28648 c:
6496         * tree.c (handle_dll_attribute): Return early if not a
6497         var or function decl.
6498
6499 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
6500
6501         PR target/27565
6502         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
6503         alignment of SPE vector types.
6504
6505 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
6506
6507         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
6508
6509 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
6510
6511         PR c/28744
6512         * cgraph.h (struct cgraph_node): Remove externally_visible
6513         bitfield.
6514         * cgraphunit.c (process_function_and_variable_attributes): Set
6515         local.externally_visible rather than externally_visible.
6516
6517         PR c/28744
6518         * c-common.c (handle_externally_visible_attribute): First look
6519         at TREE_CODE and only if it is function or var decl, check for
6520         non-public objects.  Don't warn for DECL_EXTERNAL.
6521         * cgraphunit.c (process_function_and_variable_attributes): Warn
6522         if externally_visible attribute is used on non-public object.
6523
6524 2006-08-17  Jan Hubicka  <jh@suse.cz>
6525
6526         PR tree-optimization/27865
6527         * reload1.c (forget_marked_reloads): New function.
6528         (forget_old_reloads_1): When data are passed, just mark the registers
6529         for later removal.
6530         (reload_as_needed): Use the new mechanizm.
6531
6532 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
6533
6534         PR target/28146
6535         * reload.h (reg_equiv_alt_mem_list): New declaration.
6536         * reload1.c (reg_equiv_alt_mem_list): New definition.
6537         (reload): Initialize it and release it.
6538         (delete_output_reload): Use it.
6539         * reload.c (push_reg_equiv_alt_mem): New function.
6540         (find_reloads_toplev): Call it.
6541         (find_reloads_address, find_reloads_address_1): Likewise.
6542         (find_reloads_subreg_address): Likewise.
6543
6544 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6545
6546         PR rtl-optimization/28489
6547         * sched-ebb.c (begin_schedule_ready): Create basic block
6548         at the right place.
6549         (advance_target_bb): Skip empty blocks.
6550         * haifa-sched.c (bb_note): Make global.
6551         * sched-int.h (bb_note): Add prototype.
6552
6553 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
6554
6555         PR tree-optimization/27865
6556         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
6557         for pointer types.
6558         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
6559         fold_used_pointer, pointer_used_p): New functions.
6560         (analyze_scalar_evolution_1): Use fold_used_pointer.
6561         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
6562         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
6563         for pointers.
6564
6565 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
6566
6567         PR c++/28573
6568         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
6569         or the INTEGER_CST.  Fail on a CALL_EXPR.
6570         (fold_offsetof): Pass new argument to fold_offsetof_1.
6571         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
6572         operand into an INDIRECT_REF.
6573         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
6574
6575 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
6576
6577         PR gcov/profile/26570
6578         * value-prof.c (static_values): Removed.
6579         (tree_find_values_to_profile): Do not set static_values.
6580         (find_values_to_profile): Do not free static_values.
6581         * profile.c (instrument_values): Do not free the values.
6582         (branch_prob): Free the values.
6583
6584 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
6585
6586         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
6587
6588 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
6589
6590         PR c/27697
6591         * c-typeck.c (build_component_ref): Combine qualifiers of
6592         structure or union and field.
6593
6594 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
6595
6596         PR rtl-optimization/28071
6597         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
6598         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
6599         * tree-into-ssa.c (struct dom_dfsnum): New.
6600         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
6601         functions.
6602         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
6603         compute_global_livein.
6604         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
6605         in phi nodes in the correct blocks.
6606
6607 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
6608
6609         PR tree-optimization/28364
6610         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
6611         correctly.
6612         (fold_affine_expr): New function.
6613         (may_eliminate_iv): Use fold_affine_expr.
6614
6615 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6616
6617         PR c/27489
6618         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
6619         Clean up.
6620
6621 2006-08-16  Mike Stump  <mrs@apple.com>
6622
6623         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
6624         * doc/cppopts.texi (-MD): Likewise.
6625
6626 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
6627
6628         PR c/28287
6629         * c-common.c (handle_weak_attribute): Ignore and warn if
6630         not a FUNCTION_ or VAR_DECL.
6631
6632 2006-07-15  Mike Stump  <mrs@apple.com>
6633
6634         PR c/28280
6635         * c-parser.c (c_parser_typeof_specifier): Don't use
6636         c_finish_expr_stmt, open code desired semantics instead.
6637
6638 2006-08-15  Nick Clifton  <nickc@redhat.com>
6639
6640         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
6641         fragment to tmake_file only if threads are enabled.
6642         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
6643         * config/i386/t-gthr-win32: New file. ... here.
6644
6645 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6646
6647         PR c/28649
6648         * c-parser.c (c_parser_compound_statement_nostart): Reset
6649         parser->error after each statement.
6650
6651 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
6652
6653         PR middle-end/28713
6654         * omp-low.c (lower_omp_parallel): Convert t to
6655         receiver_decl's type.
6656         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
6657         source before comparison.
6658
6659         PR middle-end/28724
6660         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
6661         to itype in assignment to oldival2.
6662
6663 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
6664
6665         PR c/27490
6666         PR c/27489
6667         * c-typeck.c (build_compound_expr): If the second expression
6668         is an error mark, then just return an error mark instead of
6669         creating a COMPOUND_EXPR.
6670
6671 2006-07-14  Mike Stump  <mrs@apple.com>
6672
6673         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
6674
6675 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
6676
6677         * c-decl.c, var-tracking.c: Fix comment typos.
6678
6679 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
6680
6681         PR rtl-optimization/28634
6682         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
6683         for floating-point modes unless flag_unsafe_math_optimizations.
6684
6685 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
6686             Andrew Pinski  <pinskia@physics.uc.edu>
6687
6688         PR c/27184
6689         * tree.c (build_array_type): Unify array types with
6690         unspecified index_type.
6691         * c-decl.c (grokdeclarator): Make sure we do not modify a
6692         unified incomplete array type.
6693         * c-typeck.c (store_init_value): Create distinct type before
6694         filling in the index type in an initializer from a compound
6695         literal.
6696
6697         * c-decl.c (grokdeclarator): Remove code where we copy the
6698         array type over.
6699
6700 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
6701
6702         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
6703         into account for TODO_dump_cgraph.
6704         (TODO_update_ssa_no_phi): Likewise.
6705         (TODO_update_ssa_full_phi): Likewise.
6706         (TODO_update_ssa_only_virtuals): Likewise.
6707         (TODO_remove_unused_locals): Likewise.
6708         (TODO_set_props): Likewise.
6709         (TODO_update_stmt_usage): Likewise.
6710
6711 2006-08-13  Dirk Mueller  <dmueller@suse.de>
6712
6713         * c-common.c (strict_aliasing_warning): Fix formatting.
6714
6715 2006-08-13  Matthias Klose  <doko@debian.org>
6716
6717         * doc/invoke.texi: Fix spelling errors.
6718
6719 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
6720
6721         PR rtl-optimization/23454
6722         * reorg.c (relax_delay_slots): Update comment.
6723
6724 2006-08-11  Richard Guenther  <rguenther@suse.de>
6725
6726         PR middle-end/28651
6727         * simplify-rtx.c (simplify_const_relational_operation):
6728         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
6729         codes.
6730
6731 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
6732
6733         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
6734         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
6735
6736 2006-08-10  Paul Brook  <paul@codesourcery.com>
6737
6738         * final.c (final_scan_insn): Clear current_insn_predicate before
6739         outputting inline asm.
6740
6741 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
6742
6743         PR tree-optimization/26197
6744         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
6745         get_ref_base_and_extent and overlap_subvar to add only relevant
6746         subvars as may-aliases.
6747         (add_may_alias_for_new_tag): New function, factored out of
6748         new_type_alias.
6749         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
6750         with additional argument.
6751         * tree-flow.h (new_type_alias): Takes additional argument.
6752
6753 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
6754
6755         * gcov.c (no_data_file): New flag.
6756         (read_count_file): Set it if data file not present.  Assume counts
6757         zero if not found.
6758         (output_lines): Don't name the data file, if there wasn't one.
6759
6760 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
6761
6762         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
6763         (rs6000_generate_compare): Tweak comments.
6764         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
6765
6766 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
6767
6768         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
6769         (var_debug_decl): New function.
6770         (var_reg_set): Follow debug decl link.  Add location even if
6771         reg is already known to hold some other variable.
6772         (var_mem_set): Follow debug decl link.
6773         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
6774         decl link.  Delete other known locations of the variable part
6775         if requested.
6776         (var_reg_delete, var_mem_delete): Delete other known locations
6777         of the variable part if requested.
6778         (same_variable_part_p): New function.
6779         (add_stores): Select MO_COPY when appropriate.
6780         (vt_initialize): Handle it.
6781         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
6782         known locations for MO_SET and MO_CLOBBER.
6783         (find_variable_location_part): New function.
6784         (set_variable_part, delete_variable_part): Use it.
6785         (clobber_variable_part): New function.
6786         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
6787         decl link.
6788
6789 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
6790
6791         PR tree-optimization/26969
6792         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
6793         with an empty list of PHIs.
6794
6795 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
6796
6797         PR target/27827
6798
6799         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
6800         instructions.
6801
6802 2006-08-06  Andreas Schwab  <schwab@suse.de>
6803
6804         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
6805         string.  Whitespace and comment fixup.
6806
6807 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6808
6809         PR c/28502
6810         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
6811         argument.
6812
6813         PR c/27721
6814         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
6815
6816         PR c/28136
6817         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
6818
6819 2006-08-04  Jan Hubicka  <jh@suse.cz>
6820
6821         PR target/26655
6822         PR target/28270
6823         * reload.c (push_reload): Patch out the mismatching instruction;
6824         return early.
6825         (find_reload): Bail out if the instruction was patched out.
6826
6827 2006-08-04  Jan Hubicka  <jh@suse.cz>
6828
6829         PR tree-optimization/24888
6830         * tree-inline.c (expand_call_inline): Do not re-record variables.
6831         (declare_inline_vars): Add variable to unexpanded_var_list.
6832
6833 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6834             Roger Sayle  <roger@eyesopen.com>
6835
6836         PR rtl-optimization/26244
6837         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
6838         inner_const are negative or greater than or equal to the bitsize of
6839         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
6840         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
6841         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
6842         CONST0_RTX (mode) when the new shift count is greater than or equal to
6843         to the bitsize of the object being shifted and XEXP (y, 0) has no side
6844         effects.
6845
6846 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
6847
6848         * tree-cfg.c: Fix a comment typo.
6849
6850 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
6851
6852         PR c++/28148
6853         * varasm.c (output_constant): Give the front end another chance to
6854         expand constants, after stripping NOPs.
6855
6856 2006-08-03  Jan Hubicka  <jh@suse.cz>
6857
6858         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
6859         implementation.
6860
6861 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
6862
6863         PR tree-optimization/27770
6864         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
6865         declaration removed (moved to tree-flow.h).
6866         (vect_can_force_dr_alignment_p): Likewise.
6867         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
6868         (moved from tree-vectorizer.h).
6869         (vect_can_force_dr_alignment_p): Likewise.
6870         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
6871         from outside the vectorizer - in particular from cgraph stage.
6872         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
6873         the alignment of global arrays when -fsection-anchors is enabled.
6874         * cgraphunit.c (cgraph_increase_alignment): New function.
6875         (cgraph_optimize): Call cgraph_increase_alignment.
6876
6877 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
6878
6879         PR target/27566
6880         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
6881         not reload a SPE symbol_ref into a lo_sum address.
6882
6883 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
6884
6885         PR debug/28063
6886         * dwarf2out.c (prune_unused_types_prune): Move call to
6887         prune_unused_types_update_strings to cover the parent DIE also.
6888
6889 2006-08-02  Jan Hubicka  <jh@suse.cz>
6890
6891         PR gcov/profile/28480
6892         * tree-cfg.c (change_bb_for_stmt): New function.
6893         (tree_merge_blocks, tree_split_blocks): Use it.
6894
6895 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6896
6897         PR c++/28250
6898         PR c++/28257
6899         PR c++/28259
6900         PR c++/28267
6901         * toplev.c (compile_file): Return early on errorcount or sorrycount.
6902         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
6903         (cgraph_optimize): Likewise.
6904
6905 2006-08-01  Stuart Hastings  <stuart@apple.com>
6906
6907         * rtl.h (UINTVAL) New.
6908         * config/rs6000/rs6000.c (SMALL_INT) Use it.
6909         * testsuite/gcc.dg/20060801-1.c: New.
6910
6911 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
6912
6913         PR debug/23336
6914         * c-typeck.c (build_external_type): Mark used enum types.
6915         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
6916         cfun also.
6917         (gen_subprogram_die): Whitespace fix.
6918
6919 2006-08-01  Jan Hubicka  <jh@suse.cz>
6920
6921         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
6922         bitmap when not needed.
6923         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
6924         bitmaps.
6925
6926 2006-08-01  Dirk Mueller  <dmueller@suse.de>
6927
6928         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
6929
6930 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6931
6932         * Makefile.in: Revert part of previous patch:
6933         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
6934         and REGS_H.
6935
6936 2006-07-30  Eric Christopher  <echristo@apple.com>
6937
6938         PR target/27543
6939         * doc/extend.texi (i386 Variable Attributes): Add anchor.
6940         (PowerPC Variable Attributes): New section.
6941
6942 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
6943
6944         PR target/28126 (partial fix)
6945         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
6946
6947 2006-07-28  Jan Hubicka  <jh@suse.cz>
6948
6949         PR rtl-optimization/28071
6950         * cfgrtl.c (rtl_delete_block): Free regsets.
6951         * flow.c (allocate_bb_life_data): Re-use regsets if available.
6952
6953 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6954
6955         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
6956         and variables used in dependencies.
6957
6958 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
6959
6960         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
6961         %fs for -mcmodel=kernel.
6962         (stack_tls_protect_test_di): Likewise.
6963
6964 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
6965
6966         * Makefile.in: Use mkinstalldirs.
6967
6968 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
6969
6970         PR driver/28437
6971         * opts-common.c (prune_options): Skip joined switches.
6972
6973 2006-07-27  Jan Hubicka  <jh@suse.cz>
6974
6975         PR rtl-optimization/28071
6976         * cselib.c (cselib_process_insn): Don't remove useless values too
6977         often for very large hashtables.
6978
6979 2006-07-27  Jan Hubicka  <jh@suse.cz>
6980
6981         PR rtl-optimization/28071
6982         * global.c (greg_obstack): New obstack.
6983         (allocate_bb_info): Use it.
6984         (free_bb_info): Likewise.
6985         (modify_reg_pav): Likewise.
6986
6987 2006-07-27  Roger Sayle  <roger@eyesopen.com>
6988
6989         * builtins.c (fold_fixed_mathfn): When long and long long are the
6990         same size, canonicalize llceil*, llfloor*, llround* and llrint*
6991         functions to their lceil*, lfloor*, lround* and lrint* forms.
6992
6993 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
6994
6995         PR gcc/28508
6996         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
6997         branch.
6998         (rev_branch_insn): Likewise.
6999
7000 2006-07-27  Jan Hubicka  <jh@suse.cz>
7001
7002         PR rtl-optimization/28071
7003         * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
7004         (reg_set_in_bb, max_reg_computed): New static variables.
7005         (regmove_optimize): Free the new array.
7006         (fixup_match_1): Update call of reg_is_remote_constant_p.
7007
7008 2006-07-26  Jan Hubicka  <jh@suse.cz>
7009
7010         PR tree-optimization/27882
7011         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
7012         and decl fields.
7013         * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
7014         next pointer
7015         (cgraph_analyze_compilation_unit): Likewise.
7016         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
7017         * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
7018         (cgraph_early_inlinine): Make order garbage collected.
7019         * Makefile.in (gt-ipa-inline): New garbagecollected file.
7020
7021 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
7022
7023         * dbxout.c (output_types_sort): Add a comment.
7024         (output_used_types): Free the VEC.
7025
7026 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
7027
7028         * function.c (reorder_fix_fragments): Delete.
7029         (reorder_blocks): Don't call it.
7030         (reorder_blocks_1): Put all subblocks under the origin block.
7031
7032 2006-07-26  Zdenek Dvorak <dvorakz@suse.cz>
7033
7034         PR rtl-optimization/27907
7035         * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
7036         FLOAT_TRUNCATE.
7037
7038 2006-07-25  Roger Sayle  <roger@eyesopen.com>
7039
7040         PR middle-end/28473
7041         * convert.c (convert_to_integer): When transforming (T)foo(x) into
7042         bar(x) check that bar's result type can represent all the values of T.
7043
7044 2006-07-25  Zdenek Dvorak <dvorakz@suse.cz>
7045
7046         * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
7047
7048 2006-07-25  Nick Clifton  <nickc@redhat.com>
7049
7050         * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
7051         size_lookup[] array.
7052         (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
7053         (ggc_pch_count_object): Likewise.
7054         (ggc_pch_alloc_object): Likewise.
7055         (ggc_pch_write_object): Likewise.
7056         (init_ggc): Do not attempt to initialize entries in the
7057         size_lookup[] array for objects whose size is greater than than
7058         the length of the array.
7059
7060 2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>
7061
7062         * dbxout.c (output_used_types_helper): Push queued types
7063         on a VEC.
7064         (output_types_sort): New.
7065         (output_used_types): Collect used types on a VEC and sort them
7066         before emission.
7067
7068 2006-07-24  Richard Guenther  <rguenther@suse.de>
7069
7070         PR middle-end/28463
7071         * cgraph.c (cgraph_remove_node): Do not check if dumps
7072         are enabled.
7073         * cgraphunit.c (cgraph_optimize): Likewise.
7074
7075 2006-07-24  Jan Hubicka  <jh@suse.cz>
7076
7077         PR rtl-optimization/28071
7078         * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
7079         * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
7080         splitting before first stmt.
7081
7082 2006-07-24  Jan Hubicka  <jh@suse.cz>
7083
7084         PR rtl-optimization/28071
7085         * ipa-inline.c (update_caller_keys): Remove edges that
7086         are no longer inline candidates.
7087
7088 2006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
7089
7090         PR debug/27473
7091         * dbxout.c (output_used_types_helper, output_used_types): New.
7092         (dbxout_symbol): Call output_used_types.
7093
7094 2006-07-23  Jan Hubicka  <jh@suse.cz>
7095
7096         PR c/25795
7097         PR c++/27369
7098         * cgraph.c (cgraph_varpool_nodes): Export.
7099         (decide_is_variable_needed): Ignored "used" attribute in
7100         unit-at-a-time mode.
7101         * cgraph.h (cgraph_varpool_nodes): Declare.
7102         * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
7103         unit-at-a-time mode.
7104
7105 2006-07-23  Roger Sayle  <roger@eyesopen.com>
7106
7107         PR target/28247
7108         * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
7109         mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
7110         the __gthrw form of thr_keycreate.
7111         (__gthread_key_delete): Silence the unused argument warning.
7112
7113 2006-07-23  Steven Bosscher  <steven@gcc.gnu.org>
7114
7115         PR debug/25468
7116         * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
7117         Cache the last found '\0' marker to avoid quadratic behavior.
7118
7119 2006-07-23  Jan Hubicka  <jh@suse.cz>
7120
7121         * i386.md (subsi_3_zext): Fix output template.
7122
7123 2006-07-21  Mike Stump  <mrs@apple.com>
7124
7125         * doc/invoke.texi (C++ Dialect Options): Note that
7126         -fvisibility-inlines-hidden doesn't affect explicitly
7127         instantiationed inline methods.
7128
7129 2006-07-20  Roger Sayle  <roger@eyesopen.com>
7130
7131         * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
7132         if the target assembler is GNU binutils' gas.
7133         * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
7134         whether to pass GNU gas or native as command line options.
7135
7136 2006-07-20  Jason Merrill  <jason@redhat.com>
7137
7138         * tree.c (remove_attribute): New fn.
7139         * tree.h: Declare it.
7140
7141 2006-07-20  Paul Brook  <paul@codesourcery.com>
7142
7143         PR 27363
7144         * cse.c (cse_insn): Add destination addresses to hash table. Check if
7145         they are invalidated by this instruction.
7146
7147 2006-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
7148
7149         PR target/28427
7150         * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
7151
7152 2006-07-20  Eric Christopher  <echristo@apple.com>
7153
7154         PR target/26877
7155         * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
7156
7157 2006-07-19  Eric Christopher  <echristo@apple.com>
7158
7159         * config/t-slibgcc-darwin (stmp-lipo): Remove.
7160         Rewrite dependencies for libgcc_s.1.dylib.
7161
7162 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
7163
7164         * except.c (duplicate_eh_regions_1): Clear next_peer.
7165
7166 2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
7167
7168         * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
7169         -mlongcall does not guarantee all calls will be long.
7170         * doc/extend.texi (long_call/short_call): Document that longcall
7171         does not guarantee a long call will be used.
7172         (longcall/shortcall): Likewise.
7173
7174 2006-07-18  Roger Sayle  <roger@eyesopen.com>
7175
7176         PR middle-end/28283
7177         * expmed.c (expand_shift): Additionally check that the shift_cost
7178         is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
7179         before implementing a LSHIFT_EXPR as a sequence of additions.
7180         * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
7181         middle-end that DImode shifts need to be synthesized by expand.
7182
7183 2006-07-18  Diego Novillo  <dnovillo@redhat.com>
7184
7185         PR 28410
7186         * tree-ssa-operands.c (access_can_touch_variable): Update
7187         comment.
7188         Return true if ALIAS is .GLOBAL_VAR.
7189
7190 2006-07-18  David Daney  <ddaney@avtrex.com>
7191
7192         * gcc.c (display_help): Fix typo in help text.
7193
7194 2006-07-18  Olivier Hainque  <hainque@adacore.com>
7195
7196         * tree.h (categorize_ctor_elements): Adjust prototype and add
7197         descriptive comment, both in accordance with the interface change
7198         described below.
7199         * varasm.c (constructor_static_from_elts_p): New function.
7200         Whether a constructor node is a valid static constant initializer
7201         if all its elements are.
7202         (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
7203         * output.h: Declare it.
7204         * expr.c (categorize_ctor_elements_1): Return whether the constructor
7205         is a valid constant initializer instead of computing the number of
7206         non-constant elements.  Use constructor_static_from_elts_p for this
7207         purpose.  Replace the head comment with an indication that this is a
7208         helper for categorize_ctor_elements.
7209         (categorize_ctor_elements): Same interface change as for the _1
7210         helper.  Former head comment from this helper moved here, adjusted to
7211         account for the interface changes.
7212         (mostly_zeros_p): Adjust call to categorize_ctor_elements.
7213         (all_zeros_p): Likewise.
7214         * gimplify.c (gimplify_init_constructor): Decide whether we can make
7215         static versions of the constructor from the categorize_ctor_elements
7216         return value instead of the formerly computed number of non-constant
7217         elements.
7218
7219 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
7220
7221         * configure: Regenerate.
7222         * Makefile.in (build_libsubdir): New configure substitution
7223         (build_libobjdir): New variable.
7224         (BUILD_LIBIBERTY): Use it.
7225
7226 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7227
7228         PR c/28286
7229         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
7230
7231 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
7232
7233         PR c/26993
7234         * c-common.c (handle_weakref_attribute): Ignore attribute in
7235         the same conditions the alias attribute is ignored.
7236
7237 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
7238
7239         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
7240         (dbxout_begin_prologue): Increment scope_labelno.
7241
7242 2006-07-17  Richard Henderson  <rth@redhat.com>
7243
7244         PR 27889
7245         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
7246         if needed.
7247
7248 2006-07-17  Roger Sayle  <roger@eyesopen.com>
7249             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7250
7251         * config/i386/gmon-sol2.c: Silence compilation warnings by partially
7252         synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
7253         blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
7254         functions such as sbrk, write, etc..  Add function prototypes.
7255         Convert function declarations from K&R to ISO C.  Cast pointers
7256         to "long" and "unsigned long" instead of "int" and "unsigned int".
7257         Convert tokens following #endif into comments.
7258
7259 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
7260
7261         * invoke.texi: Remove mention of f77; Reformat table for
7262         inline parameter options correctly; mention that -malign-double
7263         is default on x86-64 targets.
7264
7265 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
7266
7267         * tree-chrec.c (avoid_arithmetics_in_type_p): New.
7268         (convert_affine_scev, chrec_convert_aggressive): Use
7269         avoid_arithmetics_in_type_p.  Do not check for the subtypes
7270         separately.
7271
7272 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
7273
7274         PR middle-end/28403
7275         * optabs.c (expand_doubleword_shift): Wrap the call to
7276         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
7277
7278 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
7279
7280         PR middle-end/28402
7281         * optabs.c (expand_binop): Pass next_methods rather than methods
7282         to expand_doubleword_shift.
7283
7284 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
7285
7286         PR other/28251
7287         * tree.h (dump_addr): Declare.
7288         * print-tree.c (dump_addr): New function.
7289         (print_node_brief, print_node): Use it.
7290         * print-rtl.c (print_rtx): Likewise.
7291         * common.opt (-fdump-noaddr): New option.
7292         * doc/invoke.texi (-fdump-noaddr): Document.
7293         * loop-unroll.c (si_info_hash): Make hash independent of addresses.
7294         (ve_info_hash): Likewise.
7295
7296 2006-07-13  Andrew Haley  <aph@redhat.com>
7297
7298         PR tree-optimization/19505
7299         * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
7300         edge leaving this block, make sure that the destination of this
7301         block has only one predecessor.
7302
7303 2006-07-17  Richard Guenther  <rguenther@suse.de>
7304
7305         PR tree-optimization/28238
7306         * tree-inline.c (copy_bb): Check if we produced valid
7307         gimple copying and substituting a stmt.  If not, gimplify
7308         it.
7309
7310 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
7311
7312         * optabs.c (maybe_encapsulate_block): New function extracted from...
7313         (emit_libcall_block): ...here.  Invoke it on the block of insns to
7314         maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
7315         (emit_no_conflict_block): Likewise.
7316
7317 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
7318
7319         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
7320
7321 2006-07-15  Roger Sayle  <roger@eyesopen.com>
7322
7323         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
7324         a new NOP_EXPR case of the switch statement.
7325
7326 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
7327
7328         PR middle-end/28160
7329         * stor-layout.c (place_field): Take the bit field with
7330         an excessive size into account in the ms-bitfiled case.
7331
7332         PR middle-end/28161
7333         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
7334         the previous bit field.
7335
7336 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
7337
7338         PR target/27287
7339         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
7340
7341 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
7342
7343         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
7344         signal frames correctly even when the signal was installed with
7345         sa_restorer set.
7346
7347 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
7348
7349         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
7350         (dbxout_function_end): Use local label LFBB. Remove hook
7351         DBX_OUTPUT_NFUN.
7352         (dbxout_source_line): Use local label LFBB.
7353         (dbxout_block): Likewise.
7354         (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
7355         (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
7356         * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
7357         and DBX_OUTPUT_NFUN.
7358
7359 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
7360
7361         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
7362
7363 2006-07-13  Jan Hubicka  <jh@suse.cz>
7364
7365         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
7366         align_variable.
7367         * output.h (align_variable): Declare.
7368         * varasm.c (align_variable): Export.
7369         * value-prof.c (tree_value_profile_transformations): Recompute iterator
7370         when basic block changed.
7371
7372 2006-07-13  Nick Clifton  <nickc@redhat.com>
7373
7374         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
7375         walking the LOG_LINKS chain.
7376
7377 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
7378
7379         * doc/invoke.texi (C++ Dialect Options): Explain difference
7380         between -fvisibility-inlines-hidden and setting hidden
7381         visibility explicitly.
7382
7383 2006-07-12  Eric Christopher  <echristo@apple.com>
7384
7385         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
7386         (stmp-lipo): Depend on libgcc.a.
7387
7388 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
7389
7390         * tree.c: Fix a comment typo.
7391
7392 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
7393
7394         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
7395         dest.
7396         (umulhisi3_r): Likewise.
7397
7398 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
7399
7400         PR libstdc++/27878
7401         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
7402         x < 19, vs wchar_t support.
7403
7404 2006-07-12  Nick Clifton  <nickc@redhat.com>
7405
7406         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
7407         instead of -isa=sh4.
7408
7409 2006-07-12  Mike Stump  <mrs@apple.com>
7410
7411         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
7412
7413 2006-07-10  Eric Christopher  <echristo@apple.com>
7414
7415         * config/t-slibgcc-darwin: Rewrite.
7416
7417 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7418
7419         PR bootstrap/20437
7420         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
7421         dependencies.
7422
7423 2006-07-08  Matthias Klose  <doko@debian.org>
7424
7425         * doc/sourcebuild.texi: Fix typo.
7426
7427 2006-07-07  Mike Stump  <mrs@apple.com>
7428
7429         * toplev.c (process_options): Don't give -ffunction-sections may
7430         affect debugging warning for Mach-O.
7431
7432 2006-07-07  James E Wilson  <wilson@specifix.com>
7433
7434         * config/mips/mips.md (cpu): Add sb1a.
7435         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
7436         addition to sb1.  Adjust comments to clarify SB-1A differences from
7437         SB-1.
7438         (ir_sb1a_load): New.  Modify bypasses to use it.
7439         (ir_sb1a_simple_alu): Likewise.
7440         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
7441         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
7442         (mips_issue_rate): Add PROCESSOR_SB1A.
7443         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
7444         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
7445         (TARGET_SB1): Add PROCESSOR_SB1A check.
7446         (TUNE_SB1): Likewise.
7447
7448         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
7449         * config/mips/mips.c (mips_store_data_bypass_p): New.
7450         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
7451         store_data_bypass_p.
7452
7453 2006-07-08  Paul Brook  <paul@codesourcery.com>
7454
7455         PR target/27991
7456         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
7457
7458 2006-07-07   Richard Guenther  <rguenther@suse.de>
7459
7460         PR middle-end/28268
7461         * tree.h (build_one_cst): Declare.
7462         * tree.c (build_one_cst): New function.
7463         * tree-ssa-math-opts.c (get_constant_one): Remove.
7464         (insert_reciprocals): Use build_one_cst.
7465         * fold-const.c (fold_plusminus_mult): Likewise.
7466
7467 2006-07-07  Roger Sayle  <roger@eyesopen.com>
7468
7469         * pointer-set.c (pointer_set_destroy): Correct whitespace.
7470         * cfgloopanal.c (dump_graph): Likewise.
7471         * dojump.c (discard_pending_stack_adjust): Likewise.
7472         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
7473         Likewise.
7474         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
7475         * function.c (finalize_block_changes): Likewise.
7476         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
7477         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
7478         * rtl.c (dump_rtx_statistics): Likewise.
7479         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
7480         Likewise.
7481         * varray.c (dump_varray_statistics): Likewise.
7482         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
7483         decode_decimal64, encode_decimal128, decode_decimal128,
7484         decimal_real_to_decimal): Likewise.
7485
7486 2006-07-07  Richard Guenther  <rguenther@suse.de>
7487
7488         PR tree-optimization/28187
7489         * tree-vrp.c (vrp_operand_equal_p): New function.
7490         (vrp_bitmap_equal_p): Likewise.
7491         (update_value_range): Use them to compare old and new
7492         max and min values.
7493
7494 2006-07-06  Roger Sayle  <roger@eyesopen.com>
7495
7496         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
7497         a default case to switch statement to silence compiler warnings.
7498
7499 2006-07-06  Roger Sayle  <roger@eyesopen.com>
7500
7501         PR target/27968
7502         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
7503         the configured assembler supports the x87's ffreep mnemonic.
7504         * configure: Regenerate.
7505         * config.in: Regenerate.
7506
7507         * config/i386/i386.c (output_387_ffreep): New function.
7508         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
7509         (output_387_reg_move): Likewise.
7510
7511 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
7512
7513         Port to hosts whose 'sort' and 'tail' implementations
7514         treat operands with leading '+' as file names, as POSIX
7515         has required since 2001.  However, make sure the code still
7516         works on pre-POSIX hosts.
7517         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
7518         which says you should use "tail -c +N" rather than "tail +Nc".
7519         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
7520
7521 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
7522
7523         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
7524         argument name.
7525
7526 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
7527
7528         PR target/28150
7529         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
7530         PRE_{INC,DEC} of TFmode.
7531
7532 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
7533             Alan Modra  <amodra@bigpond.net.au>
7534
7535         PR target/28170
7536         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
7537         bounds. Simplify.
7538
7539 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7540
7541         PR target/28285
7542         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
7543         Remove duplicate gtu.
7544
7545 2006-07-05  Jason Merrill  <jason@redhat.com>
7546
7547         PR c++/13983
7548         PR c++/17519
7549         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
7550         * c-common.c (handle_packed_attribute): So don't copy it here.
7551         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
7552
7553 2006-07-05  Mike Stump  <mrs@apple.com>
7554
7555         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
7556
7557 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
7558
7559         PR target/26146
7560         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
7561
7562 2006-07-05  Richard Guenther  <rguenther@suse.de>
7563
7564         PR target/28158
7565         * config/i386/i386.md (*negdf2_1): Restrict pattern to
7566         TARGET_SSE2 targets if using SSE math.
7567         (*absdf2_1): Likewise.
7568
7569 2006-07-05  Richard Guenther  <rguenther@suse.de>
7570
7571         PR tree-optimization/28162
7572         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
7573         make sure to convert the operands to the correct type.
7574
7575 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
7576
7577         PR tree-optimization/28218
7578
7579         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
7580         to calculate and free the dominator information.
7581
7582 2006-07-04  Peter O'Gorman  <peter@pogma.com>
7583
7584         * mklibgcc.in: chmod 644 before ranlib during install.
7585
7586 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
7587             J"orn Rennecke <joern.rennecke@st.com>
7588
7589         * configure.ac (.eh_frame data check): Use diff -b.
7590
7591 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7592
7593         PR bootstrap/18058
7594         * Makefile.in (BUILD_RTL): Add build/vec.o.
7595         (build/gencondmd.o): Filter out -fkeep-inline-functions.
7596         (build/genextract): Delete.
7597         (build/genautomata): Likewise.
7598
7599 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
7600
7601         PR target/28207
7602         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
7603         128-bit IBM long doubles for ABI_V4.
7604
7605 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
7606
7607         * tree.c (range_in_array_bounds_p): New predicate.
7608         * tree.h (range_in_array_bounds_p): Declare it.
7609         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
7610         return a less conservative answer.
7611         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
7612         and flag 'is_group'.
7613         (IS_ELEMENT_FOR_GROUP): New macro.
7614         (FOR_EACH_ACTUAL_CHILD): Likewise.
7615         (next_child_for_group): New helper function.
7616         (can_completely_scalarize_p): Take into account groups.
7617         (sra_hash_tree): Handle RANGE_EXPR.
7618         (sra_elt_eq): Likewise.
7619         (lookup_element): Be prepared for handling groups.
7620         (is_valid_const_index): Delete.
7621         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
7622         instead of is_valid_const_index.
7623         <ARRAY_RANGE_REF>: New case.
7624         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
7625         is_valid_const_index.
7626         <ARRAY_RANGE_REF>: Do not unconditionally punt.
7627         (scan_dump): Dump info for groups too.
7628         (decide_instantiation_1): Likewise.
7629         (decide_block_copy): Assert that the element is not a group.
7630         Propagate decision to groups.
7631         (generate_one_element_ref): Handle RANGE_EXPR.
7632         (mark_no_warning): Iterate over actual childs.
7633         (generate_copy_inout): Likewise.
7634         (generate_element_copy): Likewise.
7635         (generate_element_zero): Likewise.
7636         (generate_element_init_1): Likewise.
7637         (dump_sra_elt_name): Handle RANGE_EXPR.
7638
7639 2006-07-03  Roger Sayle  <roger@eyesopen.com>
7640
7641         PR tree-optimization/26251
7642         * tree-ssa-threadupdate.c (redirection_block_p): New function.
7643         (thread_block): When optimizing for size refuse to thread jumps
7644         that would require duplication of blocks other than redirection
7645         blocks.
7646
7647 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
7648
7649         * configure.ac: Fix thinko in previous check-in.
7650         * configure: Regenerate.
7651
7652 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
7653
7654         PR other/27063
7655         * configure.ac (for lang...): Simplify nesting of conditionals.
7656         Test subdir_requires for non-enabled languages.  Move processing
7657         of lang_opt_files and lang_tree_fiels below that test.
7658         * configure: Regenerate.
7659         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
7660
7661 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
7662
7663         * doc/gcov.texi (Invoking Gcov): Add a missing word.
7664
7665 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
7666
7667         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
7668         comment typos.
7669
7670 2006-06-29  Jason Merrill  <jason@redhat.com>
7671
7672         PR c++/26905
7673         PR c++/26612
7674         PR c++/27000
7675         PR c++/26984
7676         PR c++/19134
7677         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
7678         * c-common.c (c_determine_visibility): Handle it here.
7679         * c-decl.c (finish_decl): Call c_determine_visibility for
7680         functions, too.
7681         * flags.h (enum symbol_visibility): Sort from most to least visibility.
7682         * tree.h: Likewise.
7683         * varasm.c (default_assemble_visibility): Likewise.
7684         * c-common.c (handle_visibility_attribute): Complain about trying
7685         to give visibility to an already defined class, or trying to change
7686         declared visibility. Always attach the attribute.
7687
7688         PR c++/26905
7689         PR c++/21675
7690         PR c++/17470
7691         * attribs.c (decl_attributes): Ignore type-in-place attributes
7692         once the type has been defined.
7693
7694 2006-06-29  Roger Sayle  <roger@eyesopen.com>
7695
7696         PR middle-end/27428
7697         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
7698         to indicate the cpplib has issued an error message for us.
7699
7700 2006-06-29  Asher Langton  <langton2@llnl.gov>
7701
7702         PR target/25765
7703         * config/i386/i386.c (ix86_output_function_epilogue): Don't
7704         insert a label at the end of an function under Mach-O.
7705
7706 2006-06-29  Eric Christopher  <echristo@apple.com>
7707             Evan Cheng  <evan.cheng@apple.com>
7708
7709         * predicates.md (vector_all_ones_operand): New.
7710         (nonimmediate_or_sse_const_operand): Ditto.
7711         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
7712         * config/i386/i386.c (standard_sse_constant_opcode): Define.
7713         (standard_sse_mode_p): Ditto.
7714         (standard_sse_constant_p): Add case for -1 vector.
7715         (ix86_expand_vector_move): Try to use.
7716         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
7717         Call standard_sse_constant_opcode.
7718         (*movv4sf_internal): Ditto.
7719         (*movv2df_internal): Ditto.
7720
7721 2006-06-29  Roger Sayle  <roger@eyesopen.com>
7722
7723         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
7724         of XEXP to extract the operands of a MATCH_CODE rtx.
7725
7726 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
7727
7728         * tree.c (tree_size): Do not waste tail padding in
7729         struct tree_string and make the size be the same as
7730         build_string will generate.
7731
7732 2006-06-28  Jason Merrill  <jason@redhat.com>
7733
7734         PR c++/27768
7735         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
7736         may_aliases already in the tag's annotations to the bitmap.
7737
7738 2006-06-28  Roger Sayle  <roger@eyesopen.com>
7739
7740         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
7741
7742 2006-06-28  Roger Sayle  <roger@eyesopen.com>
7743
7744         * genpreds.c (generate_switch_p): New function.
7745         (add_mode_tests): Push the new mode test down inside an AND expr
7746         if this allows the switch-suitable MATCH_CODE to be near the root.
7747         (write_match_code_switch): New function to write a MATCH_CODE as
7748         a switch statement.
7749         (write_predicate_stmts): New function to write a predicate RTX
7750         expression as a sequence of statements.
7751         (write_one_predicate_function): Use write_predicate_stmts.
7752         (write_tm_constrs_h): Likewise.
7753
7754 2006-06-26  Fred Fish  <fnf@specifix.com>
7755
7756         * config/mips/t-sb1: New file.
7757         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
7758         tmake_file list.
7759
7760 2006-06-26  DJ Delorie  <dj@redhat.com>
7761
7762         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
7763
7764 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
7765             Jayant Sonar  <jayants@kpitcummins.com>
7766             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
7767
7768         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
7769         (subsi3, subsi3_1, subsi3_2): New.
7770         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
7771         * config/m32c/mov.md (SI mov peephole): New.
7772         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
7773         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
7774
7775 2006-06-26  Olivier Hainque  <hainque@adacore.com>
7776
7777         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
7778         a CALL_EXPR target function declaration.
7779
7780 2006-06-26  Richard Guenther  <rguenther@suse.de>
7781
7782         * tree.c (build_string): Do not waste tail padding in
7783         struct tree_string.
7784
7785 2006-06-26  Richard Guenther  <rguenther@suse.de>
7786
7787         * ggc-page.c (init_ggc): Add missing element to size_lookup
7788         table.
7789
7790         Revert
7791         2006-06-23  Richard Guenther  <rguenther@suse.de>
7792
7793         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
7794         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
7795         alignment requests instead.  Add verification code.
7796         Add struct tree_function_decl and struct tree_binfo size to
7797         extra_order_size_table.  Add missing element to size_lookup
7798         table.
7799
7800 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
7801
7802         PR middle-end/28151
7803         * fold-const.c (const_binop): Be prepared for self returning zero.
7804         Simplify code handling complex values.
7805
7806 2006-06-24  Olivier Hainque  <hainque@adacore.com>
7807
7808         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
7809         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
7810         aggregate types.
7811
7812 2006-06-24  Olivier Hainque  <hainque@adacore.com>
7813
7814         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
7815         ARRAY_REF, so have the callback called for the low bound expression.
7816
7817 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
7818
7819         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
7820         * c-typeck.c (c_common_type): Disallow operations on decimal float
7821         types and other float types.
7822         * convert.c (convert_to_real): Don't ignore conversions involving
7823         decimal float types.
7824
7825 2006-06-23  Olivier Hainque  <hainque@adacore.com>
7826
7827         * tree.c (max_int_size_in_bytes): New function, inspired from
7828         code in function.c:assign_temp.
7829         * tree.h (max_int_size_in_bytes): Declare.
7830         * function.c (assign_temp): Use it.
7831         * gimplify.c (create_tmp_var): Relax the assertions on the type
7832         properties, not mandating constant size any more.
7833         (force_constant_size): New static function.
7834         (gimple_add_tmp_var): Use it, forcing variable size to a
7835         constant upper bound if it is not constant on entry.
7836
7837 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
7838
7839         PR target/27789
7840         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
7841         for initialization and setting of one_only flag to ...
7842         (i386_pe_encode_section_info): ...here.
7843         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
7844         Recheck that the symbol has not been defined.
7845
7846 2006-06-23  Richard Guenther  <rguenther@suse.de>
7847
7848         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
7849         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
7850         alignment requests instead.  Add verification code.
7851         Add struct tree_function_decl and struct tree_binfo size to
7852         extra_order_size_table.  Add missing element to size_lookup
7853         table.
7854
7855 2006-06-22  Roger Sayle  <roger@eyesopen.com>
7856             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7857
7858         PR middle-end/28131
7859         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
7860         call to lang_hooks.types.type_for_mode returned NULL_TREE.
7861
7862 2006-06-23  Ben Elliston  <bje@au.ibm.com>
7863
7864         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
7865         negate dn -- manipulate it directly.
7866
7867 2006-06-22  Roger Sayle  <roger@eyesopen.com>
7868             Steven Bosscher  <stevenb.gcc@gmail.com>
7869
7870         PR target/27531
7871         * reload1.c (gen_reload): Call mark_jump_label on the new insns
7872         generated by gen_move_insn to add REG_LABEL notes if necessary.
7873
7874 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
7875
7876         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
7877         (leaf_entry): Remove use of MIN_ESA.
7878
7879 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
7880
7881         PR rtl-optimization/28121
7882         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
7883         the entry edge.
7884
7885 2006-06-21  DJ Delorie  <dj@redhat.com>
7886
7887         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
7888         (TN-16C-A156A/E).
7889         (mulhisi3_r): Likewise.
7890
7891 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
7892
7893         PR middle-end/28034
7894         * coverage.c (coverage_counter_alloc): Leave the index type
7895         unspecified.
7896         (coverage_counter_alloc): Use null arguments for operands 2 and 3
7897         of the ARRAY_REF.
7898
7899 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
7900
7901         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
7902         section from the "Options for Code Generation Conventions".
7903
7904 2006-06-21  Richard Henderson  <rth@redhat.com>
7905
7906         PR target/26347
7907         PR target/27082
7908         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
7909         symbols.
7910         (global_symbolic_operand): Allow weak symbols, even if local_p.
7911
7912 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
7913
7914         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
7915         (find_interesting_uses_address): Punt if above function returns true.
7916
7917 2006-06-21  Richard Guenther  <rguenther@suse.de>
7918
7919         * configure: Regenerated.
7920
7921 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
7922
7923         * config/mips/mips.c (function_arg): Where one part of a
7924         complex argument is in registers and the other part in the stack,
7925         return a REG not a PARALLEL.
7926
7927 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
7928
7929         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
7930         when cross-compiling.  Do not substitute libstdcxx_incdir.
7931         * configure: Regenerated.
7932
7933 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
7934
7935         * varasm.c (mergeable_string_section): Check for embedded NULs and
7936         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
7937         rather than TREE_STRING_LENGTH bytes.
7938
7939 2006-06-21  Richard Guenther  <rguenther@suse.de>
7940
7941         * ggc-page.c (extra_order_size_table): Add var_ann_d,
7942         tree_ssa_name, bitmap_element and phi_node with 4 arguments
7943         sizes.
7944
7945 2006-06-21  Richrad Guenther  <rguenther@suse.de>
7946
7947         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
7948         Limit iteration over the dominators.
7949
7950 2006-06-20  Roger Sayle  <roger@eyesopen.com>
7951
7952         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
7953         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
7954
7955 2006-06-20  Richard Guenther  <rguenther@suse.de>
7956         Michael Matz  <matz@suse.de>
7957
7958         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
7959         function.
7960         * alloc-pool.c (free_alloc_pool_if_empty): New function.
7961         * et-forest.h (et_free_pools): Prototype new function.
7962         * et-forest.c (et_free_tree_force): Free parent occurrence.
7963         (et_free_pools): New function.
7964         * dominance.c (free_dominance_info): Free et-forest alloc
7965         pools.
7966
7967 2006-06-20  Roger Sayle  <roger@eyesopen.com>
7968
7969         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
7970         integer modes, attempt to directly construct an integer constant.
7971
7972         * fold-const.c (native_encode_vector): Determine the size of each
7973         element from the vector type instead of the first vector element.
7974
7975         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
7976         if all of its elements/components are constant.
7977         (build_constructor_from_list): Likewise.
7978
7979 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
7980
7981         PR tree-optimization/27331
7982         * tree-data-ref.c (free_data_ref): New function.
7983         (create_data_ref): Fail if the data reference has unknown access
7984         function.
7985         (free_data_refs): Use free_data_ref.
7986
7987 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
7988
7989         PR middle-end/28075
7990         * tree-inline.c (setup_one_parameter): Strip useless
7991         type conversion before adding it to the IR.
7992         (declare_return_variable): Likewise.
7993
7994 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
7995
7996         PR c/27149
7997         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
7998
7999 2006-06-19  Mike Stump  <mrs@apple.com>
8000
8001         * tree.c (variably_modified_type_p): VM arguments don't make the
8002         type a VM type.
8003
8004 2006-06-19  Richard Guenther  <rguenther@suse.de>
8005
8006         * tree-ssa-pre.c (try_combine_conversion): Strip useless
8007         type conversions after folding.
8008
8009 2006-06-19  Richard Guenther  <rguenther@suse.de>
8010
8011         * ggc-page.c (extra_order_size_tab): Add entries with
8012         size of struct function and basic_block.
8013         (size_lookup): Extend to cover sizes up to 511.
8014         (ggc_alloc_stat): Adjust user.
8015         (ggc_pch_count_object): Likewise.
8016         (ggc_pch_alloc_object): Likewise.
8017         (ggc_pch_write_object): Likewise.
8018
8019 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
8020
8021         * tree-ssa-loop-niter.c (implies_ge_p): New function.
8022         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
8023         correctly.
8024
8025 2006-06-19  Denis Chertykov  <denisc@overta.ru>
8026
8027         * config/avr/libgcc.S : Correct my wrong previous commit.
8028
8029 2006-06-19  Roger Sayle  <roger@eyesopen.com>
8030
8031         PR target/27861
8032         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
8033         have stripped a SUBREG from the shift count, so we may need to
8034         convert_to_mode back to the type's mode before calling make_tree.
8035         Use new_amount instead of amount to avoid expanding a tree twice.
8036
8037 2006-06-19  Richard Guenther  <rguenther@suse.de>
8038
8039         PR middle-end/28045
8040         * fold-const.c (operand_equal_p): Check if the argument types
8041         have the same precision before stripping NOPs.
8042
8043 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
8044
8045         Fix PR tree-optimization/27341
8046         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
8047         statement we get.
8048         * tree-complex.c (pass_lower_complex): Update SMT usage.
8049
8050 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
8051
8052         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
8053         Add a new alternative to the constraint strings. Add move of
8054         operand 1 to 3 to the splitter definition.
8055         ("doloop_si_long"): Second contraint alternative removed.
8056
8057 2006-06-08  Anatoly Sokolov <aesok@post.ru>
8058
8059         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
8060         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
8061         __AVR_HAVE_LPMX__.
8062         (AVR_HAVE_MOVW) Define.
8063         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
8064         (ASM_SPEC): Add avr25.
8065         (LINK_SPEC): Add avr25.
8066         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
8067         (base_arch_s): Add new member 'have_movw_lpmx'.
8068         (avr_arch_types): Init 'have_movw_lpmx'.
8069         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
8070         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
8071         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
8072         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
8073         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
8074         AVR_HAVE_MOVW.
8075         (avr_file_start): Do not output '.arh' derective.
8076         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
8077         (__do_copy_data): Use __AVR_HAVE_LPMX__.
8078         * config/avr/avr.md (mcu_enhanced): Delete.
8079         (mcu_have_movw): Define.
8080         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
8081         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
8082         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
8083         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
8084         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
8085         attiny861 and at86rf401 devices.
8086
8087 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
8088
8089         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
8090         of 4096.
8091
8092 2006-06-17  Karl Berry  <karl@gnu.org>
8093
8094         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
8095         doc/gccint.texi, doc/install.texi (@dircategory): Use
8096         "Software development" instead of "Programming", following
8097         the Free Software Directory.
8098
8099 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
8100
8101         * config/i386/i386.c (legitimate_tls_address)
8102         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
8103         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
8104         (*tls_dynamic_gnu2_combine_64): Likewise.
8105
8106 2006-06-16  Richard Guenther  <rguenther@suse.de>
8107
8108         PR middle-end/27116
8109         * fold-const.c (negate_expr_p): Do not introduce undefined
8110         overflow in negating INTEGER_CSTs.
8111         (fold_negate_expr): Rename from negate_expr.  Revert last
8112         change for folding BIT_NOT_EXPR.  Change semantics to
8113         return NULL_TREE for non-simplified negations.  Do not
8114         strip type conversions and unify type handling.
8115         (negate_expr): New function, wrap around fold_negate_expr
8116         but ensure building a tree always.  Strip type conversions
8117         here, fold to result type.
8118         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
8119
8120 2006-06-16  Roger Sayle  <roger@eyesopen.com>
8121
8122         PR middle-end/27802
8123         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
8124         that (would) return their results in stack registers.
8125
8126 2006-06-16  Michael Matz  <matz@suse.de>
8127         Richard Guenther  <rguenther@suse.de>
8128
8129         * fold-const.c (fold_truthop): Only return new tree node if
8130         we canonicalized something.
8131
8132 2006-06-16  Richard Guenther  <rguenther@suse.de>
8133
8134         * function.h (enum function_frequency): Move declaration
8135         out of struct function.
8136         (struct function): Move bool fields and the enum to the bitfield
8137         section.  Reorder elements to avoid padding.  Remove unused
8138         fields left over from the RTL inliner removal.
8139         * function.c (free_after_compilation): Do not zero removed fields.
8140         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
8141         (ipa-type-escape.o): Likewise.
8142
8143 2006-06-16  Richard Guenther  <rguenther@suse.de>
8144
8145         * cgraph.h (struct cgraph_local_info): Turn bool elements
8146         into a bitfield.
8147         (struct cgraph_node): Likewise.
8148         (struct cgraph_varpool_node): Likewise.
8149
8150 2006-06-15  Richard Guenther  <rguenther@suse.de>
8151
8152         * fold-const.c (fold_truth_not_expr): Rename from
8153         invert_truthvalue.  Give it fold_* semantics to avoid
8154         generating garbage.
8155         (invert_truthvalue): New function.  Wrapper around
8156         fold_truth_not_expr.
8157         (optimize_minmax_comparison): Avoid creating garbage.
8158         (fold_unary): Use fold_truth_not_expr for folding
8159         TRUTH_NOT_EXPR.
8160         (fold_ternary): Replace uses of invert_truthvalue with
8161         fold_truth_not_expr where applicable.
8162         * tree.h (fold_truth_not_expr): Prototype.
8163
8164 2006-06-16  Richard Guenther  <rguenther@suse.de>
8165
8166         PR tree-optimization/27781
8167         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
8168         * ipa-pure-const.c (target.h): Include.
8169         (analyze_function): Do not analyze functions that do not
8170         bind locally.
8171
8172 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
8173
8174         PR middle-end/27793
8175         * tree-dfa.c (referenced_vars_dup_list): Remove.
8176         (find_referenced_vars): Remove assert.
8177         (referenced_var_check_and_insert): Replace dup list with assert.
8178         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
8179         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
8180
8181 2006-06-15  Richard Guenther  <rguenther@suse.de>
8182
8183         * tree-ssa-structalias.c (alias_get_name): Avoid creating
8184         extra unused identifiers if not dumping.
8185         (create_variable_info_for): Likewise.
8186
8187 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
8188
8189         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
8190         (derive_constant_upper_bound): Derive more precise upper bound in
8191         common cases.  Return type changed to double_int.
8192         (record_estimate): Reflect the changed return type of
8193         derive_constant_upper_bound.
8194         * double-int.c (double_int_zext, double_int_sext): Fix.
8195
8196 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
8197
8198         * configure.ac (CFLAGS): Get them from the toplevel or from the
8199         configure invocation.
8200         * configure: Regenerate.
8201         * Makefile.in (CFLAGS): Substitute value provided by configure.
8202
8203 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
8204
8205         PR c++/26559
8206         * c-common.h (c_finish_omp_atomic): Adjust declaration.
8207         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
8208         rather than calling add_stmt on it.
8209         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
8210
8211 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
8212
8213         PR middle-end/27959
8214         * reload1.c (reload): Remove registers returned by update_eliminables
8215         from used_spill_regs.
8216
8217 2006-06-13  DJ Delorie  <dj@redhat.com>
8218
8219         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
8220
8221 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
8222
8223         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
8224         html__strip_dir, html__mkdir_p. Enhance install-html target.
8225         * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
8226         * configure: Regenerate.
8227
8228 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
8229
8230         * fold-const.c (fold_cond_expr_with_comparison): Check for
8231         Objective-C++ as language in deciding COND_EXPR transformation.
8232
8233 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
8234
8235         PR target/28014:
8236         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
8237         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
8238         * config/sh/lib1funcs.h (SL, SL1): Define.
8239         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
8240         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
8241         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
8242         (OBJS_Os_4_200): New variable.
8243         ($(T)libgcc-Os-4-200.a): Use it.
8244         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
8245         when dividing 1 and/or by 0.
8246
8247 2006-06-13  Roger Sayle  <roger@eyesopen.com>
8248
8249         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
8250         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
8251         * configure: Regenerate.
8252
8253 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
8254
8255         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
8256         for real instruction.
8257
8258 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
8259
8260         PR middle-end/26807
8261         * haifa-sched.c (check_cfg): Handle special case.
8262
8263 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
8264
8265         PR debug/26754
8266         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
8267         Add debug_info parameter.  Chain the vars to the BLOCK instead
8268         of the BIND_EXPR if debug info are requested for them.
8269         (pop_gimplify_context): Adjust for above change.
8270         (gimple_add_tmp_var): Likewise.
8271         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
8272         Add bool parameter.
8273         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
8274         (convert_local_reference): Likewise.
8275         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
8276         (finalize_nesting_tree_1): Request that debug info be emitted
8277         for debug_var_chain.
8278
8279 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
8280
8281         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
8282         for PR target/27863.
8283
8284 2006-06-13  Richard Guenther  <rguenther@suse.de>
8285
8286         PR middle-end/27536
8287         * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
8288
8289 2006-06-13  Richard Guenther  <rguenther@suse.de>
8290
8291         PR tree-optimization/27830
8292         * tree-inline.c (copy_body_r): For copying the operand
8293         of an ADDR_EXPR make sure to fold &* afterwards.
8294
8295 2006-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8296
8297         * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
8298         lvalues in the fb_none case with side-effects.
8299
8300 2006-06-12  Kazu Hirata  <kazu@codesourcery.com>
8301
8302         * tree-flow.h: Remove the prototype for
8303         compute_phi_arg_on_exit.
8304         * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
8305         protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
8306         Remove.
8307
8308 2006-06-12  Mark Shinwell  <shinwell@codesourcery.com>
8309
8310         * builtins.c (expand_builtin_return_addr): Only use
8311         frame_pointer_rtx when count == 0 and we are expanding
8312         __builtin_return_address.
8313
8314 2006-06-12  Fred Fish  <fnf@specifix.com>
8315
8316         * config/mips/mips.c (mips_file_start): Create special section
8317         ".gcc_compiled_longXX" for o64 ABI as well as EABI.
8318
8319 2006-06-11  Eric Christopher  <echristo@apple.com>
8320
8321         PR middle-end/27948
8322         * stor-layout.c (place_field): Remove check for
8323         remaining_in_alignment when aligning at the end of a run.
8324
8325 2006-06-11  Eric Christopher  <echristo@apple.com>
8326
8327         PR 27542
8328         * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
8329         pragma.
8330
8331 2006-06-11  Roger Sayle  <roger@eyesopen.com>
8332
8333         PR target/27858
8334         Revert incorrect fix for PR target/27158
8335         2006-05-08  Roger Sayle  <roger@eyesopen.com>
8336         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
8337         of a reg_equiv_constant if the result is a legitimate constant.
8338
8339 2006-06-11  Roger Sayle  <roger@eyesopen.com>
8340
8341         PR target/27158
8342         * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
8343         extract a CONST_VECTOR element and interpret it as an integer.
8344         (vspltis_constant): Use const_vector_elt_as_int instead of the
8345         macro CONST_VECTOR_ELT in order to handle FP vector modes.
8346         * config/rs6000/predicates.md (easy_vector_const): Consider
8347         floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
8348
8349 2006-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
8350
8351         PR middle-end/27942
8352         * stor-layout.c (update_alignment_for_field): Don't add extra
8353         alignment for packed non-bitfield fields in ms_bitfield_layout_p
8354         code.
8355
8356 2006-06-09  Ralf Corsepius  <ralf.corsepius@rtems.org>
8357
8358         * config/mips/t-rtems: Add EL/EB multilib variants.
8359
8360 2006-06-09  Mike Stump  <mrs@apple.com>
8361
8362         * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
8363
8364 2006-06-09  David Daney  <ddaney@avtrex.com>
8365
8366         * doc/install.texi: Add binutils version recommendation for mips-*-*.
8367
8368 2006-06-09  Andreas Krebbel  <krebbel1@de.ibm.com>
8369
8370         * reload.c (find_reloads): Unset force_reload for 'X' constraint.
8371
8372 2006-06-09  Richard Guenther  <rguenther@suse.de>
8373
8374         PR tree-optimization/26998
8375         * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
8376         of signed types, only TYPE_MIN_VALUE is special, but for both,
8377         minimum and maximum value.  Likewise VR_ANTI_RANGE is special
8378         in this case, as is -fwrapv.
8379
8380 2006-06-08  Mike Stump  <mrs@apple.com>
8381
8382         PR target/26427
8383         * config/darwin.c (darwin_asm_output_anchor): Disable
8384         -fsection-anchors on darwin for now.
8385         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
8386         * rs6000/rs6000.c (optimization_options): Likewise.
8387
8388 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8389
8390         PR target/27421
8391         * config/i386/i386.c (classify_argument): Skip fields with invalid
8392         types in unions.
8393
8394 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
8395
8396         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
8397         (cse_insn): Likewise for the stack_pointer_rtx.
8398
8399 2006-06-08  Roger Sayle  <roger@eyesopen.com>
8400
8401         * tree-ssa-dom.c (record_conditions): Only record "unordered"
8402         conditions from floating point comparisons.
8403
8404 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
8405
8406         PR middle-end/27733
8407         * expmed.c (struct alg_hash_entry): Fix type of field T
8408         to match synth_mult argument.
8409         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
8410
8411 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
8412
8413         PR target/27863
8414         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
8415         block boundaries.
8416
8417 2006-06-08  Richard Guenther  <rguenther@suse.de>
8418
8419         PR middle-end/27116
8420         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
8421         only, if overflow is defined and not trapping.
8422         (negate_expr): Likewise.
8423
8424 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
8425
8426         PR tree-optimization/27872
8427         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
8428         flag on the new exit edge of the unrolled loop.
8429
8430 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
8431
8432         PR rtl-optimization/26449
8433         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
8434
8435 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
8436
8437         PR middle-end/27793
8438         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
8439         referenced_variables with matching DECL_UID's.
8440         (find_referenced_vars): Make sure duplicate list is empty to start.
8441         (referenced_var_p): Remove.
8442         (referenced_var_check_and_insert): Renamed from referenced_var_insert.
8443         Check if var is in the list, and add if needed.  Update the duplicate
8444         list if a different var is in the list with the same DECL_UID.
8445         (add_referenced_var): Call routine to check and insert.
8446         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
8447         * tree-flow.h (referenced_vars_dup_list): External declaration.
8448
8449 2006-06-07  Fred Fish  <fnf@specifix.com>
8450
8451         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
8452         into single entry.
8453
8454 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
8455
8456         PR target/27390
8457         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
8458         the imaginary and real parts of a clobbered register.
8459         Emit insn to set the imaginary part.
8460
8461 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
8462
8463         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
8464         in lieu of unwind-dw2-fde.c.
8465
8466 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8467
8468         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
8469
8470 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
8471
8472         PR target/27842
8473         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
8474         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
8475         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
8476         V4SImode temporaries and operations instead.
8477
8478 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
8479
8480         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
8481         dp-bit.c.
8482
8483 2006-06-06  Mike Stump  <mrs@apple.com>
8484
8485         * Makefile.in: Rename to htmldir to build_htmldir to avoid
8486         installing during build.
8487
8488 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
8489
8490         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
8491         value to 0.
8492         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
8493         * config/ia64/ia64.c (params.h): New header.
8494         (ia64_optimization_options): New function to adjust parameters.
8495         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
8496         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
8497         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
8498
8499 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
8500
8501         * stor-layout.c (debug_rli): Fix a typo in a debug message.
8502
8503 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
8504
8505         PR target/27051
8506         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
8507
8508 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
8509             Victor Kaplansky  <victork@il.ibm.com>
8510
8511         PR tree-optimization/26360
8512         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
8513         stmts.
8514
8515 2006-06-04  Roger Sayle  <roger@eyesopen.com>
8516             Andrew Pinski  <pinskia@physics.uc.edu>
8517
8518         PR middle-end/27382
8519         * c-common.c (c_common_truthvalue_conversion): Explicitly check
8520         for LABEL_DECL before calling DECL_WEAK.
8521
8522         PR c/27150
8523         * c-typeck.c (build_binary_op): Likewise, explicitly check for
8524         LABEL_DECL and PARM_DECL.
8525
8526 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
8527
8528         PR c/25161
8529         PR c/27020
8530         * c-decl.c (grokdeclarator): Disallow variably modified types at
8531         file scope.  Avoid marking shared array type of constant size as
8532         VLA.
8533
8534 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8535
8536         PR c++/27601
8537         * c-common.c (fold_offsetof_1): Handle static members.
8538
8539 2006-06-04 Eric Christopher <echristo@apple.com>
8540
8541         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
8542         (debug_rli): Output value for remaining_in_alignment.
8543         (update_alignment_for_field): Unconditionalize
8544         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
8545         extra alignment code.
8546         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
8547         ms_bitfield_layout_p code. Rewrite handling of structure fields.
8548         * tree.h (record_layout_info_s): Remove prev_packed.
8549         * doc/extend.texi (ms_struct): Add documentation of format.
8550
8551 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
8552
8553         * tree.h: Declare folding_initializer.
8554         * builtins.c (fold_builtin_constant_p): Give definite answer
8555         if folding inside an initializer.
8556         * fold-const.c: Define folding_initializer.
8557         (START_FOLD_INIT): Save and then set folding_initializer.
8558         (END_FOLD_INIT): Restore folding_initializer.
8559
8560 2006-06-04  Richard Guenther  <rguenther@suse.de>
8561
8562         PR tree-optimization/27039
8563         * fold-const.c (fold_comparison): Handle pointer comparison
8564         again for all comparison codes.  Compare offsets in signed
8565         size type.
8566         (fold_binary): Move code from here.
8567
8568 2006-06-03  Roger Sayle  <roger@eyesopen.com>
8569
8570         PR target/26223
8571         * config/i386/i386.c (construct_container): Split static issued_error
8572         flag into issued_sse_arg_error, issued_sse_ret_error and
8573         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
8574         requires the use of x87 registers and the user explicitly
8575         specified the -mno-80387 command line option.
8576
8577 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
8578
8579         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
8580         HAVE_DECL_SIGALTSTACK.
8581         (MC_FLD): New.
8582         (segv_handler): Use MC_FLD.
8583         * configure.ac: Check for a sigaltstack declaration.
8584         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
8585         * configure: Regenerate.
8586         * config.in: Regenerate.
8587
8588 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
8589
8590         PR other/27850
8591         * Makefile.in (stmp-fixinc): Fix typo.
8592
8593 2006-06-02  Roger Sayle  <roger@eyesopen.com>
8594
8595         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
8596         are type correct.  Clean-up.
8597         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
8598         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
8599
8600 2006-06-01  DJ Delorie  <dj@redhat.com>
8601
8602         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
8603         shift, as we've disabled the "switch" insn that needs it.
8604
8605 2006-06-01  Per Bothner  <bothner@bothner.com>
8606
8607         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
8608         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
8609         * c-ppoutput.c (cb_define): Don't increment line 0.
8610
8611 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
8612
8613         * doc/invoke.texi: Add cpu_type power6.
8614         * config.gcc: Add cpu_type power6.
8615         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
8616         to power5+ with Altivec.
8617         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
8618         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
8619
8620 2006-05-30  Anatoly Sokolov <aesok@post.ru>
8621
8622         * config/avr/avr.h (SET_ASM_OP): Define.
8623
8624 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
8625
8626         * config/bfin/bfin.c: Fix comment typos.
8627
8628 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
8629
8630         PR 25453
8631         * doc/install.texi: Document --enable-bootstrap and
8632         --disable-bootstrap.
8633
8634 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
8635
8636         * doc/install.texi: Document that InfoZIP can replace jar.
8637
8638 2006-05-31  Roger Sayle  <roger@eyesopen.com>
8639
8640         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
8641         isn't available, directly generate the simpler x87 patterns without
8642         the (use (const_int 0)).
8643         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
8644         implementation isn't available.
8645         (*negdf2_1): Likewise.
8646         (*negxf2_1): XF mode negation is always done using the x87.
8647         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
8648
8649 2006-05-31  Roger Sayle  <roger@eyesopen.com>
8650
8651         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
8652         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
8653         cabs(z).
8654         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
8655
8656 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
8657
8658         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
8659         * config/bfin/bfin.c (basic-block.h): Include.
8660         (struct machine_function): New.
8661         (bfin_init_machine_status): New.
8662         (override_options): Initialize init_machine_status.
8663         (bfin_hardware_loop): New.
8664         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
8665         (DEF_VEC_P (loop_info)): New.
8666         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
8667         (struct loop_info): New.
8668         (loop_info): New typedef.
8669         (struct loop_work): New.
8670         (loop_work): New typedef.
8671         (DEF_VEC_O (loop_work)): New.
8672         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
8673         (bfin_dump_loops): New.
8674         (bfin_bb_in_loop): New.
8675         (bfin_scan_loop): New.
8676         (bfin_optimize_loop): New.
8677         (bfin_reorg_loops): New.
8678         (bfin_reorg): Use bfin_reorg_loops.
8679         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
8680         loop registers.
8681         (I_REGNO_P): Simplify.
8682         (DP_REGNO_P, DPREG_P): New macros.
8683         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
8684         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
8685         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
8686         Add LT_REGS, LC_REGS, LB_REGS.
8687         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
8688         'l' for LB_REGS.
8689         (REGNO_REG_CLASS): Deal with loop registers.
8690         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
8691         letters.
8692         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
8693         New constants for loop registers.
8694         (UNSPEC_LSETUP_END): New.
8695         (seq_insns): New define_attr. Set it for appropriate insns.
8696         (movsi_insn): Add alternatives for move from/to
8697         loop count registers.
8698         (doloop_end): New define_expand.
8699         (loop_end): New define_insn.
8700         (define_split for bad doloop_end): New.
8701         (lsetup_with_autoinit): New define_insn.
8702         (lsetup_without_autoinit): New define_insn.
8703         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
8704         * config/bfin/predicates.md (lc_register_operand): New.
8705         (lt_register_operand): New.
8706         (lb_register_operand): New.
8707         (nondp_register_operand): New.
8708         (nondp_reg_or_memory_operand): New.
8709         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
8710
8711 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
8712
8713         * config/bfin/bfin.c (bfin_delegitimize_address): New.
8714         (TARGET_DELEGITIMIZE_ADDRESS): Define.
8715
8716 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
8717
8718         * Makefile.in (CATALOGS): Add po/ prefix.
8719         * configure: Regenerated.
8720
8721 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
8722
8723         PR target/27829
8724         * arm.c (arm_print_operand case 'S'): Validate that the operand is
8725         a shift operand before calling shift_op.  Avoid redundant call of
8726         shift_op.
8727
8728 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
8729             DJ Delorie  <dj@redhat.com>
8730
8731         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
8732         we're inserting is a singlt-bit constant.
8733
8734 2006-05-30  Roger Sayle  <roger@eyesopen.com>
8735
8736         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
8737         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
8738
8739 2006-05-30  Roger Sayle  <roger@eyesopen.com>
8740
8741         PR tree-optimization/23452
8742         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
8743         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
8744         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
8745         complex values and with -ffast-math for FP complex values.
8746
8747 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
8748
8749         * c-common.h: Remove the prototype for yyparse.
8750         * rtl.h: Remove the prototype for init_loop.
8751
8752 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
8753
8754         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
8755         calling recog.
8756
8757 2006-05-30  Roger Sayle  <roger@eyesopen.com>
8758
8759         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
8760         and rotate cases.
8761         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
8762         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
8763
8764 2006-05-30  Dirk Mueller  <dmueller@suse.de>
8765
8766         PR c/27273
8767         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
8768         for CONSTANT_CLASS_P expresisons.
8769
8770 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8771
8772         PR c/27718
8773         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
8774
8775 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
8776
8777         PR tree-optimization/27779
8778         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
8779         initial_condition instead of CHREC_LEFT.
8780
8781 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
8782
8783         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
8784         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
8785         Make prototypes ISO C90.
8786
8787 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
8788             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
8789
8790         * see.c (see_analyze_one_def): Correct check.
8791         (see_get_extension_data): Check if extension is parallel.
8792         (see_get_extension_reg): Likewise.
8793
8794 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
8795
8796         PR target/27790
8797         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
8798         into register for (code == GTU).
8799
8800 2006-05-29  Roger Sayle  <roger@eyesopen.com>
8801
8802         PR tree-optimization/24964
8803         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
8804         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
8805         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
8806         abs(x)*abs(x) as x*x for scalar floating point modes.
8807
8808 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
8809
8810         PR middle-end/27745
8811         * lambda-code.c (perfect_nestify): Don't copy statements
8812         in the inner loop: move them to the inner loop header.
8813
8814 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
8815
8816         PR 26237
8817         * c-tree.texi: Document OpenMP directives and clauses.
8818
8819 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
8820
8821         * varasm.c (globalize_decl): Fix indentation.
8822
8823 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
8824
8825         PR 26242
8826         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
8827         pass_fre, pass_store_ccp, pass_copy_prop,
8828         pass_store_copy_prop, pass_merge_phi, pass_nrv,
8829         pass_return_slot, pass_object_size, pass_lim,
8830         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
8831         pass_loop_prefetch and pass_stdarg.
8832
8833 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
8834
8835         * config/bfin/bfin.opt (mfdpic): New option.
8836         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
8837         (EXTRA_MULTILIB_PARTS): Likewise.
8838         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
8839         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
8840         multilib.
8841         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
8842         (CRT_CALL_STATIC_FUNCTION): New.
8843         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
8844         -shared.
8845         (CRT_CALL_STATIC_FUNCTION): New.
8846         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
8847         FD-PIC moves.
8848         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
8849         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
8850         (initialize_trampoline): Changed to handle FD-PIC code generation.
8851         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
8852         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
8853         (override_options): Disallow -mid-shared-library -mfdpic combination.
8854         Can't do unaligned ops if FD-PIC.
8855         Turn off flag_pic if trying to generate non-id-shared-library
8856         non-fdpic code, since it's not supported.
8857         (bfin_assemble_integer): New function.
8858         (TARGET_ASM_INTEGER): Define.
8859         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
8860         __BFIN_FDPIC__.
8861         * config/bfin/crtn.s: Restore them.
8862         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
8863         if TARGET_FDPIC.
8864         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
8865         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
8866         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
8867         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
8868         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
8869         call-used.
8870         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
8871         FDPIC_REGS and FDPIC_FPTR_REGS.
8872         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
8873         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
8874         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
8875         (load_funcdescsi): New pattern.
8876         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
8877         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
8878         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
8879
8880 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
8881
8882         * gcse.c, rtlanal.c: Remove obsolete comments associated with
8883         loop.c.
8884
8885         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
8886
8887         * tree-flow.h: Remove the prototype for add_type_alias.
8888         * tree-ssa-alias.c (add_type_alias): Remove.
8889
8890 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
8891
8892         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
8893         config/fr30/fr30.md, config/i386/i386-interix.h,
8894         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
8895         config/sh/superh64.h, config/v850/v850.c, df-core.c,
8896         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
8897         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
8898         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
8899         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
8900         Follow spelling conventions.
8901         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
8902         Follow spelling conventions.
8903
8904 2006-05-27  Richard Guenther  <rguenther@suse.de>
8905
8906         PR middle-end/27773
8907         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
8908         to produce a constant of value 1 of generic type.
8909
8910 2006-05-27  Dirk Mueller  <dmueller@suse.de>
8911
8912         * cgraphunit.c (decide_is_function_needed): Fix wrong
8913         PR reference.
8914
8915 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
8916
8917         PR rtl-optimization/27661
8918         * reload.c (find_reloads): When reloading a VOIDmode constant
8919         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
8920         use Pmode as mode of the reload register.
8921
8922 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
8923
8924         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
8925         is enabled at -O and above.
8926
8927 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
8928
8929         PR target/27571
8930         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
8931         table data.
8932
8933 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
8934
8935         PR c++/20103
8936         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
8937         for anonymous variables explicitly declared by front ends.
8938
8939 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8940
8941         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
8942         (struct alias_info): Add new field ref_all_symbol_mem_tag.
8943         * tree-ssa-alias.c (compute_may_aliases): If the program contains
8944         ref-all pointers, run a finalization pass for them.
8945         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
8946         (finalize_ref_all_pointers): New function.
8947         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
8948         regular pointer type to a ref-all pointer type.
8949         (get_tmt_for): Return the special memory tag for ref-all pointers.
8950
8951 2006-05-25  Richard Guenther  <rguenther@suse.de>
8952
8953         PR middle-end/27743
8954         * fold-const.c (fold_binary): Do not look at the stripped
8955         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
8956
8957 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8958
8959         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
8960         for LT and GT if the computed range is effectively empty.
8961
8962 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8963
8964         PR target/27627
8965         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
8966         mips_quad_format formats instead of ieee_single_format,
8967         ieee_double_format and ieee_quad_format formats, respectively.
8968
8969 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
8970
8971         PR tree-optimization/27639
8972         PR tree-optimization/26719
8973         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
8974         call to scev_probably_wraps_p.
8975         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
8976         used_in_pointer_arithmetic_p, convert_step): Removed.
8977         (nowrap_type_p): New function.
8978         (scev_probably_wraps_p): Rewritten.
8979         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
8980         chrec_convert if chrec_convert_aggressive might have been used.
8981         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
8982         scev_direction): New functions.
8983         (chrec_convert): Changed to a wrapper over chrec_convert_1.
8984         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
8985         instead of convert_step.
8986         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
8987         (convert_step): Declaration removed.
8988         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
8989
8990 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
8991
8992         * df-core.c: Added to header comments.
8993         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
8994         df_ur_bb_info, df_urec_bb_info): Added comments.
8995         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
8996         urec, ri problems): Fixed header comments.
8997         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
8998         code from df_rd_transfer_function.
8999
9000 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
9001
9002         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
9003         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
9004         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
9005
9006 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
9007
9008         * expr.c (undefined_operand_subword_p): New.
9009         (emit_move_multi_word): Do not generate move from undefined bits
9010         of a paradoxical subreg.
9011
9012 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
9013
9014         PR rtl-optimization/27736
9015         * combine.c (replaced_rhs_value): New variable.
9016         (combine_instructions): Set it.
9017         (distribute_notes): When distributing a note in replaced_rhs_insn,
9018         check whether the value was used in replaced_rhs_value.
9019
9020 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
9021
9022         PR c++/26757
9023         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
9024         add_referenced_var instead of add_referenced_tmp_var.
9025         * tree-complex.c (create_one_component_var): Use add_referenced_var.
9026         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
9027         add_referenced_var.
9028         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
9029         tree_optimize_tail_calls_1): Use add_referenced_var.
9030         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
9031         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
9032         Use add_referenced_var.
9033         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
9034         * gimplify.c (force_gimple_operand): Use add_referenced_var.
9035         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
9036         Use add_referenced_var.
9037         * tree-dfa.c (struct walk_state): Remove.
9038         (find_referenced_vars): Remove walk state and vars_found hash table.
9039         (make_rename_temp): Use add_referenced_var.
9040         (find_vars_r): Pass less parameters to add_referenced_var.
9041         (referenced_var_p): New.  Is var in referenced_var hash table.
9042         (referenced_var_insert): Assert var isn't already in hash table.
9043         (add_referenced_var): Don't need walk_state parameter.  Add var if it
9044         isn't already in the hash table.
9045         (add_referenced_tmp_var): Remove.
9046         (find_new_referenced_vars_1): Use add_referenced_var.
9047         * tree-ssa-pre.c (create_expression_by_pieces,
9048         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
9049         Use add_referenced_var.
9050         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
9051         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
9052         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
9053         add_referenced_var.
9054         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
9055         vect_create_data_ref_ptr, vect_create_destination_var,
9056         vect_init_vector, vect_build_loop_niters,
9057         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
9058         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
9059         Use add_referenced_var.
9060         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
9061         * tree-flow.h (add_referenced_tmp_var): Remove prototype
9062         (add_referenced_var): Add prototype.
9063         * tree-ssa-structalias.c (get_constraint_for,
9064         intra_create_variable_infos): Use add_referenced_var.
9065
9066 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
9067
9068         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
9069         big-endian paradoxical subregs.
9070         * var-tracking.c (struct micro_operation_def): Document that,
9071         for modify micro operations, insn is the subsequent instruction.
9072         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
9073         (var_reg_set, var_mem_set): ... new functions.
9074         (add_stores): Record subsequent insn.
9075         (compute_bb_dataflow): Use new functions for MO_USE.
9076         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
9077         notes after the insn, and modify notes before the insn known
9078         to be the subsequent one.
9079         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
9080
9081 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
9082
9083         PR target/27696
9084         * config/i386/i386.c (ix86_expand_builtin): Use
9085         gen_sse3_monitor64 for TARGET_64BIT.
9086
9087 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
9088
9089         PR rtl-optimization/26375
9090         PR rtl-optimization/26855
9091         * df-problems (df_ru_bb_local_compute_process_def): Removed update
9092         to gen set.
9093         (df_ru_bb_local_compute): Reversed statements and removed bogus
9094         comment explaining why they should be in wrong order.
9095         (df_ru_dump, df_rd_dump): Enhanced debug info.
9096         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
9097         debug info.
9098         * ddg.c (add_deps_for_def): Converted use of reaching defs to
9099         reaching uses and fixed space problem.
9100
9101 2006-05-23  Jan Hubicka  <jh@suse.cz>
9102
9103         * cgraphunit.c (decide_is_function_needed): Also nested functions
9104         and functions declared inline can be optimized out at -O0.
9105
9106 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
9107
9108         * doc/install.texi (Configuration): Remove reference to CrossGCC
9109         FAQ which was gone.
9110         (Building): Ditto.
9111
9112 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
9113
9114         PR target/27266
9115         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
9116         ix86_compare_emitted is non-NULL.
9117
9118 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9119
9120         PR c++/27451
9121         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
9122         clobbers.
9123
9124 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
9125
9126         PR rtl-optimization/25514
9127         * combine.c (replaced_rhs_insn): New variable.
9128         (combine_instructions): Set replaced_rhs_insn when trying to replace
9129         a SET_SRC with a REG_EQUAL note.
9130         (distribute_notes): Use replaced_rhs_insn when determining the live
9131         range of a REG_DEAD register.
9132
9133 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
9134             Anatoly Sokolov <aesok@post.ru>
9135
9136         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
9137         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
9138         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
9139         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
9140         atmega3290, atmega649, atmega6490, atmega406, atmega640,
9141         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
9142         at90usb647, at90usb1286 and at90usb1287 devices.
9143         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9144         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9145
9146 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
9147
9148         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
9149
9150 2006-05-22  Richard Guenther  <rguenther@suse.de>
9151
9152         Revert
9153         2006-01-31  Richard Guenther  <rguenther@suse.de>
9154         Paolo Bonzini  <bonzini@gnu.org>
9155
9156         * doc/install.texi (--disable-libgcc-math): Document.
9157
9158 2006-05-22  Richard Guenther  <rguenther@suse.de>
9159
9160         Revert
9161         2006-01-31  Richard Guenther  <rguenther@suse.de>
9162
9163         * doc/invoke.texi (-msselibm): Document.
9164         * target.h (expand_library_builtin): New target hook.
9165         * builtins.c (expand_builtin): Use expand_library_builtin.
9166         (default_expand_library_builtin): New function.
9167         * gcc.c (LINK_GCC_MATH_SPEC): Define.
9168         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
9169         (link_gcc_math_spec): Declare.
9170         (static_specs): Add link_gcc_math_spec.
9171         * expr.h (default_expand_library_builtin): Declare.
9172         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
9173         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
9174         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
9175         * config/i386/i386.opt (msselibm): New target option.
9176         * config/i386/i386.c (ix86_builtin_function_variants): New array.
9177         (ix86_init_sse_abi_builtins): New function.
9178         (ix86_expand_library_builtin): Likewise.
9179         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
9180         (override_options): Handle error conditions wrt -msselibm.
9181         (ix86_builtins): Add function codes for SSE2 ABI builtins.
9182         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
9183         * doc/extend.texi (__builtin_sse2_*): Document new target specific
9184         builtins.
9185
9186 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9187
9188         PR c/27420
9189         * c-common.c (self_promoting_args_p): Skip erroneous args.
9190
9191         PR c/26818
9192         * c-decl.c (finish_struct): Skip erroneous fields.
9193
9194 2006-05-22  Nick Clifton  <nickc@redhat.com>
9195
9196         * config/cris/cris.opt (march): Remove VarExists attribute.
9197         (max-stackframe=): Likewise.
9198
9199 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
9200
9201         * doc/rtl.texi: Fix a typo.
9202         * see.c: Fix comment typos.
9203
9204         * tree-ssa-structalias.h (alias_info): Remove num_references.
9205
9206 2006-05-21  Mike Stump  <mrs@apple.com>
9207
9208         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
9209         (BAD2): Add.
9210         (darwin_pragma_options): Use BAD instead.
9211         (darwin_pragma_unused): Likewise.
9212         (darwin_pragma_ms_struct): Likewise.
9213
9214 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
9215
9216         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
9217
9218 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
9219
9220         PR rtl-optimization/27671
9221         * simplify-rtx.c (simplify_relational_operation_1): Fix
9222         simplifications of (eq/ne (xor x y) y) and
9223         (eq/ne (xor x y) x).
9224
9225         PR tree-optimization/26622.
9226         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
9227         on arg1.
9228
9229 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
9230
9231         * tree-cfg.c: Prune whitespace.
9232         (debug_tree_cfg): Point to correct header containing the
9233         TDF_* defines.
9234
9235 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
9236
9237         PR middle-end/25776
9238         * cgraphunit.c (verify_cgraph_node): Typo in error message.
9239
9240 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
9241
9242         PR middle-end/25776
9243         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
9244         or sorry count is non zero.
9245
9246 2006-05-20  Andreas Schwab  <schwab@suse.de>
9247
9248         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
9249
9250 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
9251             Kenneth Zadeck <zadeck@naturalbridge.com>
9252
9253         PR rtl-optimization/26855
9254
9255         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
9256         multiword refs.
9257         (df_scan_alloc): Added code to properly handle multiword hard
9258         registers and add all_blocks parameter.
9259         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
9260         code to properly handle multiword hard registers.
9261         (df_rescan_blocks): Added code to remove deleted blocks from
9262         bitmap.
9263         (df_ref_create_structure, df_ref_record): Added code to properly
9264         handle subregs.
9265         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
9266         and set DF_REF_PARTIAL.
9267         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
9268         (df_uses_record): Added DF_REF_PARTIAL for subreg.
9269         (df_scan_add_problem): Added flags parameter.
9270         (df_ref_create_structure): Changed switching structure.
9271         (df_bb_refs_record): Fixed case where duplicate artificial refs
9272         were created.  Changed location of flags.
9273         (df_record_entry_block_defs): Added code to make stack pointer
9274         live in entry block.  Refined cases where frame pointer is needed.
9275         Changed location of flags.
9276         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
9277         (df_set_state): Removed function.
9278         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
9279         df_insn_create_insn_record, df_insn_refs_delete,
9280         df_ref_create_structure): Formatting changes.
9281         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
9282         df_delete_basic_block): New function.
9283         (df_init): Changed location of flags.
9284         (df_add_problem): Added flags parameter and the way flags are
9285         processed.
9286         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
9287         debug_df_chain): Improved debugging output.
9288         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
9289         (df_refs_chain_dump): Removed df parameter.
9290         (df_iterative_dataflow): Added consistency check.
9291         (df_prune_to_subcfg): Made public.
9292         (df_analyze_problem): Added blocks_to_init parameter and made
9293         public.
9294         (df_ref_record, df_bb_refs_record, df_mark_reg,
9295          df_record_exit_block_uses): Whitespace changes.
9296         (df_dump): Whitespace changes.
9297         * df.h: Some reordering to remove forward references.
9298         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
9299         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
9300         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
9301         (dataflow.flags): New field.
9302         (df.flag): Deleted field.
9303         (df_alloc_function): Added additional bitmap parameter.
9304         (df_dependent_problem_function): New type.
9305         (df_problem.changeable_flags): New field.
9306         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
9307         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
9308         (df_mw_hardreg): New struct.
9309         (DF_INSN_UID_MWS): New macro.
9310         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
9311         parameter.
9312         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
9313         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
9314         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
9315         (df_set_state): Removed function.
9316         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
9317         * df-problems.c (df_chain_dump): Removed df parameter.
9318         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
9319         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
9320         parameter.
9321         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
9322         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
9323         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
9324         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
9325         DF_REF_MUST_CLOBBER cases.
9326         (df_ru_bb_local_compute_process_def,
9327         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
9328         df_lr_bb_local_compute, df_ur_bb_local_compute,
9329         df_chain_create_bb): Made subreg aware.
9330         (df_ru_bb_local_compute, df_rd_bb_local_compute,
9331         df_lr_bb_local_compute, df_lr_bb_local_compute,
9332         df_chain_create_bb): Cleanup to use proper macros.
9333         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
9334         code to fixup bitvectors.
9335         (df_ri_alloc): Cleared lifetime.
9336         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
9337         df_create_unused_note): New function.
9338         (df_ri_bb_compute, df_ri_compute): Added code to create/update
9339         REG_DEAD and REG_UNUSED notes as well as register information.
9340         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
9341         df_chains_dump): Fixed crash if problem was never run.
9342         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
9343         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
9344         df_ri_add_problem): Processes flags in uniform manner.
9345         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
9346         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
9347         df_rd_dump, df_urec_free_bb_info): Formatting changes.
9348         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
9349         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
9350         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
9351         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
9352         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
9353         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
9354         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
9355         * see.c (see_initialize_data): Ditto.
9356         * final.c (rest_of_clean_state) Added regstack_completed.
9357         * rtl.h (regstack_completed): Ditto.
9358         * reg-stack.c (regstack_completed): Ditto.
9359
9360 2006-05-19  Mike Stump  <mrs@apple.com>
9361
9362         * c-tree.h (default_conversion): Remove.
9363         * c-common.h (default_conversion): Add.
9364
9365 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
9366
9367         * tree-vrp.c (valid_value_p): New function.
9368         (adjust_range_with_scev): Fail if the value of bound is not
9369         simple.
9370
9371 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
9372
9373         * config/mips/linux-unwind.h: Include <asm/unistd.h>
9374         (mips_fallback_frame_state): Use syscall numbers to determine
9375         the appropriate li instruction for the current ABI.  Only use
9376         __NR_sigreturn for o32.
9377
9378 2006-05-19  Nicolas Setton  <setton@adacore.com>
9379
9380         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
9381         * langhooks.c (lhd_dwarf_name): New function.
9382         * langhooks-def.h (lhd_dwarf_name): Declare.
9383         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
9384         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
9385
9386 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
9387
9388         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
9389         libgcc2.h.
9390         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
9391         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
9392         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
9393         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
9394         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
9395         determine the size of Wtype, etc.
9396         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
9397         (swfloatfuncs): New variable.
9398         (dwfloatfuncs): Likewise.
9399         (lib2funcs): Remove floating-point conversion functions from
9400         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
9401         the set of conversion routines needed.  Allow entries to specify
9402         an object name, filename and word size.  Update users accordingly.
9403         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
9404         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
9405
9406         Revert:
9407
9408         2006-02-08  Roger Sayle  <roger@eyesopen.com>
9409
9410         PR target/22209
9411         * config/fixtfdi.c: New libgcc source file.
9412         * config/fixunstfdi.c: New source file.
9413         * config/floatditf.c: New source file.
9414         * config/floatunditf.c: New souce file.
9415         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
9416         files above instead of config/mips/_tilib.c.
9417         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
9418
9419 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9420
9421         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
9422         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
9423
9424 2006-05-18  Mike Stump  <mrs@apple.com>
9425
9426         Fix up vla, vm and [*] sematics.
9427
9428         PR c/18740
9429         PR c/7948
9430         PR c/25802
9431         PR c/27673
9432         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
9433         (c_vla_unspec_p): Add.
9434         (c_vla_type_p): Add.
9435         * c-decl.c (struct c_scope): Add had_vla_unspec.
9436         (build_array_declarator): Add support for [*].
9437         (grokdeclarator): Likewise.
9438         (grokparms): Likewise.
9439         (get_parm_info): Likewise.
9440         * c-objc-common.c (c_vla_unspec_p): Likewise.
9441         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
9442         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
9443         typeof when argument is a variably modified type not inside sizeof or alignof.
9444         (c_parser_direct_declarator_inner): Propagate errors.
9445         (c_parser_sizeof_expression): Add support for [*].
9446         (c_parser_parms_declarator): Initialize had_vla_unspec.
9447         (c_parser_parms_list_declarator): Likewise.
9448         * c-typeck.c (c_vla_type_p): Add.
9449         (composite_type): Add support for vla compositing.
9450         (comptypes_internal): Add support for vla compatibility.
9451         (c_expr_sizeof_expr): Evaluate vla arguments.
9452         * tree.c (variably_modified_type_p): Update comment for [*].
9453
9454 2006-05-18  Michael Matz  <matz@suse.de>
9455
9456         PR target/27599
9457         * config.host: Make assignments to host_xmake_file cumulative.
9458         * config.host (*-darwin*): Test $host, not $target.
9459
9460 2006-05-12  Stuart Hastings  <stuart@apple.com>
9461
9462         * config/i386/i386.opt (-mstackrealign): New flag.
9463         * config/i386/i386.c (force_align_arg_pointer): New attribute.
9464         (ix86_handle_cconv_attribute): Emit error when
9465         force_align_arg_pointer attribute collides with too many regparms.
9466         (ix86_function_regparm): Limit regparms when used with
9467         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
9468         Support stack-realigning prologue in non-main functions.  Emit
9469         warning for nested functions under -mstackrealign, emit error for
9470         nested functions with force_align_arg_pointer attribute.
9471         * doc/extend.texi (force_align_arg_pointer): Document it.
9472         * doc/invoke.texi (-mstackrealign): Document it.
9473
9474 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
9475
9476         PR rtl-optimization/27477
9477         * combine.c (try_combine): Don't split a parallel consisting
9478         of two sets into two individual sets if both sets reference
9479         cc0.
9480
9481 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
9482
9483         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
9484         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
9485
9486         * doc/options.texi (VarExists): Updated.
9487
9488 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9489
9490         * unwind-dw2.c: Add declarations for uw_update_context and
9491         uw_frame_state_for.
9492         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
9493         detected, advance frame state and context once to skip over stub.
9494
9495 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
9496
9497         PR middle-end/20256
9498         PR middle-end/26435
9499         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
9500         Call rewrite_into_loop_closed_ssa only when something changed.
9501         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
9502         * lambda-code.c (can_convert_to_perfect_nest): Declared.
9503         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
9504         Test for perfect_nest_p here.  Fix formating.
9505         (replace_uses_equiv_to_x_with_y): Fix formating.
9506         (stmt_uses_op): Removed.
9507         (can_convert_to_perfect_nest): Removed loopivs parameter.
9508         Complete the test by checking the scalar dependences.
9509         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
9510         Fix formating.
9511
9512 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
9513
9514         PR bootstrap/22541
9515         From Dan Kegel <dank@kegel.com>:
9516         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
9517
9518 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
9519
9520         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
9521         if the element type is variably modified without recursing.
9522
9523 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
9524
9525         PR middle-end/27332
9526         * tree-loop-linear.c (try_interchange_loops): Test for
9527         no data dependences.
9528
9529 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
9530
9531         PR tree-optimization/27548
9532         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
9533         range of ssa names that appear on abnormal edges.
9534         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
9535         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
9536
9537 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
9538
9539         PR middle-end/27620
9540         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
9541
9542 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
9543
9544         PR middle-end/27415
9545         * tree.h (OMP_PARALLEL_COMBINED): Define.
9546         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
9547         (new_omp_context): Add is_combined_parallel argument.
9548         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
9549         new_omp_context caller.
9550         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
9551         Adjust gimplify_scan_omp_clauses callers.
9552         (omp_is_private): Issue errors if iteration variable is firstprivate
9553         or reduction in the current context.
9554         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
9555         on combined parallel workshare constructs.
9556
9557 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
9558
9559         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
9560         (gcc-options.o): New rule.
9561
9562         * optc-gen.awk: Protect variables for gcc-options.o with
9563         #ifdef GCC_DRIVER/#endif.
9564
9565 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
9566
9567         Fix PR tree-optimization/27373
9568         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
9569          (forward_propagate_addr_expr): Update call.
9570
9571 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
9572
9573         * doc/options.texi: Move the Negative option.
9574
9575 2006-05-16  Richard Guenther  <rguenther@suse.de>
9576
9577         PR tree-optimization/22303
9578         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
9579         from STRING_CSTs.
9580         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
9581         ccp_fold did not simplify the statement.
9582
9583 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
9584
9585         PR driver/26885
9586         * Makefile.in (GCC_OBJS): New.
9587         (OBJS-common): Add opts-common.o.
9588         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
9589         (cpp$(exeext)): Likewise.
9590         (gcc.o): Also depend on opts.h.
9591         (opts-common.o): New.
9592
9593         * common.opt (gcoff): Add Negative(gdwarf-2).
9594         (gdwarf-2): Add Negative(gstabs).
9595         (gstabs): Add Negative(gstabs+).
9596         (gstabs+): Add Negative(gvms).
9597         (gvms): Add Negative(gxcoff).
9598         (gxcoff): Add Negative(gxcoff+).
9599         (gxcoff+): Add Negative(gcoff).
9600         * config/i386/i386.opt (m32): Add Negative(m64).
9601         (m64): Add Negative(m32).
9602
9603         * doc/options.texi: Document the Negative option.
9604
9605         * gcc.c: Include "opts.h".
9606         (main): Call prune_options after expandargv.
9607
9608         * optc-gen.awk: Generate common declarations for all flag
9609         variables in options.c. Output the neg_index field.
9610
9611         * opts.c (find_opt): Moved to ...
9612         * opts-common.c: Here. New file.
9613
9614         * opts.h (cl_option): Add a neg_index field.
9615         (find_opt): New.
9616         (prune_options): Likewise.
9617
9618 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
9619
9620         PR middle-end/27573
9621         * omp-low.c (expand_omp_parallel): Don't assert
9622         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
9623         instead search for it.
9624
9625         PR c/27499
9626         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
9627         is signed.
9628
9629 2006-05-16  Andreas Schwab  <schwab@suse.de>
9630
9631         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
9632         defmac.
9633
9634 2006-05-15  Roger Sayle  <roger@eyesopen.com>
9635
9636         PR target/26600
9637         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
9638         integer constants other than zero are only legitimate on TARGET_64BIT.
9639         <CONST_VECTOR> Only zero vectors are legitimate.
9640         (ix86_cannot_force_const_mem): Integral and vector constants can
9641         always be put in the constant pool.
9642
9643 2006-05-16  DJ Delorie  <dj@redhat.com>
9644
9645         * crtstuff.c (__dso_handle): Set section from
9646         TARGET_LBIGCC_SDATA_SECTION if defined.
9647         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
9648         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
9649
9650 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
9651
9652         PR target/27599
9653         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
9654         host_xmake_file.
9655
9656 2006-05-16  Ben Elliston  <bje@au.ibm.com>
9657
9658         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
9659
9660 2006-05-15  Per Bothner  <per@bothner.com>
9661
9662         * tree.c: (last_annotated_node): Use source_locus typedef.
9663         This permits bootstrapping with --enable-mapped-location.
9664
9665 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
9666
9667         PR tree-optimization/26830
9668         * tree-into-ssa.c (struct ssa_name_info): Add age field.
9669         (info_for_ssa_name, current_info_for_ssa_name_age,
9670         blocks_to_update): New variables.
9671         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
9672         (clear_ssa_name_info, initialize_flags_in_bb,
9673         mark_block_for_update): New functions.
9674         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
9675         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
9676         prepare_def_site_for): Use mark_block_for_update.
9677         (mark_def_interesting): Assert that the processed block is marked in
9678         blocks_to_update.  Do not take blocks argument.
9679         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
9680         argument.
9681         (rewrite_update_init_block, rewrite_update_stmt): Only process
9682         blocks with statements to rewrite.
9683         (delete_update_ssa): Do not clear SSA_NAME_AUX.
9684         (update_ssa): Initialize and free blocks_to_update.  Do not
9685         clear flags on statements.  Do not use blocks bitmap.
9686         * tree.h (SSA_NAME_AUX): Removed.
9687         (struct tree_ssa_name): Removed aux field.
9688         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
9689
9690 2006-05-15  Richard Guenther  <rguenther@suse.de>
9691
9692         PR tree-optimization/27603
9693         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
9694         Do computations in original type.
9695
9696 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
9697
9698         * see.c: Code style changes such as redundant paranthesis,
9699         redundant intialization of local variables etc.
9700         (see_main): Declared now as static.
9701         * doc/invoke.texi: Update that -fsee is not enabled by
9702         default at -O3.
9703
9704 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
9705
9706         * omp-low.c (check_omp_nesting_restrictions): New function.
9707         (scan_omp_1): Call it.
9708
9709         PR middle-end/27416
9710         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
9711         construct, return *VAR.
9712
9713 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
9714
9715         PR rtl-optimization/27406
9716         * bt-load.c (migrate_btr_def): Skip the block having abnormal
9717         edges.
9718
9719 2006-05-14  Roger Sayle  <roger@eyesopen.com>
9720
9721         PR rtl-optimization/27538
9722         * combine.c (expand_compound_operation): Call gen_lowpart
9723         before calling simplify_shift_const.
9724
9725 2006-05-14  Roger Sayle  <roger@eyesopen.com>
9726
9727         PR rtl-optimization/22563
9728         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
9729         a fixed width bitfield, always force the intermediates into psuedos.
9730
9731 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
9732
9733         PR 27501
9734         * mkconfig.sh: Use operator = instead of == for test.
9735
9736 2006-05-13  Nick Clifton  <nickc@redhat.com>
9737
9738         * dwarf2out.c (dbx_reg_number): Check return value from
9739         LEAF_REG_REMAP and only use it if it is valid.
9740         (multiple_reg_loc_descriptor): Likewise.
9741
9742 2006-05-13  Richard Guenther  <rguenther@suse.de>
9743
9744         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
9745         host_xmake_file.
9746
9747 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
9748
9749         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
9750         information attached to non-INSNs such as NOTEs.
9751         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
9752
9753 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
9754
9755         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
9756         On contraint.
9757         * config/s390/s390.md: Adjust comment describing On constraint.
9758
9759 2006-05-11  Jan Hubicka  <jh@suse.cz>
9760
9761         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
9762         to be output at -O0.
9763
9764 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9765
9766         PR middle-end/27384
9767         * fold-const.c (size_binop): Move sanity check for arguments to
9768         the beginning of the function.
9769
9770         PR middle-end/27488
9771         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
9772         expression.
9773
9774 2006-05-11  Richard Guenther  <rguenther@suse.de>
9775
9776         PR middle-end/27529
9777         * fold-const.c (fold_unary): Handle intermediate conversion
9778         to a pointer type like intermediate conversion to an integer
9779         type in folding of (T1)(T2)var to var.
9780         Match the code to the comment in the final conversion for
9781         (T1)(T2)var to (T1)var regarding to type precision.  Rather
9782         than disallow T1 being of pointer type, assert that both T1
9783         and var are of pointer type or not.  Make sure not to fall
9784         over the frontends lazyness wrt array to pointer decay though.
9785
9786 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
9787
9788         * arm.c (arm_struct_value_rtx): Delete.
9789         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
9790         (arm_init_cumulative_args): Always initialize nregs to zero.
9791
9792 2006-05-10  Richard Guenther  <rguenther@suse.de>
9793
9794         PR tree-optimization/27532
9795         * tree-object-size.c (plus_expr_object_size): Fix typo.
9796
9797 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
9798
9799         PR target/24949
9800         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
9801         ashrdi_const, ashrdi3): Use a scratch register.
9802
9803 2006-05-10  Richard Guenther  <rguenther@suse.de>
9804
9805         PR tree-optimization/27302
9806         * fold-const.c (operand_equal_p): For two comparisons,
9807         try comparison of one comparison code swapped if that yields
9808         the same code.
9809
9810 2006-05-10  Ben Elliston  <bje@au.ibm.com>
9811
9812         * tree-pretty-print.c (pretty_print_string): No need to handle
9813         '\0' as a special character.
9814
9815         * tree.h: Include "hashtab.h".
9816         (iterative_hash_expr): Use hashval_t in its prototype.
9817         * Makefile.in (TREE_H): Add $(HASHTAB_H).
9818
9819 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
9820
9821         PR bootstrap/26872
9822         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
9823         (hppa*64*-*-hpux11*): Ditto.
9824         (hppa[12]*-*-hpux11*): Ditto.
9825
9826 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
9827
9828         PR target/26545
9829         * config/rs6000/aix41.h (TARGET_64BIT): Define.
9830
9831 2006-05-09  Michael Matz  <matz@suse.de>
9832
9833         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
9834         host_extra_gcc_objs and host_xmake_file.
9835         (<*-*-linux*>): Don't overwrite host_xmake_file.
9836         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
9837         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
9838         (host_detect_local_cpu): Declare.
9839         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
9840         * config/i386/i386.c (override_options): Handle -mtune=native
9841         as -mtune=generic.
9842         * config/i386/x-i386: New file.
9843         * config/i386/driver-i386.c: New file.
9844         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
9845         cpu-type "native".
9846
9847 2006-05-09  Dirk Mueller  <dmueller@suse.de>
9848         Richard Guenther  <rguenther@suse.de>
9849
9850         PR middle-end/27498
9851         * fold-const.c (fold_read_from_constant_string): Relax check
9852         for matching types to matching modes.
9853
9854 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
9855
9856         PR rtl-optimization/27335
9857         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
9858         loops.
9859
9860 2006-05-08  Chao-ying Fu  <fu@mips.com>
9861             Richard Sandiford  <richard@codesourcery.com>
9862
9863         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
9864         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
9865         * config/mips/mips.md (UNSPEC_SCC): New constant.
9866         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
9867         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
9868         (mips_emit_compare): Use it.
9869         (mips_expand_vcondv2sf): New function.
9870
9871 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
9872
9873         Fix PR tree-optimization/27093
9874         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
9875         renaming when they become not-used_alone.
9876
9877 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9878
9879         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
9880         relocation and relocation stubs.
9881
9882 2006-05-08  Eric Christopher  <echristo@apple.com>
9883
9884         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
9885         section for ppc.
9886
9887 2006-05-08  Jan Hubicka  <jh@suse.cz>
9888
9889         PR middle-end/24561
9890         * cgraphunit.c (decide_is_function_needed): When not optimizing even
9891         unused static functions are needed.
9892
9893 2006-05-08  Roger Sayle  <roger@eyesopen.com>
9894
9895         PR target/27158
9896         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
9897         of a reg_equiv_constant if the result is a legitimate constant.
9898
9899 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
9900
9901         PR target/27277
9902         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
9903         standard 80387 constants, raise the cost to prevent
9904         compress_float_constant() to generate load from memory.
9905
9906 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
9907
9908         * config/arm/constraints.md (c): Fix a typo.
9909
9910         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
9911         typos.
9912
9913 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
9914
9915         PR target/24879
9916         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
9917         inline function.
9918         (_mm_mwait): Likewise.
9919
9920         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
9921         "mwait".
9922         (sse3_monitor): Make it 32bit only.
9923         (sse3_monitor64): New. 64bit monitor.
9924
9925 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9926
9927         PR target/27421
9928         * config/i386/i386.c (classify_argument): Skip fields with invalid
9929         types.
9930
9931 2006-05-07  Richard Guenther  <rguenther@suse.de>
9932
9933         PR tree-optimization/27409
9934         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9935         Do not try to find zero-sized subvars.
9936
9937 2006-05-07  Richard Guenther  <rguenther@suse.de>
9938
9939         PR tree-optimization/27136
9940         * tree-ssa-loop-niter.c (get_val_for): Correct function
9941         comment, assert requirements.
9942         (loop_niter_by_eval): Stop processing if the iterated
9943         value did not simplify.
9944
9945 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
9946
9947         * opts.c (flag_see): remove its setting at -O3.
9948
9949 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
9950
9951         * genpeep.c (main): Make insn-peep.c depend on flags.h.
9952         * arm/constraints.md: New file.
9953         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
9954         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
9955         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
9956         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
9957         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
9958         (EXTRA_MEMORY_CONSTRAINT): Likewise.
9959         * arm.md: Include constraints.md.
9960         (thumb_movsi_insn): Use satisfies_constraint_J.
9961         (movhi, movqi): Use satisfies_constraint_I.
9962
9963 2006-04-29 Anatoly Sokolov <aesok@post.ru>
9964
9965         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
9966         for atmeg a645 device.
9967
9968 2006-05-06   Richard Guenther  <rguenther@suse.de>
9969
9970         PR tree-optimization/27151
9971         * tree-vect-transform.c (vectorizable_condition): Punt on
9972         values that have a different type than the condition.
9973
9974 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
9975
9976         PR/21391
9977         * c-parser.c (c_parser_cast_expression): Only insert casts into
9978         hash table if pointer.
9979         * function.c (used_types_insert_helper): Rename from
9980         used_types_insert.
9981         (used_types_insert): Call used_types_insert_helper.
9982         * function.h (used_types_insert): Accept only one argument.
9983
9984 2006-05-05  David Edelsohn  <edesohn@gnu.org>
9985
9986         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
9987         scratch with output modifier.
9988
9989 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
9990
9991         PR target/26481
9992         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
9993         with output modifier.
9994
9995 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
9996
9997         PR target/26765
9998         * config/mips/mips.c (mips_symbolic_address_p): Return true
9999         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
10000         SYMBOL_GOTTPREL, and SYMBOL_TLS.
10001
10002 2006-05-04  Richard Guenther  <rguenther@suse.de>
10003
10004         PR tree-optimization/14287
10005         PR tree-optimization/14844
10006         PR tree-optimization/19792
10007         PR tree-optimization/21608
10008         PR tree-optimization/27090
10009         * tree-ssa-pre.c (try_combine_conversion): New function.
10010         (compute_avail): After constructing the value-handle
10011         expression, use try_combine_conversion to combine NOP_EXPRs
10012         with previous value-handle expressions and use the result if it
10013         is available.
10014
10015 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
10016
10017         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
10018
10019 2006-05-04  Jan Hubicka  <jh@suse.cz>
10020
10021         PR middle-end/25962
10022         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
10023
10024 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
10025
10026         * config/bfin/predicates.md (const01_rtx): Tell generator programs
10027         that this only matches CONST_INTs.  All users changed to VOIDmode
10028         operands.
10029
10030         * config/bfin/bfin.c: Include "optabs.h".
10031         (bfin_rtx_costs): Some costs for vector operations, to allow combine
10032         to do more work.
10033         (enum bfin_builtins): Add a number of fractional and vector builtins.
10034         (bfin_init_builtins): Likewise.
10035         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
10036         (safe_vector_operand, bfin_expand_binop_builtin,
10037         bfin_expand_unop_builtin): New functions.
10038         (bfin_expand_builtin): Handle the new builtins.
10039         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10040         __ADSPBLACKFIN__.
10041
10042 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
10043
10044         * see.c: New file.
10045         * Makefile.in (OBJS-common): Add see.o.
10046         (see.o): Add dependencies.
10047         * common.opt (fsee): New flag for the see optimization was added.
10048         * opts.c (flag_see): Initialized.
10049         * passes.c (init_optimization_passes, pass_see): New pass.
10050         * rtl.h (see_main): Declaration as extern.
10051         * timevar.def (TV_SEE): New.
10052         * tree-pass.h (pass_see): Declaration as extern.
10053         * invoke.texi (-fsee): Document.
10054         * recog.c (validate_simplify_insn): New function.
10055         * recog.h (validate_simplify_insn): Declaration as extern.
10056         * df-problems.c (df_chain_dump): Check for NULL.
10057
10058 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
10059             Daniel Berlin  <dberlin@dberlin.org>
10060
10061         * cfgrtl.c (insert_insn_bb_end_new): New function.
10062         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
10063
10064 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
10065
10066         * df.h (struct web_entry): Moved from web.c.
10067         (union_defs): Declaration as extern.
10068         (unionfind_root): Likewise.
10069         (unionfind_union): Likewise.
10070         * web.c (struct web_entry): Moved to df.h.
10071         (unionfind_root): Remove static declaration.
10072         (unionfind_union): Likewise.
10073         (union_defs): Likewise and generalize to use callback function.
10074         (web_main): Update arguments for union_defs function call.
10075
10076 2006-05-04  Richard Guenther  <rguenther@suse.de>
10077
10078         PR tree-optimization/26447
10079         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
10080         produce SSA_NAME copies before the store stmt to avoid
10081         breaking exception handling.
10082
10083 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
10084
10085         PR middle-end/27388
10086         * gimplify.c (omp_is_private): If var is shared in some outer context,
10087         return false instead of true.  Stop searching on parallel context
10088         boundary.
10089
10090 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
10091
10092         PR java/8260
10093         * coverage.c: Use get_gcov_unsigned_t() instead of
10094         unsigned_type_node all over.
10095
10096 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
10097
10098         PR tree-optimization/27381
10099         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
10100         maintain the same immediate_use links.
10101         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
10102         node rather than segfaulting.
10103
10104 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
10105
10106         PR fortran/27395
10107         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
10108         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
10109         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
10110
10111 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
10112
10113         Fix PR tree-optimization/26626
10114         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
10115         always.
10116         * tree-ssa-operands.c (access_can_touch_variable): Allow
10117         typecasting through union pointers.
10118
10119 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
10120
10121         PR c++/26943
10122         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
10123         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
10124         to find if var will be a global variable even in the nested context.
10125         (omp_copy_decl): Only check for global variable at the end, it might
10126         be overridden in outer contexts.
10127         (scan_sharing_clauses): For global variables don't create a field.
10128         (lower_rec_input_clauses): Do nothing for global shared variables.
10129         Emit a barrier at the end of ILIST if there were any decls in both
10130         firstprivate and lastprivate clauses.
10131         (lower_send_clauses): Do nothing for global variables except for
10132         COPYIN.
10133
10134 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
10135
10136         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
10137         of the correct signedness is returned.
10138
10139 2006-05-02  Jeff Law  <law@redhat.com>
10140
10141         PR tree-optimization/27364
10142         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
10143         multiply expressions.
10144
10145 2006-05-02  Tom Tromey  <tromey@redhat.com>
10146
10147         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
10148
10149 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
10150
10151         PR target/27387
10152         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
10153         -mthumb -fPIC are used.
10154
10155 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
10156             Joshua Kinard  <kumba@gentoo.org>
10157
10158         PR target/25871
10159         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
10160         with 64-bit pointers.
10161
10162 2006-05-02  Paul Brook  <paul@codesourcery.com>
10163
10164         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
10165         and pool overlap.
10166         (create_fix_barrier): Check that a suitable barrier location is
10167         found.
10168         (arm_reorg): Include ftmp->address in allowable range of addresses.
10169
10170 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
10171
10172         PR ada/27366
10173         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
10174         on Cygwin.
10175
10176 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
10177
10178         PR middle-end/27337
10179         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
10180         around RESULT_DECL for result passed by reference.
10181         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
10182         * omp-low.c (use_pointer_for_field): Don't look at
10183         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
10184         (scan_omp_1): Call remap_decl on RESULT_DECLs.
10185         (lower_rec_input_clauses): Don't allocate VLA memory for the second
10186         time or var for passing by reference for
10187         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
10188         TREE_ADDRESSABLE variables when passing by reference.
10189
10190         * omp-low.c (dump_omp_region): Fix output formatting.
10191
10192         PR middle-end/27328
10193         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
10194         (expand_omp_parallel): Likewise.
10195         * tree-cfg.c (move_sese_region_to_fn): Likewise.
10196
10197         PR middle-end/27325
10198         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
10199         on statement list containing also constructors and destructors.
10200         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
10201
10202         PR middle-end/27310
10203         * except.c (duplicate_eh_regions): Fix clearing of
10204         cfun->eh->region_array entries.
10205
10206 2006-05-01  DJ Delorie  <dj@redhat.com>
10207
10208         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
10209         build!=host.
10210         (gcc_cv_objdump): Likewise.
10211         * configure: Regenerated.
10212
10213 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
10214
10215         PR target/27374
10216         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
10217         templates for case 3 and 4.
10218
10219 2006-05-01  DJ Delorie  <dj@redhat.com>
10220
10221         * vec.c: Include bconfig.h when appropriate.
10222         * Makefile.in (build/vec.o): Adjust dependencies.
10223         * mkconfig.sh: Make sure config.h isn't used for build machine
10224         compiles.
10225
10226 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
10227
10228         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
10229         variables.
10230         (mark_phi_for_rewrite): New function.
10231         (insert_phi_nodes_for, mark_use_interesting): Call
10232         mark_phi_for_rewrite.
10233         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
10234         (update_ssa): Initialize and free phis_to_rewrite.
10235
10236 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
10237
10238         PR rtl-optimization/27291
10239         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
10240         folded to a constant.
10241
10242 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
10243
10244         PR tree-optimization/27283
10245         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
10246         not whole # of iteration descriptions.
10247         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
10248         uses abnormal ssa name.
10249         (niter_for_single_dom_exit): Ditto.
10250         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
10251         return just the number of iterations.
10252
10253 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
10254
10255         PR tree-optimization/27144
10256         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
10257         (record_estimate): Only record constant upper bound.
10258         (infer_loop_bounds_from_undefined): Call
10259         compute_estimated_nb_iterations just once.
10260         (proved_non_wrapping_p): Renamed to ...
10261         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
10262         (convert_step_widening, scev_probably_wraps_p): Call
10263         n_of_executions_at_most instead of proved_non_wrapping_p.
10264         (substitute_in_loop_info): Do not replace values in bounds.
10265         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
10266         comments.
10267
10268 2006-05-01  Richard Henderson  <rth@redhat.com>
10269
10270         PR c/27358
10271         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
10272         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
10273         CPP_PRAGMA.
10274
10275 2006-05-01  Roger Sayle  <roger@eyesopen.com>
10276
10277         * c-typeck.c (parser_build_binary_op): Don't call the function
10278         unsigned_conversion_warning to spot operand/result type overflow.
10279         (build_binary_op): Instead, call convert_and_check instead of
10280         convert to report the problem when the operands are promoted.
10281         * c-common.c (unsigned_conversion_warning): Make static.
10282         * c-common.h (unsigned_conversion_warning): Delete prototype.
10283
10284 2006-05-01  Richard Guenther  <rguenther@suse.de>
10285
10286         PR tree-optimization/26726
10287         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
10288         problem ...
10289         (find_interesting_uses_address): ... we work around here
10290         by folding INDIRECT_REFs in the substituted base.
10291
10292 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
10293
10294         * omp-low.c (dump_omp_region): Add newlines.
10295
10296 2006-04-30  Roger Sayle  <roger@eyesopen.com>
10297
10298         * common.opt (Woverflow): New command line option.
10299         * c-common.c (constant_expression_warning): Check warn_overflow.
10300         (overflow_waring): Pass OPT_Woverflow to warning.
10301         (unsigned_conversion_warning): Likewise.
10302         (convert_and_check): Likewise.
10303         * doc/invoke.texi: Document new command line option.
10304
10305 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
10306
10307         * config/rs6000/rs6000.c (rs6000_override_options): Enable
10308         TARGET_NO_FP_IN_TOC for section anchors.
10309         (optimization_options): Enable section anchors for all
10310         non-"Objective" languages.
10311
10312 2006-04-28  Eric Christopher  <echristo@apple.com>
10313
10314         * config/darwin-c.c (darwin_ms_struct): Move this
10315         (darwin_set_default_type_attributes): and this...
10316         * config/darwin.c: ... here.
10317         * config/darwin.h (darwin_ms_struct): Declare.
10318
10319 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
10320
10321         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
10322
10323 2006-04-28  Roger Sayle  <roger@eyesopen.com>
10324
10325         PR c/25309
10326         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
10327         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
10328         an unsigned HOST_WIDE_INT.
10329         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
10330         array index.
10331         (really_start_incremental_init): No need to call convert because
10332         bitsize_zero_node is already of type bitsizetype.
10333         (push_init_level): Extract the value of constructor_index as an
10334         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
10335         (process_init_element): Likewise.
10336
10337 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
10338
10339         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
10340         value before passing to make_relative_prefix.
10341
10342 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
10343
10344         PR middle-end/27260
10345         * builtins.c (expand_builtin_memset): Expand val in original mode.
10346
10347 2006-04-27  Eric Christopher  <echristo@apple.com>
10348
10349         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
10350         with #ifndef/#endif.
10351         * config/darwin-c.c (darwin_ms_struct): New.
10352         (darwin_pragma_ms_struct): Ditto.
10353         (darwin_set_default_type_attributes): Ditto.
10354         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
10355         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
10356         Register ms_struct pragma.
10357         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
10358         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
10359         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
10360         darwin_set_default_type_attributes if TARGET_MACHO.
10361
10362 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
10363
10364         PR tree-optimization/26854
10365         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
10366         * doc/tree-ssa.texi: Update immuse iterator documentation.
10367         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
10368         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
10369         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
10370         first_safe_imm_use, next_safe_imm_use): Remove.
10371         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
10372         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
10373         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
10374         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
10375         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
10376         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
10377         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
10378         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
10379         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
10380         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
10381         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
10382         (perfect_nestify): Use new iterator.
10383         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
10384         iterator.
10385         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
10386         (next_imm_name): New field in struct immediate_use_iterator_d.
10387         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
10388         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
10389         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
10390         * tree-cfg.c (replace_uses_by): Use new iterator.
10391         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
10392         * tree-ssa-operands.c (correct_use_link): Remove.
10393         (finalize_ssa_use_ops): No longer call correct_use_link.
10394
10395 2006-04-27  Stuart Hastings  <stuart@apple.com>
10396
10397         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
10398         * config/t-darwin (crt3.o): Use it.
10399         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
10400         'pmode', use Pmode instead of SImode for SYMBOL_REF.
10401         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
10402         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
10403         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
10404         support.
10405
10406 2006-04-27  Roger Sayle  <roger@eyesopen.com>
10407
10408         * expmed.c (store_fixed_bit_field): If we're not optimizing for
10409         size, force the intermediate into a new pseudo rather instead of
10410         performing both a bitwise AND and a bitwise IOR in memory.
10411
10412 2006-04-27  Richard Guenther  <rguenther@suse.de>
10413
10414         PR rtl-optimization/26685
10415         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
10416         this one "max-flow-memory-locations".
10417
10418 2006-04-27  Richard Guenther  <rguenther@suse.de>
10419
10420         PR tree-optimization/25148
10421         * tree-vrp.c (compare_values): Remove code dealing with
10422         comparisons against type min/max value.  Honour overflow
10423         and negative constants in code dealing with comparisons
10424         of plus and minus expressions.
10425         (value_inside_range): Use fold_binary with LE_EXPR and
10426         GE_EXPR rather than compare_values.
10427
10428 2006-04-27  Dirk Mueller  <dmueller@suse.de>
10429
10430         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
10431         prototype for SSE.
10432
10433 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
10434
10435         * basic-block.h (safe_insert_insn_on_edge): Removed.
10436         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
10437
10438 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
10439             Paolo Bonzini  <bonzini@gnu.org>
10440
10441         PR middle-end/27282
10442         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
10443         (simplify_and_const_int): Same.
10444
10445 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
10446
10447         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
10448
10449 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
10450
10451         PR c/26171
10452         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
10453         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
10454         cgraph_global_info_ready.
10455
10456         PR middle-end/26913
10457         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
10458
10459         PR c/25996
10460         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
10461         either decl or init is error_mark_node.
10462
10463         PR middle-end/25989
10464         * tree-flow.h (struct omp_region): Add sched_kind.
10465         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
10466         instead of extracting omp for data.
10467         (expand_omp_for): Save extracted sched_kind.
10468
10469 2006-04-25  Roger Sayle  <roger@eyesopen.com>
10470
10471         * expmed.c (store_bit_field): Also check whether the bitsize is
10472         valid for the machine's "insv" instruction before moving the
10473         target into a pseudo for use with the insv.
10474         * config/i386/predicates.md (const8_operand): New predicate.
10475         * config/i386/i386.md (extv, extzv, insv): Use the new
10476         const8_operand predicate where appropriate.
10477
10478 2006-04-25  DJ Delorie  <dj@redhat.com>
10479
10480         * doc/install.texi (Specific): Clarify that this is not a list of
10481         supported hosts or targets.
10482
10483 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
10484
10485         PR rtl-optimization/26725
10486         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
10487         block's BB_DIRTY flag.
10488
10489 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
10490
10491         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
10492         are no branches.
10493
10494         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
10495         to print an integer.
10496
10497 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
10498
10499         * varasm.c (align_variable): New function.
10500         (get_block_for_decl): Apply align_variable to DECL before
10501         calculating section information.
10502         (assemble_variable): Split out alignment computation.
10503
10504 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
10505
10506         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
10507         machines.
10508
10509 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10510
10511         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
10512         MODE_PARTIAL_INT mode.
10513         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
10514         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
10515         for CONST_INTs.
10516         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
10517         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
10518         V2PDImode.
10519         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
10520         New predicates.
10521         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
10522         New constants.
10523         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
10524         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
10525         MACFLAG_IH): Likewise.
10526         (movstricthi_1): Renamed from "*movstricthi".
10527         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
10528         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
10529         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
10530         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
10531         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
10532         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
10533         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
10534         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
10535         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
10536         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
10537         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
10538         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
10539         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
10540         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
10541         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
10542
10543         * doc/rtl.texi (ss_ashift): Improve wording.
10544
10545 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
10546
10547         * dwarf2out.c (verify_marks_clear): New.
10548         (prune_unused_types): Call verify_marks_clear initially, not
10549         prune_unmark_dies.
10550
10551 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
10552
10553         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
10554         * doc/rtl.texi: Document them.
10555         * simplify-rtx.c (simplify_unary_operation,
10556         simplify_binary_operation_1): Don't abort when we see them.
10557
10558 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
10559
10560         Revert:
10561         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
10562         * configure.ac: Completely disregard languages that are not
10563         enabled.
10564         * configure: Regenerated.
10565
10566 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
10567         Richard Guenther  <rguenther@suse.de>
10568
10569         PR tree-optimization/27236
10570         * tree-inline.c (copy_body_r): Make sure to copy
10571         TREE_THIS_VOLATILE flag.
10572
10573 2006-04-24  Richard Guenther  <rguenther@suse.de>
10574
10575         PR middle-end/26869
10576         * tree-complex.c (update_parameter_components): Don't handle
10577         unused parameters which have no default def.
10578
10579 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
10580         Richard Guenther  <rguenther@suse.de>
10581
10582         PR tree-optimization/27218
10583         * tree-inline.c (expand_call_inline): Strip useless type
10584         conversions for the return slot address.
10585
10586 2006-04-24  Richard Guenther  <rguenther@suse.de>
10587
10588         * cfgloop.h (struct loops): Remove unused field array.  Reorder
10589         state after num.
10590         (LOOP_PREFETCH): Remove.
10591
10592 2006-04-24  Richard Guenther  <rguenther@suse.de>
10593
10594         PR tree-optimization/22525
10595         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
10596         variable, adjust types of generated expressions.
10597
10598 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
10599
10600         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
10601         (tree-vect-patterns.o): Likewise.
10602         (jump.o): Likewise.
10603         (cselib.o): Likewise.
10604         (loop-doloop.o): Likewise.
10605         (regclass.o): Likewise.
10606         (reload1.o): Likewise.
10607         (explow.o): Replace target.h with $(TARGET_H).
10608         (ipa-prop.o): Likewise.
10609         (ipa-cp.o): Likewise.
10610         (ipa-inline.o): Likewise.
10611         (reorg.o): Likewise.
10612         (reg-stack.o): Likewise.
10613
10614 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
10615
10616         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
10617
10618 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
10619
10620         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
10621
10622         * configure.ac: Completely disregard languages that are not
10623         enabled.
10624         * configure: Regenerated.
10625
10626         PR c++/26534
10627         * c-common.h (c_build_bitfield_integer_type): Declare.
10628         * c-decl.c (c_build_bitfield_integer_type): Move to ...
10629         * c-common.c (c_build_bitfield_integer_type): ... here.
10630
10631 2006-04-23  Roger Sayle  <roger@eyesopen.com>
10632
10633         PR target/21283
10634         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
10635         a SImode SUBREG of a floating point register after no_new_pseudos.
10636
10637 2006-04-23  Roger Sayle  <roger@eyesopen.com>
10638
10639         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
10640         identify potentially eliminable registers to additionally catch
10641         VIRTUAL_INCOMING_ARGS_REGNUM.
10642         (addsi3): Update the conditions on when to use addsi_small_int.
10643
10644 2006-04-23  Roger Sayle  <roger@eyesopen.com>
10645
10646         PR target/16641
10647         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
10648         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
10649         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
10650
10651 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
10652
10653         * fold-const.c (range_predecessor): Use operand_equal_p
10654         as the predicate for equality.
10655         (range_successor): Likewise.
10656
10657 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
10658
10659         Revert:
10660         * config/soft-fp/op-common.h: Fix a typo.
10661
10662 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
10663
10664         PR libmudflap/26864
10665         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
10666         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
10667
10668 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
10669
10670         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
10671         Fix comment typos.
10672         * doc/tm.texi: Fix a typo.
10673
10674 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
10675
10676         * dwarf2out.c (struct die_struct): Document that die_sib makes
10677         a circular linked list.
10678         (FOR_EACH_CHILD): New.
10679         (reverse_die_lists): Delete.
10680         (reverse_all_dies): Delete.
10681         (add_dwarf_attr): Correct documentation.
10682         (remove_child_with_prev): New.
10683         (remove_child_TAG): Update for change to die_struct, use
10684         remove_child_with_prev.
10685         (add_child_die): Update for change to die_struct.
10686         (splice_child_die): Use remove_child_with_prev and add_child_die.
10687         (print_die): Use FOR_EACH_CHILD.
10688         (die_checksum): Likewise.
10689         (assign_symbol_names): Likewise.
10690         (output_location_lists): Likewise.
10691         (build_abbrev_table): Likewise.
10692         (calc_die_sizes): Likewise.
10693         (mark_dies): Likewise.
10694         (unmark_dies): Likewise.
10695         (unmark_all_dies): Likewise.
10696         (output_die): Likewise.
10697         (prune_unused_types_mark): Likewise.
10698         (prune_unused_types_walk): Likewise.
10699         (same_die_p): Update for change to die_struct.
10700         (break_out_includes): Likewise.
10701         (prune_unused_types_prune): Likewise.
10702         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
10703         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
10704         it's already clear.
10705         (dwarf2out_finish): Don't call reverse_all_dies.
10706
10707 2006-04-21  Eric Christopher  <echristo@apple.com>
10708
10709         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
10710         in comments and function names.
10711
10712 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10713
10714         PR c/25875
10715         * c-typeck.c (digest_init): Robustify.
10716
10717         * c-typeck.c (pop_init_level): Simplify.
10718
10719 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
10720
10721         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
10722
10723 2006-04-21  Paul Brook  <paul@codesourcery.com>
10724
10725         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
10726         hardware floating point.
10727
10728 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
10729
10730         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
10731         NON_FLOAT_REGS.
10732
10733 2006-04-21  Nick Clifton  <nickc@redhat.com>
10734
10735         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
10736         OPT_EXTRA_PARTS.
10737
10738 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
10739
10740         PR target/27230
10741         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
10742         C++ lang type in traceback table for Objective-C++.
10743
10744         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
10745
10746 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
10747
10748         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
10749
10750 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10751
10752         PR mudflap/26789
10753         * tree-mudflap.c (mudflap_finish_file): Skip function when there
10754         were errors.  Remove check for erroneous objects.
10755
10756 2006-04-20  Jeff Law  <law@redhat.com>
10757
10758         PR tree-optimization/26854
10759         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
10760         checking for zero or one use.
10761         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
10762         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
10763         * tree-ssa-reassoc.c (negate_value): Similarly.
10764         (reassociate_bb): Similarly.
10765
10766 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
10767
10768         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
10769         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
10770         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
10771
10772 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
10773
10774         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
10775         fp regs if the last fp arg doesn't fit in regs.
10776
10777 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10778
10779         PR target/27182
10780         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
10781         that the last insn has the REG_INC note.
10782
10783 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
10784             Nathan Sidwell  <nathan@codesourcery.com>
10785
10786         PR c/26774
10787         * stor-layout.c (update_alignment_for_field): Do not align
10788         ERROR_MARK nodes.
10789         (place_union_field): Place union field at the start of the union.
10790         (place_field): Move ERROR_MARK check later, and use the current
10791         allocation position to maintain monotonicity.
10792
10793 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
10794
10795         * dominance.c: Include timevar.h.
10796         (calculate_dominance_info): Use TV_DOMINANCE.
10797         * timevar.def (TV_DOMINANCE): New timevar.
10798         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
10799
10800 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
10801
10802         PR rtl-optimization/14261
10803         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
10804         move would be an INSV insn.
10805         (noce_process_if_block): Don't optimize if the destination is a
10806         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
10807
10808 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
10809
10810         * config/s390/s390.md: Add comments with the instructions emitted
10811         by an insn pattern if macros are used.
10812
10813 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
10814
10815         PR rtl-optimization/26026
10816         * fold-const.c (fold_binary): Optimize div and mod where the divisor
10817         is a known power of two shifted left a variable amount.
10818
10819 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
10820
10821         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
10822         to hash table twice when the debug_str section has SECTION_MERGE.
10823
10824 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
10825
10826         * config/soft-fp: New directory.  From glibc.
10827         * config/soft-fp/t-softfp: New.
10828         * config/soft-fp/README: New.
10829         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
10830         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
10831         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
10832         (LIBGCC_DEPS): Add $(SFP_MACHINE).
10833         * config.gcc: Use rs6000/t-fprules-fpbit or
10834         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
10835         rs6000/t-fprules.
10836         * config/rs6000/sfp-machine.h: New.  Based on glibc.
10837         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
10838         New.
10839         * config/rs6000/t-fprules: Remove fp-bit rules.
10840         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
10841         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
10842         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
10843         (softfp_wrap_start, softfp_wrap_end): New.
10844
10845 2006-04-18  DJ Delorie  <dj@redhat.com>
10846
10847         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
10848
10849 2006-04-18  Devang Patel  <dpatel@apple.com>
10850
10851         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
10852
10853 2006-04-18  Nick Clifton  <nickc@redhat.com>
10854
10855         * config/sh/t-symbian: Add rule to build sh-c.o
10856         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
10857         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
10858         (sh_symbian_encode_section_info): Likewise.
10859
10860 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
10861
10862         * builtins.c (expand_builtin_strcmp): Cover label definition of
10863         do_libcall with HAVE_cmpstrnsi.
10864
10865 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
10866
10867         * function.c (temp_slots_at_level, max_slot_level): Use VEC
10868         instead of VARRAY.
10869         * function.h (temp_slot_p): New.
10870         (function): Change the type of x_used_temp_slots to
10871         VEC(temp_slot_p,gc) *.
10872
10873 2006-04-18  Nick Clifton  <nickc@redhat.com>
10874
10875         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
10876         flag_strength_reduce.
10877
10878         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
10879
10880 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
10881
10882         PR target/27117
10883
10884         Partial revert of revision 112637
10885         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
10886                     Dale Johannesen  <dalej@apple.com>
10887
10888         PR target/19653
10889         * regclass.c (struct reg_pref): Update documentation.
10890         (regclass): Set prefclass to NO_REGS if memory is the best option.
10891         (record_reg_classes): Cope with a prefclass set to NO_REGS.
10892
10893 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
10894
10895         PR tree-optimization/26821
10896         * tree-ssa-math-opts.c (get_constant_one): New.
10897         (insert_reciprocals): Use it.
10898
10899 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
10900
10901         * dwarf2out.c (free_AT): Delete.
10902         (remove_AT): Update string ref counts.
10903         (remove_child_TAG): Don't call free_die.
10904         (free_die): Delete.
10905         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
10906         or DW_TAG_GNU_EINCL.
10907         (prune_unused_types_walk_attribs): Reset string refcounts.
10908         (prune_unused_types_update_strings): New.
10909         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
10910         call free_die.  Do call prune_unused_types_update_strings.
10911         (prune_unused_types): Empty debug_str_hash.
10912
10913 2006-04-17  Roger Sayle  <roger@eyesopen.com>
10914
10915         * expr.c (expand_assignment): Optimize away no-op moves where the
10916         source and destination are equal and have no side-effects.
10917
10918 2006-04-17  Richard Guenther  <rguenther@suse.de>
10919
10920         PR target/26826
10921         * reload.c (push_reload): Guard calls to get_secondary_mem
10922         for memory subregs.
10923
10924 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
10925
10926         * alias.c (reg_base_value, old_reg_base_value): Change the
10927         type to VEC(rtx,gc) *.
10928         (REG_BASE_VALUE, find_base_value, record_set,
10929         init_alias_analysis): Use VEC instead of VARRAY.
10930
10931         * alias.c (alias_sets): Change the type to
10932         VEC(alias_set_entry,gc) *.
10933         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
10934         VEC instead of VARRAY.
10935         (last_alias_set): Remove.
10936
10937         * cgraph.h (cgraph_edge_p): New.
10938         Update the prototype of cgraph_function_versioning.
10939         * cgraphunit.c (cgraph_copy_node_for_versioning,
10940         cgraph_function_versioning): Use VEC instead of VARRAY.
10941         * ipa-cp.c (ipcp_insert_stage): Likewise.
10942
10943 2006-04-16  Roger Sayle  <roger@eyesopen.com>
10944
10945         PR target/26961
10946         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
10947         "A op B" or "A op C", we may need to convert A to the type of B and C.
10948
10949 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
10950
10951         * target.h (struct gcc_target): Add mode_rep_extended.
10952         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
10953         (init_num_sign_bit_copies_in_rep): Initialize it using
10954         mode_rep_extended.
10955         (truncate_to_mode): Use it.
10956         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
10957         * targhooks.h (default_mode_rep_extended): Declare it.
10958         * targhooks.c (default_mode_rep_extended): Define it.
10959         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
10960         default_mode_rep_extended.
10961         (TARGET_INITIALIZER): Include it.
10962         * doc/tm.texi (Misc): Document it.
10963         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
10964         (mips_truncated_to_mode): New function.
10965
10966 2006-04-16  Roger Sayle  <roger@eyesopen.com>
10967
10968         PR middle-end/25474
10969         * expr.c (compress_float_constant): Copy the narrow constant into
10970         a new pseudo before extending it to its final width.
10971
10972 2006-04-16  Roger Sayle  <roger@eyesopen.com>
10973             Andrew Pinski  <pinskia@gcc.gnu.org>
10974             Dale Johannesen  <dalej@apple.com>
10975
10976         PR target/24076
10977         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
10978         special case code to implement V8HImode and V16QImode with SSE2.
10979
10980 2006-04-15  Roger Sayle  <roger@eyesopen.com>
10981
10982         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
10983         trees are constructed with a suitable tree type.
10984
10985 2006-04-15  Roger Sayle  <roger@eyesopen.com>
10986
10987         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
10988         (integer_onep): Likewise.
10989         (integer_all_onesp): Likewise.
10990         (integer_pow2p): Likewise.
10991         (integer_nonzerop): Likewise.
10992         (real_zerop): Likewise.
10993         (real_onep): Likewise.
10994         (real_twop): Likewise.
10995         (real_minus_onep): Likewise.
10996         (int_size_in_bytes): Likewise.
10997         (host_integerp): Likewise.
10998
10999 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
11000
11001         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
11002         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
11003         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
11004
11005         * tree-ssa-structalias.h (alias_info): Remove num_references.
11006
11007 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11008
11009         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
11010         (output_bvb patterns): Likewise.
11011         * pa.c (output_bb): Use 'bb' insn for long branch case.
11012         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
11013         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
11014         1.  Correct length operand for alternatives 1 and 2.
11015         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
11016         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
11017
11018 2006-04-14  Roger Sayle  <roger@eyesopen.com>
11019
11020         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
11021         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
11022         were accidentally reverted by r112959.
11023
11024 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
11025
11026         PR middle-end/26823
11027         * except.h (eh_region_outermost): New prototype.
11028         * except.c (eh_region_outermost): New function.
11029         * tree-cfg.c (find_outermost_region_in_block): Use it.
11030
11031 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
11032
11033         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
11034         of VARRAY.
11035         * reload1.c (reg_equiv_memory_loc_varray): Rename to
11036         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
11037         (init_reload, reload): Use VEC instead of VARRAY.
11038         * reload.h: Update the prototype for
11039         reg_equiv_memory_loc_varray.
11040
11041 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
11042             Eric Botcazou  <ebotcazou@libertysurf.fr>
11043
11044         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
11045         register save area.
11046
11047 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
11048
11049         PR middle-end/27134
11050         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
11051         to expand fallback builtin function call.
11052
11053 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
11054
11055         PR middle-end/27095
11056         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
11057         and emit libcall here in case the builtin fails.
11058         (expand_builtin_strcmp): Always emit the libcall here on failure.
11059
11060 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
11061
11062         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
11063         * flow.c (reg_n_info): Change the type to
11064         VEC(reg_info_p,heap) *.
11065         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
11066         instead of VARRAY.
11067         * regs.h (reg_info_p): New.
11068         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
11069         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
11070         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
11071         instead of VARRAY.
11072
11073 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
11074
11075         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
11076         defaulting to 100.
11077         * params.h (MAX_SCHED_READY_INSNS): New macro.
11078         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
11079         past MAX_SCHED_READY_INSNS during the first scheduling pass.
11080         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
11081         the ready list for 1 cycle during the first scheduling pass.
11082         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
11083
11084 2006-04-13  Richard Henderson  <rth@redhat.com>
11085
11086         PR libgomp/26651
11087         * gimple-low.c (lower_omp_directive): Remove dead code.
11088         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
11089         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
11090         * omp-low.c (struct omp_region): Move to tree-flow.h.
11091         (root_omp_region): Export.
11092         (omp_regions, lookup_omp_region): Remove.
11093         (determine_parallel_type): Update for struct omp_region changes.
11094         (dump_omp_region): Dump regions with block numbers.
11095         (new_omp_region): Take type and block instead of stmt; malloc
11096         instead of ggc.
11097         (free_omp_region_1, free_omp_regions): New.
11098         (expand_parallel_call): Take entry_stmt as argument; update for
11099         changes to omp_region.
11100         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
11101         (remove_exit_barriers): New.
11102         (expand_omp_parallel): Update for struct omp_region changes.
11103         (expand_omp_synch): Likewise.
11104         (expand_omp): Likewise.
11105         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
11106         (expand_omp_for_static_chunk): Likewise.
11107         (expand_omp_for): Likewise.
11108         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
11109         (expand_omp_sections): Similarly, with GOMP_sections_end.
11110         (expand_omp_single): New.
11111         (build_omp_regions_1): Update for OMP_CONTINUE.
11112         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
11113         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
11114         OMP_SECTIONS_SECTIONS.
11115         (lower_omp_single_simple): Don't emit barrier here.
11116         (lower_omp_single_copy): Likewise.
11117         (lower_omp_single): Fix bindings, and lower to straightline now.
11118         (lower_omp_master, lower_omp_ordered): Likewise.
11119         (lower_omp_critical): Likewise.
11120         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
11121         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
11122         omp edges, free it afterward.
11123         (make_omp_sections_edges): Remove.
11124         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
11125         (move_stmt_r): Handle OMP_CONTINUE.
11126         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
11127         statement pointers to basic blocks.  Add type member.
11128         (root_omp_region, new_omp_region, free_omp_regions): Declare.
11129         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
11130         * tree-inline.c (estimate_num_insns_1): Likewise.
11131         * tree-pretty-print.c (dump_generic_node): Likewise.
11132         * tree-ssa-operands.c (get_expr_operands): Likewise.
11133         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
11134         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
11135         (OMP_CONTINUE): New.
11136         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
11137         (OMP_SECTIONS_SECTIONS): Remove.
11138         (OMP_SECTION_LAST): New.
11139         (OMP_RETURN_NOWAIT): New.
11140
11141 2006-04-13  Roger Sayle  <roger@eyesopen.com>
11142
11143         * fold-const.c (native_encode_vector, native_interpret_real):
11144         Correct obvious mistakes in the previous check-in.
11145
11146 2006-04-13  Roger Sayle  <roger@eyesopen.com>
11147
11148         * fold-const.c (native_encode_expr): New function to encode
11149         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
11150         or VECTOR_CST into a specified buffer.
11151         (native_encode_int): New function.
11152         (native_encode_real): New function.
11153         (native_encode_complex): New function.
11154         (native_encode_vector): New function.
11155         (native_interpret_expr): Inverse of native_encode_expr to convert
11156         a target representation into an INTEGER_CST, REAL_CST etc...
11157         (native_interpret_int): New function.
11158         (native_interpret_real): New function.
11159         (native_interpret_complex): New function.
11160         (native_interpret_vector): New function.
11161         (fold_view_convert_expr): New function to constant fold/evaluate
11162         a VIEW_CONVERT_EXPR of a suitable constant expression.
11163         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
11164         Change call of build1 to fold_build1 when constructing a
11165         VIEW_CONVERT_EXPR.
11166
11167 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
11168             Ulrich Weigand  <uweigand@de.ibm.com>
11169
11170         PR target/27006
11171         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
11172         to be even.
11173
11174 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
11175
11176         PR target/26459
11177         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
11178         optimize to lo_sum for DFmode if !TARGET_FPRS.
11179
11180 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
11181
11182         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
11183         delete_alias_info, compute_flow_sensitive_aliasing,
11184         group_aliases): Use VEC instead of VARRAY.
11185         * tree-ssa-structalias.c (update_alias_info): Likewise.
11186         * tree-ssa-structalias.h (alias_info): Change the type of
11187         processed_ptrs to VEC(tree,heap) *.
11188
11189 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
11190
11191         PR target/27060
11192         * config/sh/lib1funcs.h: New file, broken out of:
11193         * config/sh/lib1funcs.asm.
11194         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
11195         New macros.
11196         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
11197         * config/sh/lib1funcs-Os-4-200.asm: New file.
11198         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
11199         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
11200         (EXTRA_MULTILIB_PARTS): Include it.
11201         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
11202         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
11203         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
11204         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
11205         TARGET_SH2.
11206
11207 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
11208
11209         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
11210         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
11211         tpa_compact, root_var_init, type_var_init): Use VEC instead of
11212         VARRAY.
11213         * tree-ssa-live.h: Include vecprim.h.
11214         (tree_partition_associator_d): Change the type of
11215         first_partition to VEC(int,heap) *.
11216         (tpa_first_partition): Use VEC instead of VARRAY.
11217
11218         * Makefile.in (GTFILES): Move functions.h after tree.h.
11219         * function.c (reset_block_changes, record_block_change,
11220         check_block_change, free_block_changes): Use VEC instead of
11221         VARRAY.
11222         * function.h (function): Change the type of
11223         ib_boundaries_block to VEC(tree,gc) *.
11224         * tree-inline.c (copy_cfg_body): Initialize
11225         ib_boundaries_block to NULL instead of (varray_type) 0.
11226
11227 2006-04-12  Roger Sayle  <roger@eyesopen.com>
11228
11229         * expr.c (emit_group_store): Correct operand order in call to
11230         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
11231         a SUBREG_BYTE of zero.
11232
11233 2006-04-12  Richard Guenther  <rguenther@suse.de>
11234
11235         * profile.c (compute_branch_probabilities): Remove code
11236         encapsulated in !ir_type (), which are remanents of the
11237         removed RTL profiling code.
11238         * rtl-profile.c: Remove.
11239
11240 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
11241
11242         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
11243         magic NULL_RTX comment.
11244         (function_arg): Store entire fp arg to mem if any part should go
11245         on stack.
11246         (rs6000_arg_partial_bytes): Adjust for above change.
11247
11248 2006-04-11  Roger Sayle  <roger@eyesopen.com>
11249
11250         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
11251         if it hasn't been initialized by dwarf2out_init.
11252
11253 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
11254
11255         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
11256         symbolic constants in branch patterns.
11257
11258 2006-04-11  Roger Sayle  <roger@eyesopen.com>
11259
11260         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
11261
11262 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
11263
11264         PR rtl-optimization/27073
11265         * gcse.c (try_replace_reg): Revert last change.  Continue to search
11266         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
11267         on the former.
11268
11269 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
11270
11271         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
11272         aggregate types other than record and union types.
11273         (function_arg): Likewise.
11274         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
11275         small arrays.
11276         (function_value): In 64-bit mode, return objects that require it
11277         in FP registers.
11278
11279 2006-04-11  Roger Sayle  <roger@eyesopen.com>
11280
11281         * dwarf2out.c (premark_used_types): Remove problematic prototype.
11282
11283 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
11284
11285         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
11286
11287 2006-04-03  Jeff Law  <law@redhat.com>
11288
11289         PR/27087
11290         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
11291         alias information too.
11292
11293 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
11294
11295         * Makefile.in (gcc-cross): Add $(exeext) to target name.
11296
11297 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
11298
11299         PR/21391
11300         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
11301         (premark_used_types_helper): New.
11302         (premark_used_types): New.
11303         (gen_subprogram_die): Call premark_used_types.
11304         (prune_unused_types_walk): Do not prune perennial dies.
11305         * function.c (used_types_insert): New.
11306         * function.h (struct function): Add used_types_hash field.
11307         (used_types_insert): Add prototype.
11308         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
11309         * c-parser.c (c_parser_cast_expression): Save casted types in used
11310         types hash table.
11311
11312 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
11313
11314         PR target/26459
11315         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
11316         rs6000_explicit_options.float_gprs.
11317
11318 2006-04-10  Roger Sayle  <roger@eyesopen.com>
11319
11320         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
11321         from ix86_expand_vector_init_low_nonzero.  Take an additional
11322         one_var argument indicating which element is non-zero.  Support
11323         one_var != 0 for V4SFmode and V4SImode by permuting the result.
11324         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
11325         with one_var instead of ix86_expand_vector_init_low_nonzero.
11326
11327 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
11328
11329         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
11330         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
11331         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
11332         build/genextract.o): Depend on vecprim.h.
11333         * cfglayout.c, df-problems.c, function.c, genextract.c,
11334         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
11335         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
11336         vecprim.h.
11337         * vecprim.h: New.
11338
11339 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
11340
11341         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
11342         Declare VECs of this type.
11343         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
11344         (remove_children): Delete.
11345         (add_dwarf_attr): Use VEC routines.
11346         (add_AT_flag): Update for changes to add_dwarf_attr.
11347         (add_AT_int): Likewise.
11348         (add_AT_unsigned): Likewise.
11349         (add_AT_long_long): Likewise.
11350         (add_AT_vec): Likewise.
11351         (add_AT_string): Likewise.
11352         (add_AT_die_ref): Likewise.
11353         (add_AT_fde_ref): Likewise.
11354         (add_AT_loc): Likewise.
11355         (add_AT_loc_list): Likewise.
11356         (add_AT_addr): Likewise.
11357         (add_AT_lbl_id): Likewise.
11358         (add_AT_lineptr): Likewise.
11359         (add_AT_macptr): Likewise.
11360         (add_AT_offset): Likewise.
11361         (add_AT_range_list): Likewise.
11362         (get_AT): Use VEC_iterate.
11363         (remove_AT): Use VEC_ordered_remove.
11364         (free_die): Fold remove_children into here; have it use VEC_iterate.
11365         (print_die): Use VEC_iterate on attrs.
11366         (reverse_die_lists): Don't reverse attr lists.
11367         (die_checksum): Use VEC_iterate on attrs.
11368         (same_die_p): Likewise.
11369         (output_location_lists): Likewise.
11370         (build_abbrev_table): Likewise.
11371         (size_of_die): Likewise.
11372         (unmark_all_dies): Likewise.
11373         (output_abbrev_section): Likewise.
11374         (output_die): Likewise.
11375         (prune_unused_types_walk_attribs): Likewise.
11376
11377 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
11378
11379         * doc/install.texi (*-*-solaris2*): Point to the configure page.
11380
11381 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
11382
11383         PR debug/27057
11384         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
11385
11386 2006-04-09  Roger Sayle  <roger@eyesopen.com>
11387
11388         * expr.c (store_constructor): Don't bother clearing target if
11389         we're about to assign a vector to it using vec_init_optab.
11390
11391 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
11392
11393         * tree-ssa-alias.c (lhs_may_store_to): New function.
11394         (recalculate_used_alone): Handle LHS of calls.
11395
11396 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11397
11398         PR target/27034
11399         PR target/26508
11400         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
11401         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
11402         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
11403         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
11404         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
11405         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
11406         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
11407         stubs.  Add ".align 8" directives before all ".dword" directives.
11408         (GTHREAD_USE_WEAK): Revise comment.
11409         (TARGET_ATTRIBUTE_WEAK): Define.
11410         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
11411         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
11412         * stublib.c: New file.
11413
11414         PR target/26743
11415         PR target/11254
11416         PR target/10274
11417         * pa.md (cbranch patterns): Revise arguments used in calls to
11418         output_cbranch, output_bb and output_bvd.  Add long branch length
11419         attributes.
11420         (fbranch patterns): Handle long branches.
11421         (jump): Revise length check.  Revise arguments for output_lbranch call.
11422         Add long branch length attributes.
11423         (decrement_and_branch_until_zero): Add long branch length attributes.
11424         (output_movb, output_parallel_addb and output_parallel_movb patterns):
11425         Likewise.  Revise arguments for output_parallel_addb and
11426         output_parallel_movb calls.
11427         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
11428         output_parallel_movb and output_parallel_addb): Update prototypes.
11429         * pa.c (output_cbranch): Revise arguments.  Correct handling of
11430         nullification in long branches.
11431         (output_lbranch): Add new argument to control extraction of delay
11432         instruction.
11433         (output_bb): Handle long branches.
11434         (output_bvb, output_dbra, output_movb, output_parallel_movb,
11435         output_parallel_addb): Likewise.
11436
11437 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
11438
11439         PR rtl-optimization/27073
11440         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
11441         not REG_EQUIVs.
11442
11443 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
11444
11445         * tree.h (tree_memory_tag): Add old_used_alone.
11446         (SMT_OLD_USED_ALONE): New macro.
11447         * tree-ssa-alias.c (recalculate_used_alone): Stop
11448         marking things for renaming unnecessarily.
11449
11450 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
11451
11452         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
11453         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
11454         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
11455         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
11456         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
11457         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
11458         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
11459         spelling convensions.
11460         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
11461         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
11462         typos.  Follow spelling conventions.
11463
11464 2006-04-07  DJ Delorie  <dj@redhat.com>
11465
11466         * config/m32c/m32c.c (m32c_function_arg): Structures are always
11467         passed on the stack.
11468         (m32c_init_cumulative_args): When a function returns a structure,
11469         always pass the pointer to that return area on the stack.
11470         (m32c_function_arg_advance): Don't increment the parameter number
11471         if we're processing the returned structure pointer.
11472         (pushm_info): Reverse order of registers.
11473
11474 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
11475
11476         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
11477         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
11478         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
11479         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
11480         build_int_cst_type.
11481         * tree-chrec.c (chrec_fold_multiply_poly_poly,
11482         chrec_fold_multiply): Same.
11483         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
11484         force_expr_to_var_cost): Same.
11485         * tree-mudflap.c (mf_xform_derefs_1): Same.
11486         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
11487
11488 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
11489
11490         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
11491         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
11492         insn.
11493
11494 2006-04-07  Jan Hubicka  <jh@suse.cz>
11495
11496         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
11497
11498 2006-04-07  Richard Guenther  <rguenther@suse.de>
11499
11500         PR tree-optimization/26135
11501         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
11502         loads for store copy-prop.
11503         (copy_prop_visit_stmt): Likewise.
11504
11505 2006-04-05  Robert Millan  <robertmh@gnu.org>
11506
11507         * config/i386/linux.h: Add a comment to mark macros that are
11508         being overriden in config/k*bsd-gnu.h.
11509         * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
11510         DYNAMIC_LINKER.
11511         * config/knetbsd-gnu.h: Ditto.
11512
11513 2006-04-06  Jan Hubicka  <jh@suse.cz>
11514
11515         PR profile/20815
11516         PR profile/26399
11517         * coverage.c (coverage_checksum_string): Reorganize loop to not read
11518         after buffer.
11519
11520 2006-04-06  Mike Stump  <mrs@apple.com>
11521
11522         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
11523         for HAVE_nonlocal_goto to be consistent.
11524         (expand_builtin_nonlocal_goto): Likewise.
11525         (expand_builtin_strcmp): Use #ifdef instead of #if
11526         for HAVE_cmpstrnsi to be consistent.
11527
11528 2006-04-05  DJ Delorie  <dj@redhat.com>
11529
11530         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
11531         vs m32c.
11532
11533 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
11534
11535         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
11536         got-relative addressing for anything but SImode.
11537
11538         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
11539         even if the calling function doesn't modify them.
11540
11541 2006-04-05  Richard Guenther  <rguenther@suse.de>
11542
11543         PR tree-optimization/26919
11544         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
11545         to cgraph_estimate_size_after_inlining.
11546
11547 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
11548
11549         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
11550
11551 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
11552
11553         PR tree-optimization/26996
11554         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
11555         VECTOR_TYPE variables.
11556
11557 2006-04-05  Richard Guenther  <rguenther@suse.de>
11558
11559         PR tree-optimization/26763
11560         * fold-const.c (fold_comparison): Move folding of
11561         PTR + CST CMP PTR + CST ...
11562         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
11563
11564 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
11565
11566         * doc/install.texi (Prerequisites): Refine some wording on
11567         bootstrapping and ksh.
11568         Move the version numbers of DejaGnu here from the testing section
11569         and fix casing of names.
11570         Fix markup and clarify wording for autogen requirements.
11571         Refer to GCJ instead of just java.
11572         Refer to SVN instead of CVS.
11573         Describe diffutils as useful instead of necessary.
11574         (Downloading the source): Refer to SVN instead of CVS.
11575         Adjust a link to our web site accordingly.
11576         (Configuration): Fix casing of Bison.
11577         (Building): Refer to SVN instead of CVS.
11578         Fix a sentence on the use of Bison and remove duplicate (and
11579         incorrect) version number of Bison requirement.
11580         Remove one redundant list of packages needed for building.
11581         (Specific): Avoid reference to CVS.
11582
11583 2006-04-04  Eric Christopher  <echristo@apple.com>
11584
11585         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
11586         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
11587         (rs6000_handle_struct_attribute): New.
11588         (rs6000_ms_bitfield_layout_p): Ditto.
11589
11590 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
11591
11592         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
11593         NULL for dso parameter to atexit_common.
11594
11595 2006-04-04  Eric Christopher  <echristo@apple.com>
11596
11597         * config/i386/i386.c (machopic_output_stub): Output \t
11598         between instructions and operands.
11599
11600 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
11601
11602         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
11603         satisfies_constraint_[IL] to explicit tests on value.
11604
11605 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
11606
11607         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
11608         set_nb_iterations_in_loop): Use build_int_cst instead of
11609         build_int_cst_type.
11610         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
11611         build_int_cst instead of convert.
11612
11613 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
11614
11615         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
11616         new value 2 for incoming.
11617         * function.c (expand_function_start): Call struct_value_rtx
11618         with incoming as 2.
11619         * config/sparc/sparc.md: Comment updated_return.
11620         * config/sparc/sparc.opt: Add -mstd-struct-return option.
11621         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
11622         struct return if sparc_std_struct_return and incoming is 2.
11623         (print_operand): Do not adjust return if
11624         sparc_std_struct_return.
11625
11626 2006-04-04  Roger Sayle  <roger@eyesopen.com>
11627
11628         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
11629         convert in the middle-end.
11630         * expr.c (store_expr, store_constructor, get_inner_reference,
11631         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
11632         Likewise.
11633         * tree.c (build_range_type): Likewise.
11634
11635 2006-04-04  Tom Tromey  <tromey@redhat.com>
11636
11637         * doc/install.texi (Prerequisites): Mention jar.
11638
11639 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
11640
11641         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
11642         subsection.
11643
11644 2006-04-04  Matthias Klose  <doko@debian.org>
11645
11646         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
11647
11648         PR bootstrap/26764
11649         PR bootstrap/27334
11650         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
11651         strings.
11652
11653 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
11654
11655         * doc/extend.texi (Function Attributes): Rewrite visibility
11656         attribute documentation.
11657         * doc/invoke.texi (C++ Dialect Options): Rewrite
11658         -fvisibility-inlines-hidden documentation to describe something
11659         entirely different, although in practise compatible.
11660         (Code Gen Options): Warn about system headers in -fvisibility=
11661         documentation.
11662
11663         * doc/extend.texi (Other Builtins): Document that
11664         __builtin_nan is a compile-time constant only when its argument
11665         is valid.
11666
11667 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
11668
11669         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
11670         trying to remove TRUNCATE check if all bits outside the new mode
11671         are identical to the sign bit.
11672
11673 2006-04-03  Jeff Law  <law@redhat.com>
11674
11675         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
11676         and operand scanning in some common cases.
11677
11678 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
11679             Dale Johannesen  <dalej@apple.com>
11680
11681         PR target/19653
11682         * regclass.c (struct reg_pref): Update documentation.
11683         (regclass): Set prefclass to NO_REGS if memory is the best option.
11684         (record_reg_classes): Cope with a prefclass set to NO_REGS.
11685         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
11686         into account.  For non-registers, equate an empty preferred
11687         reload class to a `!' in the constraint; move the if clause to
11688         do so after those that reject the insn.
11689         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
11690         return NO_REGS.
11691         (find_dummy_reload): Likewise.
11692         * doc/tm.texi (Register Classes): Document what it means
11693         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
11694         * config/i386/i386.c (ix86_preferred_reload_class): Force
11695         using SSE registers (and return NO_REGS for floating-point
11696         constants) if math is done with SSE.
11697         (ix86_preferred_output_reload_class): New.
11698         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
11699         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
11700         * config/i386/i386.md: Remove # register preferences.
11701
11702 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
11703
11704         PR bootstrap/26992
11705         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
11706         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
11707         the type of nb_iter.
11708         (instantiate_parameters_1): Convert the operands before calling
11709         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
11710         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
11711
11712 2006-04-02  Roger Sayle  <roger@eyesopen.com>
11713
11714         * builtins.c (dummy_object): Use build_int_cst instead of convert.
11715         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
11716         instead of convert.
11717         * dojump.c (do_jump): Likewise.
11718         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
11719         * gimplify.c (gimple_boolify, gimplify_init_constructor,
11720         gimplify_boolean_expr): Likewise.
11721         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11722         * varasm.c (array_size_for_constructor): Likewise.
11723         * tree-object-size.c (compute_object_offset): Likewise.
11724
11725 2006-04-02  Roger Sayle  <roger@eyesopen.com>
11726
11727         PR middle-end/26977
11728         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
11729         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
11730
11731 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
11732
11733         PR tree-optimization/26939
11734         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
11735
11736 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
11737
11738         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
11739         at_stmt.  Convert the type of operands before calling
11740         build_polynomial_chrec.
11741         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
11742         add_to_evolution_1.
11743         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
11744         (instantiate_parameters_1): Convert the type of operands before calling
11745         build_polynomial_chrec.
11746         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
11747         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
11748         reset_evolution_in_loop): Insert asserts to check the types of the
11749         operands.
11750         (chrec_type): Moved...
11751         (eq_evolutions_p): Use operand_equal_p.
11752         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
11753         the types of the operands.
11754         (chrec_type): ...here.
11755         * tree-data-ref.c (create_data_ref): Convert the operands before
11756         calling chrec_replace_initial_condition.
11757         (same_access_functions, analyze_subscript_affine_affine,
11758         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
11759         (compute_subscript_distance, analyze_ziv_subscript,
11760         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
11761         analyze_miv_subscript): Convert the operands before calling
11762         chrec_fold_minus or chrec_fold_plus.
11763
11764 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
11765
11766         * tree-data-ref.c (compute_all_dependences): Use a pointer to
11767         the dependence_relations vector.
11768         (compute_data_dependences_for_loop): Adjust call to
11769         compute_all_dependences.
11770
11771 2006-04-01  Roger Sayle  <roger@eyesopen.com>
11772             Richard Henderson  <rth@redhat.com>
11773
11774         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
11775         gimple_boolify on the condition before calling gimplify_expr.
11776
11777 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
11778
11779         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
11780         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
11781         the frame size.  Update to use the new macros.
11782         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
11783         * config/xtensa/ieee754-df.S: Likewise.
11784
11785 2006-03-31  Richard Henderson  <rth@redhat.com>
11786
11787         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
11788         (make_edges): ... here.  Control fallthru creation with a local
11789         variable.  Do not play with fake edges.
11790         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
11791         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
11792         a boolean.
11793
11794 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
11795
11796         * dwarf2.h (DW64_CIE_ID): Define.
11797         * dwarf2out.c (DWARF_CIE_ID): Define.
11798         (output_call_frame_info): Output 0xffffffff before standard 8-byte
11799         length header.  Use DWARF_CIE_ID.
11800         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
11801         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
11802
11803 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
11804
11805         * config/sh/linux-atomic.asm: New file.
11806         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
11807
11808 2006-03-31  DJ Delorie  <dj@redhat.com>
11809
11810         * config/m32c/cond.md: Set condition flags properly throughout.
11811         * config/m32c/minmax.md: Likewise.
11812         * config/m32c/prologue.md: Likewise.
11813         * config/m32c/bitops.md: Likewise.
11814         * config/m32c/muldiv.md: Likewise.
11815         * config/m32c/mov.md: Likewise.
11816         * config/m32c/addsub.md: Likewise.
11817         * config/m32c/m32c.md: Likewise.
11818         * config/m32c/jump.md: Likewise.
11819         * config/m32c/shift.md: Likewise.
11820
11821         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
11822         conditionally output the pattern for this.
11823         * config/m32c/m32c.c (flags_needed_for_conditional): New.
11824         (m32c_compare_redundant): New.
11825         (m32c_output_compare): New.
11826         * config/m32c/m32c-protos.h (m32c_output_compare): New.
11827
11828         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
11829         dest, not src.  Allow other 4-byte modes.
11830
11831 2006-03-30  Denis Chertykov  <denisc@overta.ru>
11832
11833         * doc/md.texi: Refer to avr/constraints.md instead of
11834         avr/avr.h.
11835
11836 2006-03-30  Roger Sayle  <roger@eyesopen.com>
11837
11838         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
11839         signed vs. unsigned comparison failures on some hosts.
11840
11841 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
11842
11843         PR target/26459
11844         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
11845         change to FLOAT_REGS.
11846
11847         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
11848         (rs6000_override_options): Use it.
11849         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
11850         only for -mabi=spe/no-spe and -mabi=altivec.
11851
11852 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
11853
11854         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
11855         !Zdynamiclib.
11856
11857 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
11858
11859         * Makefile.in: Rename docdir to gcc_docdir.
11860
11861 2006-03-30  Roger Sayle  <roger@eyesopen.com>
11862
11863         PR target/17959
11864         * expr.c (emit_group_store): Optimize group stores into a pseudo
11865         register by using a paradoxical subreg to initialize the destination
11866         if the first or last member of the group specifies a "low part".
11867
11868 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
11869
11870         PR target/26734
11871         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
11872         * target.h (struct gcc_target.speculate_insn): Change type of the
11873         second parameter to 'int'.
11874         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
11875         the second operand of the DEPS_LIST.
11876         (copy_DEPS_LIST_list): Update reference to the second operand of the
11877         DEPS_LIST.
11878         * rtl.h (alloc_DEPS_LIST): Update signature.
11879         * sched-int.h (ds_t): Change typedef to 'int'.
11880         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
11881
11882 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
11883
11884         * haifa-sched.c (try_ready): Change condition to restore
11885         non-speculative pattern of the instruction.
11886         (process_insn_depend_be_in_spec): Code to keep probability of the
11887         speculative dependence non-decreasing.
11888
11889 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
11890
11891         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
11892         (single_move_for_movmem): ... this. Also change all uses.
11893         (bfin_expand_strmov): Renamed to...
11894         (bfin_expand_movmem): ... this. Also change all uses.
11895         * config/bfin/bfin.md (movstrsi): Renamed to...
11896         (movstrsi): ...this.
11897
11898 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
11899
11900         PR tree-optimization/26830
11901
11902         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
11903         (copy_prop_visit_stmt): Remove write-only variable ann.
11904         (init_copy_prop): Check variable loop depth here.  Do not simulate
11905         memory-tag and virtual operand PHIs except for store copy prop.
11906
11907 2006-03-30  Richard Guenther  <rguenther@suse.de>
11908
11909         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
11910         variants with double arguments.
11911
11912 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
11913
11914         * genpreds.c (write_tm_constrs_h): Delete variable p.
11915         * genconditions.c (write_header): Add tm-constrs.h to included
11916         headers.
11917         * genpeep.c (main): Add toplev.h to included headers.
11918         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
11919         (build/genpeep.o): Add toplev.h dependency.
11920         * config/rs6000/constraints.md: Add "W" constraint.
11921
11922 2006-03-29  Roger Sayle  <roger@eyesopen.com>
11923
11924         * stor-layout.c (mode_for_size_tree): Remove restiction on type
11925         sizes by correctly testing whether the size fits a host integer.
11926         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
11927         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
11928         SImode range for the default sizetype and bitsizetype.
11929
11930 2006-03-29  Roger Sayle  <roger@eyesopen.com>
11931
11932         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
11933         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
11934         quickly if the argument is already of the correct type.
11935         Call fold_build1 instead of build1.  Tidy up blank lines.
11936
11937 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
11938
11939         * genemit.c (main): Add tm-constrs.h to included headers.
11940         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
11941         * genpeep.c (main): Add tm-constrs.h to included headers.
11942         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
11943         (write_tm_constrs_h): this and write complete file.
11944         (write_tm_preds_h): Do not emit satisfies_constraint fns.
11945         (write_insn_preds_c): Add tm-constrs.h to included headers.
11946         (gen_constrs): New variable.
11947         (parse_option): Parse "-c".
11948         (main): Invoke write_tm_constrs_h.
11949         * genrecog.c (write_header): Add tm-constrs.h to included headers.
11950         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
11951         (object_out_file): Add tm-constrs.h dependency.
11952         (insn-emit.o): Same.
11953         (insn-output.o): Same.
11954         (insn-peep.o): Same.
11955         (insn-preds.o): Same.
11956         (insn-recog.o): Same.
11957         (tm-constsr.h): New target.
11958         (s-constrs-h): New target.
11959
11960         * config/rs6000/constraints.md: New file.
11961         * config/rs6000/rs6000.c: Include tm-constrs.h.
11962         (num_insn_constant_wide): Convert to satisfies_constraint.
11963         (rs6000_rtx_costs): Convert to satisfies_constraint.
11964         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
11965         (CONST_OK_FOR_LETTER_P): Delete.
11966         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11967         (EXTRA_CONSTRAINT): Delete.
11968         (EXTRA_MEMORY_CONSTRAINT): Delete.
11969         (EXTRA_ADDRESS_CONSTRAINT): Delete.
11970         * config/rs6000/predicates.md: Convert to satisfies_constraint.
11971         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
11972         satisfies_constraint.
11973
11974         * config/i386/i386.c: Include tm-constrs.h.
11975
11976 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
11977
11978         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
11979         * tree-data-ref.c (find_data_references_in_loop,
11980         compute_data_dependences_for_loop): Use pointers to VEC.
11981         (analyze_all_data_dependences): Adjust calls.
11982         * tree-data-ref.h (find_data_references_in_loop,
11983         compute_data_dependences_for_loop): Adjust declarations.
11984         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
11985         compute_data_dependences_for_loop.
11986
11987 2006-03-29  Paul Brook  <paul@codesourcery.com>
11988
11989         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
11990         (movdf_vfp): Ditto.
11991
11992 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
11993
11994         PR tree-optimization/26859
11995         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
11996         division by zero.
11997         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
11998         for the step after fold_convert.
11999
12000 2006-03-29  Paul Brook  <paul@codesourcery.com>
12001
12002         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
12003         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
12004
12005 2006-03-29  Paul Brook  <paul@codesourcery.com>
12006
12007         PR middle-end/23623
12008         * targhooks.c (default_narrow_bitfield): New fuction.
12009         * targhooks.h (default_narrow_bitfield): add prototype.
12010         * target.h (gcc_target): Add narrow_volatile_bitfield.
12011         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
12012         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
12013         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
12014         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
12015
12016 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
12017
12018         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
12019         tmake_file.
12020         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
12021         (NR_C_MODES): Add TDmode, DDmode and SDmode.
12022         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
12023         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
12024         (s390_function_arg_float): Allow SDmode and DDmode values to be
12025         passed in floating point registers.
12026         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
12027         check with SCALAR_FLOAT_MODE_P.
12028         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
12029
12030 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
12031
12032         PR tree-optimization/25985
12033         * tree-ssa-loop-niter.c (number_of_iterations_le,
12034         number_of_iterations_ne): Make comments more precise.
12035         (number_of_iterations_cond): Add only_exit argument.  Use the
12036         fact that signed variables do not overflow only when only_exit
12037         is true.
12038         (loop_only_exit_p): New.
12039         (number_of_iterations_exit): Pass result of loop_only_exit_p to
12040         number_of_iterations_cond.
12041
12042 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
12043
12044         PR tree-optimization/26643
12045         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
12046         bit_field_refs.
12047
12048 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
12049
12050         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
12051         (divsi3_i4_int): Likewise.
12052
12053 2006-03-28  Roger Sayle  <roger@eyesopen.com>
12054
12055         * expr.c (emit_group_store): Only create a new pseudo reg if the
12056         quantity it needs to hold isn't already a suitable pseudo.
12057
12058 2006-03-28  Jeff Law  <law@redhat.com>
12059
12060         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
12061         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
12062
12063 2006-03-28  Roger Sayle  <roger@eyesopen.com>
12064
12065         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
12066         the equivalent ~X & Y, and the symmetry related transformations.
12067         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
12068         ~X & Y, and symmetry related transforms.
12069
12070 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
12071
12072         Revert my 2006-03-27 patches.
12073
12074 2006-03-28  Roger Sayle  <roger@eyesopen.com>
12075
12076         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
12077         ~(T1)X, when T1 and T2 are integer types of the same precision
12078         and (T2)X isn't an extension.
12079
12080 2006-03-28  Jeff Law  <law@redhat.com>
12081
12082         PR tree-optimization/26796
12083         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
12084         need EH edge cleanups rather than purging them immediately.
12085         (eliminate_degenerate_phis): Handle queued EH cleanups.
12086
12087 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
12088
12089         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
12090         from parent_var.
12091
12092 2006-03-27  Roger Sayle  <roger@eyesopen.com>
12093
12094         PR middle-end/22524
12095         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
12096         cast BIT_NOT_EXPR operand to the correct type.
12097
12098 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
12099
12100         * tree-loop-linear.c: Don't include varray.h.
12101         (gather_interchange_stats, try_interchange_loops,
12102         linear_transform_loops): Use VEC instead of VARRAY.
12103         * lambda-mat.c: Don't include varray.h.
12104         * tree-chrec.c: Same.
12105         * lambda-trans.c: Same.
12106         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
12107         VEC instead of VARRAY.
12108         * tree-vectorizer.h: Idem.
12109         * tree-data-ref.c (dump_data_references,
12110         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
12111         initialize_data_dependence_relation, finalize_ddr_dependent,
12112         compute_all_dependences, find_data_references_in_loop,
12113         compute_data_dependences_for_loop, analyze_all_data_dependences,
12114         free_dependence_relation, free_dependence_relations,
12115         free_data_refs): Idem.
12116         * tree-data-ref.h (data_reference_p, subscript_p): New.
12117         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
12118         VEC instead of VARRAY.
12119         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
12120         (find_data_references_in_loop, compute_data_dependences_for_loop,
12121         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
12122         dump_data_dependence_relations, free_dependence_relations,
12123         free_data_refs): Adjust declaration.
12124         (lambda_transform_legal_p): Move declaration here...
12125         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
12126         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
12127         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
12128         vect_analyze_data_refs): Use VEC instead of VARRAY.
12129         * lambda.h (lambda_transform_legal_p): ...from here.
12130         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
12131         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
12132         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
12133         tree-chrec.o): Don't depend on VARRAY_H.
12134
12135 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
12136
12137         * rtl.def (Copyright): Update date.
12138         (DEPS_LIST): Change type of the second operand to 'int'.
12139         * target.h (Copyright): Update date.
12140         (struct gcc_target.speculate_insn): Change type of the second parameter
12141         to 'int'.
12142         * lists.c (Copyright): Update date.
12143         (alloc_DEPS_LIST): Change signature.  Update reference to the second
12144         operand of the DEPS_LIST.
12145         (copy_DEPS_LIST_list): Update reference to the second operand of the
12146         DEPS_LIST.
12147         * rtl.h (Copyright): Update date.
12148         (alloc_DEPS_LIST): Update signature.
12149         * sched-int.h (Copyright): Update date.
12150         (ds_t): Change typedef to 'int'.
12151         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
12152
12153 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
12154
12155         * haifa-sched.c (Copyright): Update date.
12156         (try_ready): Change condition to restore non-speculative pattern
12157         of the instruction.
12158         (process_insn_depend_be_in_spec): Code to keep probability of the
12159         speculative dependence non-decreasing.
12160
12161 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
12162
12163         * regrename.c (replace_oldest_value_addr): Initialize a variable to
12164         shut up the compiler.
12165
12166 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
12167
12168         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
12169         to use lib prefix for target.
12170         ($(T)libic_invalidate_array_4-200.a): Likewise.
12171         ($(T)libic_invalidate_array_4a.a): Likewise.
12172
12173 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
12174             J"orn Rennecke <joern.rennecke@st.com>
12175
12176         * superh.opt: New file.
12177         * sh.c (boardtype, osruntime): Remove.
12178         * superh.h (SUBTARGET_OPTIONS): Remove.
12179         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
12180
12181         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
12182         arguments with ^ and/or [].
12183
12184         * config.gcc (sh-*-*): Add quoting to account for quirk of
12185         Solaris /bin/sh.
12186         Replace == with = in enable_incomplete_targets test.
12187
12188         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
12189         with MASK_LITTLE_ENDIAN.
12190
12191         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
12192         * config/sh/sh.opt: Added to some comments.
12193         * config/sh/superh.h: Removed some chaff.
12194
12195         * config/sh/sh.opt: Add m4-[1234]00* options.
12196         * config/sh/sh.c (sh_handle_option): Likewise.
12197         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
12198         (ic_invalidate_array_4-100.o): New rule.
12199         ($(T)libic_invalidate_array_4-100.a): Likewise.
12200         (ic_invalidate_array_4-200.o): Likewise.
12201         ($(T)libic_invalidate_array_4-200.a): Likewise.
12202         (ic_invalidate_array_4a.o): Likewise.
12203         ($(T)libic_invalidate_array_4a.a): Likewise.
12204         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
12205         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
12206         m4-200*, and m4a*.
12207         * config/sh/crt1.asm: Merged in profiling code.
12208         * config/sh/superh.h (STARTFILE_SPEC): Override.
12209         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
12210         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
12211         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
12212
12213         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
12214         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
12215         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
12216
12217         * sh.opt (mpretend-cmove): New option.
12218         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
12219         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
12220         (movsicc): Add TARGET_PRETEND_CMOVE code.
12221
12222 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
12223
12224         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
12225         s390_class_max_nregs): New function prototypes.
12226         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
12227         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
12228         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
12229         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
12230
12231 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
12232
12233         * dwarf2out.c (add_location_or_const_value_attribute): Call
12234         tree_add_const_value_attribute if nothing else works.
12235         (reference_to_unused): New.
12236         (rtl_for_decl_init): Use reference_to_unused to decide whether
12237         to output an initializer.
12238
12239 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
12240
12241         PR target/26459
12242         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
12243         peephole removing spe frob_di_df_2.
12244
12245 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
12246
12247         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
12248         (subscript_dependence_tester_1): Declared.
12249         (print_dir_vectors, print_dist_vectors): New.
12250         (debug_data_dependence_relation): New.
12251         (dump_data_dependence_relation): Print more details.
12252         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
12253         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
12254         (save_dist_v, save_dir_v, add_outer_distances,
12255         build_classic_dist_vector_1): New.
12256         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
12257         Don't test for lambda_vector_lexico_pos.
12258         (same_access_functions, add_multivariate_self_dist,
12259         add_other_self_distances, dir_from_dist): New.
12260         (build_classic_dir_vector): Replace implementation almost identical to
12261         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
12262         dir_from_dist.
12263         (subscript_dependence_tester_1): New.
12264         (subscript_dependence_tester): Handle the lexicographically negative
12265         distance vectors by recomputing the dependence relation.
12266         (compute_affine_dependence): Remove parameter loop_nest_depth.
12267         (compute_self_dependence): Don't call compute_subscript_distance.
12268         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
12269         Add a parameter for the loop_nest.
12270         (find_loop_nest_1, find_loop_nest): New.
12271         (compute_data_dependences_for_loop): Compute the loop nest, and give
12272         up if the nest is not well formed.
12273         * tree-data-ref.h (loop_p): New.
12274         (struct data_dependence_relation): Replace size_vect field with
12275         loop_nest, a vec of loops.
12276         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
12277         (DDR_LOOP_NEST): New.
12278         (print_dir_vectors, print_dist_vectors,
12279         debug_data_dependence_relation): Declared.
12280         (index_in_loop_nest): New.
12281         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
12282         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
12283         distance.
12284
12285 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
12286
12287         * simplify-rtx.c (simplify_relational_operation): Call
12288         simplify_relational_operation_1 even if mode is VOIDmode.
12289
12290 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
12291
12292         PR tree-optimization/26804
12293         * tree.h (DECL_CALL_CLOBBERED): New macro.
12294         (tree_decl_common): Add call_clobbered_flag.
12295         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
12296         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
12297         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
12298         (mark_non_addressable): Ditto.
12299         * tree-ssa.c (verify_call_clobbered): New function.
12300         (verify_alias_info): Use it.
12301         * tree-pass.h (pass_reset_cc_flags): New prototype.
12302         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
12303         (reset_cc_flags): New function.
12304         * passes.c (init_optimization_passes): Call reset_cc_flags after
12305         initializing referenced_vars.
12306
12307 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
12308             Roger Sayle  <roger@eyesopen.com>
12309
12310         PR middle-end/26717
12311         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
12312         to 1.0 for non-real operands. Implement A / A optimization for
12313         complex operands.
12314
12315 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
12316
12317         * config/i386/i386.c (size_cost): Correct the comment for
12318         cost of storing fp registers.
12319         (i386_cost): Likewise.
12320         (i486_cost): Likewise.
12321         (pentium_cost): Likewise.
12322         (pentiumpro_cost): Likewise.
12323         (k6_cost): Likewise.
12324         (athlon_cost): Likewise.
12325         (k8_cost): Likewise.
12326         (pentium4_cost): Likewise.
12327         (nocona_cost): Likewise.
12328         (generic64_cost): Likewise.
12329         (generic32_cost): Likewise.
12330
12331 2006-03-24  Denis Chertykov  <denisc@overta.ru>
12332
12333         * config/avr/avr-protos.h (extra_constraint): Delete.
12334         (extra_constraint_Q): New declaration.
12335         * config/avr/constraints.md: New file.
12336         * config/avr/avr.md: Include it.
12337         (REG_X, REG_Y, REG_Z, REG_W): New constants.
12338         (TMP_REGNO, ZERO_REGNO): Likewise.
12339         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
12340         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
12341         (extra_constraint): Delete.
12342         (extra_constraint_Q): Test for memory constraint 'Q'.
12343         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
12344         (REG_CLASS_FROM_LETTER): Delete.
12345         (CONST_OK_FOR_LETTER_P): Delete.
12346         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12347         (EXTRA_CONSTRAINT): Delete.
12348         (TMP_REGNO): Delete.
12349         (ZERO_REGNO): Delete.
12350
12351 2006-03-24  Jeff Law  <law@redhat.com>
12352
12353         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
12354         directly.  Call mark_new_vars_to_rename slightly earlier.
12355
12356 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
12357
12358         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
12359         (is_cxx): Likewise.
12360         (gen_compile_unit_die): Use new language types for Objective-C and
12361         Objective-C++.
12362         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
12363         DW_LANG_C_plus_plus.
12364
12365         PR 26793
12366         * config/t-darwin (crt3.o): Work around bug 26840.
12367         * config/darwin-crt3.c: Rewrite.
12368         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
12369
12370 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
12371
12372         * doc/invoke.texi: Document -femit-class-debug-always
12373         * common.opt: Add -femit-class-debug-always.
12374
12375 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
12376
12377         * config/s390/s390.c (s390_decompose_address): Allow SImode for
12378         index and base register.
12379         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
12380         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
12381         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
12382         REGNO_OK_FOR_INDEX_P.
12383         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
12384         ADDR_REGNO_P.
12385         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
12386         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
12387         REG_OK_FOR_BASE_P): Definitions removed.
12388
12389 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
12390
12391         PR middle-end/26611
12392         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
12393         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
12394         set yet or weren't marked as local yet.
12395
12396 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
12397
12398         * regrename.c (scan_rtx_address): Initialize a variable to shut up
12399         the compiler.
12400
12401 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
12402
12403         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
12404         (rs6000_legitimate_small_data_p): Delete.
12405         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
12406         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
12407         and make static.  Add forward declaration.  Update uses.
12408         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
12409         of offsettable_memref_p.
12410         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
12411         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
12412
12413 2006-03-24  Jeff Law  <law@redhat.com>
12414
12415         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
12416         around bug in immediate-use iterator.
12417
12418 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
12419
12420         PR target/26607
12421         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
12422         or __LITTLE_ENDIAN__.
12423
12424 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
12425
12426         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
12427         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
12428         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
12429         * config/sh/sh.opt (mdiv=): Amend description.
12430         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
12431         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
12432         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
12433         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
12434         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
12435         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
12436         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
12437         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
12438         TARGET_DIVIDE_CALL_FP.
12439
12440 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
12441
12442         * haifa-sched.c (choose_ready): Fix type of the local variable.
12443         Move local variables.  Add comment.
12444         (check_reg_live): Change signature.  Make callable from debugger.
12445         * sched-int.h (check_reg_live): Update signature.
12446         * sched-ebb.c (check_reg_live): Update parameters.
12447         * sched-rgn.c (check_reg_live): Ditto.
12448         (region_head_or_leaf_p): Check pointer before dereferencing.
12449         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
12450         before reload on optimization levels below 1.
12451
12452 2006-03-23  Richard Henderson  <rth@redhat.com>
12453
12454         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
12455         tls symbols.
12456
12457         PR target/26347
12458         * config/alpha/predicates.md (local_symbolic_operand): Reject
12459         weak symbols.
12460
12461 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
12462
12463         PR tree-opt/26795
12464         * tree-ssa-pre.c (create_value_expr_from): Don't reject
12465         expressions which have overflowed constants.
12466
12467 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
12468
12469         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
12470
12471 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
12472
12473         * cfgloopmanip.c (create_loop_notes): Removed.
12474         * final.c (final_scan_insn): Do not handle loop notes.
12475         * jump.c (squeeze_notes): Ditto.
12476         * cfglayout.c (skip_insns_after_block,
12477         duplicate_insn_chain): Ditto.
12478         * cfgcleanup.c (rest_of_handle_jump2): Do not call
12479         create_loop_notes.
12480         * cfgloop.h (create_loop_notes): Declaration removed.
12481
12482 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
12483
12484         * varasm.c (output_constant_pool): Restore fnname and fndecl
12485         arguments.
12486         (assemble_start_function): Adjust call accordingly.
12487         (assemble_end_function): Likewise.
12488
12489 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
12490
12491         PR mudflap/26789
12492         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
12493
12494         PR mudflap/26790
12495         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
12496
12497 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
12498
12499         PR driver/22600
12500         * system.h (ICE_EXIT_CODE): New macro.
12501         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
12502         (diagnostic_action_after_output): Likewise.
12503         * gcc.c (fatal_ice): New function.
12504         (execute): Use it instead of fatal.
12505         (fancy_abort): Likewise.
12506         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
12507
12508 2006-03-22  Jeff Law  <law@redhat.com>
12509
12510         * loop-unroll.c (analyze_iv_to_split_insn): Handle
12511         iv_analyze_result returning false.
12512
12513 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
12514
12515         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
12516
12517 2006-03-22  Richard Henderson  <rth@redhat.com>
12518
12519         PR middle-end/26084
12520         * except.c (duplicate_eh_regions_0): New.
12521         (duplicate_eh_region_1): Duplicate the children of the node as
12522         well as the node itself.  Link them up properly.
12523         (duplicate_eh_region_2): Merge into ...
12524         (duplicate_eh_regions): ... here.  Take copy_region argument, and
12525         copy only a sub-tree if asked.  Simplify copying and fixup.
12526         (eh_region_outer_p): New.
12527         * except.h (duplicate_eh_regions): Update decl.
12528         (eh_region_outer_p): Declare.
12529         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
12530         (lower_omp_master): Likewise.
12531         (lower_omp_ordered): Likewise.
12532         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
12533         (move_stmt_r): Use it to remap labels.  Handle recursion vs
12534         remap_decls_p properly.
12535         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
12536         (find_outermost_region_in_block): New.
12537         (new_label_mapper): New.
12538         (move_sese_region_to_fn): Copy eh information to the new function
12539         properly.
12540         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
12541         argument.
12542         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
12543         number.
12544
12545 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
12546
12547         * doc/md.texi (-mshared): Mention that -mshared code can be linked
12548         into shared libraries.
12549
12550 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
12551
12552         * doc/md.texi: Refer to i386/constraints.md instead of
12553         i386/predicates.md.
12554         * config/i386/constraints.md: New file, extracted from...
12555         * config/i386/predicates.md: ...here.
12556         * config/i386/i386.md: Include constraints.md.
12557
12558 2006-03-21  Jason Merrill  <jason@redhat.com>
12559
12560         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
12561
12562         PR middle-end/20297
12563         * expr.c (init_block_move_fn): Force default visibility.
12564         (init_block_clear_fn): Likewise.
12565         * builtins.c (expand_builtin_fork_or_exec): Likewise.
12566         * targhooks.c (default_external_stack_protect_fail): Likewise.
12567
12568 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
12569
12570         * config/mips/predicates.md (const_call_insn_operand): Allow direct
12571         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
12572         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
12573         Use TARGET_OLDABI instead of !TARGET_NEWABI.
12574         (loadgp): Use mips_current_loadgp_style.
12575         (loadgp_noshared): New pattern.
12576         (sibcall_internal): Use MIPS_CALL.
12577         (sibcall_value_internal): Likewise.
12578         (sibcall_value_multiple_internal): Likewise.
12579         (call_internal): Likewise.
12580         (call_value_internal): Likewise.
12581         (call_value_multiple_internal): Likewise.
12582         (call_split): Use MIPS_CALL and add an 'S' constraint.
12583         (call_value_split): Likewise.
12584         (call_value_multiple_split): Likewise.
12585         * config/mips/mips.opt (-mabicalls): Tweak docstring.
12586         (-mshared): New option.
12587         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
12588         (mips_current_loadgp_style): Declare.
12589         * config/mips/mips.c (mips_classify_symbol): Avoid using
12590         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
12591         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
12592         TARGET_ABSOLUTE_ABICALLS.
12593         (override_options): Adjust comments.  Improve the warning that is
12594         issued when -mabicalls and -G are used together.
12595         (mips_file_start): Remove comment.
12596         (mips_current_loadgp_style): New function.
12597         (mips_gnu_local_gp): New variable.
12598         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
12599         LOADGP_ABSOLUTE.
12600         (mips_output_function_prologue): Use mips_current_laodgp_style.
12601         (mips_expand_prologue): Call mips_emit_loadgp before emitting
12602         the cprestore instruction.
12603         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
12604         live for TARGET_ABSOLUTE_ABICALLS.
12605         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
12606         (ASM_SPEC): Pass down -mshared and -mno-shared.
12607         (MIPS_CALL): New macro.
12608         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
12609         definition.
12610         * doc/invoke.texi (-mabicalls): Update documentation.
12611         (-mshared): Document.
12612
12613 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
12614
12615         * config/ia64/unwind-hpux.c: New file.
12616         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
12617
12618 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
12619
12620         PR libgomp/26384
12621         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
12622
12623 2006-03-21  Jeff Law  <law@redhat.com>
12624
12625         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
12626         type conversions of a VR_VARYING source to a wider type.
12627
12628 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
12629
12630         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
12631         tm_file on Solaris 10 and later.
12632         (sparc64-*-solaris2*): Likewise.
12633         (sparc-*-solaris2*): Likewise.
12634         * config/sol26.h: Rename to config/sol2-6.h.
12635         * config/sol2-10.h: New file.
12636
12637 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
12638
12639         PR tree-opt/26781
12640         * tree-ssa-pre.c (create_component_ref_by_pieces):
12641         Handle STRING_CST.
12642
12643 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
12644
12645         PR c++/26690
12646         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
12647         return it immediately.
12648
12649 2006-03-21  Michael Matz  <matz@suse.de>
12650
12651         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
12652         New members.
12653         (remove_arc, add_arc): Update num_out_arcs member.
12654         (set_out_arc_insns_equiv_num): Returns nothing instead of number
12655         of out arcs.
12656         (cache_presence): New function.
12657         (compare_states_for_equiv): New function.
12658         (state_is_differed): Don't take number of outargs, adjust callers.
12659         Use new invariant for speeding up.
12660         (init_equiv_class): Create initial classes based on sorted
12661         input.
12662         (partition_equiv_class): Don't track out_arcs_num.
12663         (evaluate_equiv_classes): Call cache_presence on all states and
12664         sort them.
12665
12666 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
12667
12668         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
12669         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
12670         (bfin_valid_reg_p): Test for pseudos explicitly and use only
12671         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
12672         callers changed.
12673         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
12674         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
12675         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
12676         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12677         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
12678         macros.
12679         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
12680         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
12681         (REGNO_REG_CLASS): ARGP is in PREGS.
12682         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
12683         IREGS.
12684         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
12685         to deal with those addresses.
12686         * addresses.h: New file.
12687         * caller-save.c: Include "addresses.h".
12688         (init_caller_save): Use new base_reg_class function.
12689         * rtl-factoring.c: Include "addresses.h".
12690         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
12691         * recog.c: Include "addresses.h".
12692         (preprocess_constraints): Use new base_reg_class function.
12693         * regrename.c: Include "addresses.h".
12694         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
12695         functions.  Keep track of a new var INDEX_CODE to compute valid
12696         classes.
12697         (replace_oldest_value_addr): Likewise.
12698         (replace_oldest_value_mem): Use base_reg_class.
12699         * reload.c: Include "addresses.h".
12700         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
12701         (find_reloads): Use new base_reg_class function.
12702         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
12703         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
12704         all callers and prototype changed.
12705         * reload1.c: Include "addresses.h".
12706         (maybe_fix_stack_asms): Use base_reg_class.
12707         * regclass.c: Include "addresses.h".
12708         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
12709         (init_reg_autoinc): Use new base_reg_class function.
12710         (record_reg_classes): Likewise.
12711         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
12712         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
12713         Use new args to compute necessary class.
12714
12715         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
12716         regrename.o, rtl-factoring.o): Update dependencies.
12717         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
12718         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
12719         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
12720         REG_OK_FOR_INDEX_P): Delete documentation.
12721
12722 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
12723
12724         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
12725         from V7 to V9 for Solaris 7 and above.
12726
12727 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
12728
12729         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
12730         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
12731         argument pointers may not alias any other storage.
12732         * common.opt: Define option -fargument-noalias-anything.
12733         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
12734         alias semantics is specified by flag_argument_noalias > 2.
12735
12736 2006-03-20  Jeff Law  <law@redhat.com>
12737
12738         * tree-pass.h (pass_phi_only_copy_prop): Delete.
12739         (pass_phi_only_cprop): Declare.
12740         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
12741         with phi_only_cprop
12742         * tree-ssa-dom.c (degenerate_phi_result): New function.
12743         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
12744         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
12745         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
12746         (eliminate_degenerate_phis): Likewise.
12747         (pass_phi_only_cprop): New pass descriptor.
12748         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
12749         support code.  Callers updated.
12750         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
12751         (store_copy_prop): Likewise.
12752         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
12753
12754 2006-03-20  Jason Merrill  <jason@redhat.com>
12755
12756         PR c++/21764
12757         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
12758         (push_visibility, pop_visibility): Likewise.
12759         * c-pragma.h: Declare them.
12760
12761 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12762
12763         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
12764
12765         * config/sh/sh.c (find_regmode_weight): Change the type of the first
12766         parameter and use get_ebb_head_tail.
12767         (sh_md_init_global): Adjust uses of find_regmode_weight.
12768
12769 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
12770
12771         * function.h (struct function) <x_tail_recursion_reentry>:
12772         Rename to x_stack_check_probe_note.
12773         (tail_recursion_reentry): Rename to stack_check_probe_note.
12774         * function.c: Replace tail_recursion_reentry with
12775         stack_check_probe_note everywhere.
12776         (expand_function_start): Only emit a note for
12777         stack_check_probe_note with -fstack-protect.
12778         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
12779
12780         * emit-rtl.c (remove_unnecessary_notes): Remove.
12781         (pass_remove_unnecessary_notes): Remove.
12782         * rtl.h (remove_unnecessary_notes): Remove prototype.
12783         * final.c (final_start_function): Don't call remove_unnecessary_notes.
12784         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
12785         * passes.c (pass_remove_unnecessary_notes): Don't run it.
12786
12787 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
12788
12789         PR tree-opt/26629
12790         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
12791         (valid_in_set): Handle ARRAY_REF.
12792         Change "if min_variant or VH" to asserts.
12793         (create_component_ref_by_pieces): Handle ARRAY_REF.
12794         (create_expression_by_pieces): Likewise.
12795         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
12796
12797 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
12798
12799         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
12800         is operand of switch, not str[0].
12801
12802 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
12803
12804         * config/rs6000/rs6000.c (rs6000_handle_option): Use
12805         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
12806
12807 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
12808
12809         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
12810         end of insn_extra_address_constraint declaration.
12811
12812 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
12813
12814         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
12815         (no-sum-in-toc): Same.
12816         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
12817         variables.
12818         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
12819         NO_FP_IN_TOC for -fPIC instead of mask.
12820
12821         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
12822         (BOOT_LDFLAGS): Delete.
12823         (LDFLAGS): Delete.
12824         * config/rs6000/t-aix52: Same.
12825
12826         * config/rs6000/rs6000.md (store_multiple_power): Delete.
12827         (stmsi[345678]_power): New.
12828
12829 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
12830
12831         * config/ia64/ia64.opt: Add empty line to end of file.
12832
12833 2006-03-17  Richard Guenther  <rguenther@suse.de>
12834
12835         PR middle-end/26721
12836         * builtins.c (get_pointer_alignment): For component style references
12837         adjust alignment to the component type alignment.  Make sure
12838         to adjust alignment for component access of constants.
12839
12840 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
12841
12842         * config/rs6000/rs6000.md (strlensi): Emit barrier after
12843         unconditional jump.
12844
12845 2006-03-17  Paul Brook  <paul@codesourcery.com>
12846
12847         * doc/install.texi: Docuemnt --with-mode.
12848         * config.gcc: Add --with-mode for arm*-*-*.
12849         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
12850
12851 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
12852
12853         * sh.c (max_labelno_before_reorg): New variable.
12854         (sh_reorg): Initialize it.
12855         (find_barrier): Check max_labelno_before_reorg before using
12856         label_to_alignment.  Take length of explicit alignment insns
12857         into account.  When seeing a UNSPECV_CONST_END, return it.
12858
12859         * sh.c (fixup_mova): Set mode of affected label to QImode.
12860         (untangle_mova): New function.
12861         (find_barrier): Use it.  Check mode of label before decrementing
12862         num_mova.
12863         (sh_reorg): Likewise.
12864         Set mode of all insns back to VOIDmode.
12865
12866         * sh.c (MOVA_LABELREF): New macro.
12867         (mova_p, fixup_mova, sh_reorg): Use it.
12868         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
12869         ADDR_DIFF_VEC matches mova.
12870
12871 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
12872
12873         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
12874         with ATTRIBUTE_UNUSED.
12875
12876 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
12877
12878         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
12879         pointer, instead of assuming it is possible to derive the
12880         correct args size from a call insn.
12881
12882 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12883
12884         * rtl.h (CONST_INT_P): Define.
12885         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
12886         instead of GET_CODE(x) == CONST_INT.
12887         (vax_rtx_costs): Likewise.
12888         (vax_output_int_move): Likewise.
12889         (vax_output_int_add): Likewise.
12890         (legitimate_constant_address_p): Likewise.
12891         (index_term_p): Likewise.
12892         * config/vax/vax.h (PRINT_OPERAND): Likewise.
12893         * config/vax/vax.md (and<mode>3): Likewise.
12894         (ashrsi3): Likewise.
12895         (extv): Likewise.
12896         (movstricthi): Likewise.
12897         (movstrictqi): Likewise.
12898         (rotrsi3): Likewise.
12899         (five unnamed insns): Likewise.
12900
12901 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
12902
12903         * doc/tm.texi (SDB and DWARF): Add extra parameter to
12904         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
12905         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
12906         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
12907         Pass to ASM_OUTPUT_DWARF_OFFSET.
12908         * dwarf2out.c (debug_frame_section): New.
12909         (output_call_frame_info): Use debug_frame_section.  Pass it to
12910         dw2_asm_output_offset.
12911         (output_die): Pass appropriate section to dw2_asm_output_offset.
12912         (output_compilation_unit_header): Likewise.
12913         (output_pubnames): Likewise.
12914         (output_aranges): Likewise.
12915         (enum dw_val_class): Break dw_val_class_lbl_offset into
12916         dw_val_class_lineptr and dw_val_class_macptr.
12917         (add_AT_lbl_offset): Delete.
12918         (add_AT_lineptr): New.
12919         (add_AT_macptr): New.
12920         (AT_lbl): Expect a lineptr or macptr.
12921         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
12922         (attr_checksum): Likewise.
12923         (same_dw_val_p): Likewise.
12924         (size_of_die): Likewise.
12925         (value_format): Likewise.
12926         (output_die): Likewise.
12927         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
12928         add_AT_lbl_offset.
12929         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
12930         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
12931         * config/darwin-protos.h (darwin_file_start): New.
12932         (darwin_asm_output_dwarf_offset): New.
12933         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
12934         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
12935         darwin_file_start.
12936         * config/darwin.c (darwin_emit_unwind_label): Don't output label
12937         if not EH section; simplify.
12938         (darwin_file_start): New.
12939         (darwin_asm_output_dwarf_offset): New.
12940         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
12941         mark as 'debug'.
12942         (DEBUG_INFO_SECTION): Likewise.
12943         (DEBUG_ABBREV_SECTION): Likewise.
12944         (DEBUG_ARANGES_SECTION): Likewise.
12945         (DEBUG_MACINFO_SECTION): Likewise.
12946         (DEBUG_LINE_SECTION): Likewise.
12947         (DEBUG_LOC_SECTION): Likewise.
12948         (DEBUG_PUBNAMES_SECTION): Likewise.
12949         (DEBUG_STR_SECTION): Likewise.
12950         (DEBUG_RANGES_SECTION): Likewise.
12951         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
12952         (ASM_OUTPUT_DWARF_OFFSET): New.
12953
12954 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
12955
12956         * config.gcc (tm_defines): Always add to previous value rather
12957         than replacing it.
12958
12959 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
12960
12961         * config/mips/predicates.md (splittable_const_int_operand): New,
12962         split from move_operand.
12963         (splittable_symbolic_operand): New.
12964         (move_operand): Add commentary.  Use splittable_const_int_operand.
12965         Inline mips_atomic_symbolic_constant_p.
12966         * config/mips/mips.md: Add combine splitters for handling moves
12967         of splittable_const_int_operands and splittable_symbolic_operands.
12968         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
12969         (mips_split_symbol): Declare.
12970         (mips_move_integer): Declare.
12971         * config/mips/mips.c (mips_split_p): Make global.
12972         (TARGET_MIN_ANCHOR_OFFSET): Override default.
12973         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
12974         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
12975         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
12976         (mips_offset_within_object_p): Handle block symbols.
12977         (mips_atomic_symbolic_constant_p): Delete.
12978         (mips_cannot_force_const_mem): Return false for constants that
12979         mips_legitimize_move can handle.
12980         (mips_use_blocks_for_constant_p): New function.
12981         (mips_split_symbol): Make global.
12982         (mips_move_integer): Likewise.  Add a temporary register argument.
12983         (mips_legitimize_const_move): Use splittable_const_int_operand and
12984         splittable_symbolic_operand.
12985         (mips_use_anchors_for_symbol_p): New function.
12986         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
12987         (mips_split_p): Declare.
12988
12989 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
12990
12991         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
12992         (mips*-*-linux*): Likewise.
12993
12994 2006-03-16  Roger Sayle  <roger@eyesopen.com>
12995             Daniel Speyer  <dspeyer@wam.umd.edu>
12996
12997         PR middle-end/18259
12998         * tree-dump.c (dump_real): New function.
12999         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
13000         * Makefile.in (REAL_H): New macro for dependencies on real.h.
13001         (tree-dump.o): Add $(REAL_H) to the dependencies.
13002
13003 2006-03-16  Roger Sayle  <roger@eyesopen.com>
13004
13005         PR middle-end/21781
13006         * real.c (real_from_string): If the mantissa is zero, don't bother
13007         parsing the exponent as the result should always be zero.
13008
13009 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
13010
13011         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
13012
13013 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
13014
13015         * config/ia64/ia64.c (stops_p): Added explicit initialization.
13016         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
13017         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
13018         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
13019         ia64_sched_finish_global): New static functions to implement
13020         hooks from gcc_target.sched.
13021         (spec_check_no, max_uid, pending_data_specs): New static variables.
13022         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
13023         ia64_spec_check_src_p): New static functions.
13024         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
13025         (TARGET_SCHED_ADJUST_COST): Removed.
13026         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
13027         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
13028         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
13029         TARGET_SCHED_GEN_CHECK,
13030         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
13031         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
13032         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
13033         Fixed to handle speculation checks.
13034         (rtx_needs_barrier): Fixed to handle speculative loads and
13035         their checks.
13036         (ia64_variable_issue): Added code to count speculative loads and their
13037         checks.
13038         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
13039         speculative loads.
13040         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
13041         New enumerations.
13042         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
13043         New constants.
13044         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
13045         (ia64_reorg): Reset stops_p to NULL after it is freed.
13046         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
13047         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
13048         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
13049         chk_a.
13050         (data_speculative, control_speculative, check_load): New attributes.
13051         (mov<mode>_advanced, mov<mode>_speculative,
13052         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
13053         zero_extend<mode>di2_speculative,
13054         zero_extend<mode>di2_speculative_advanced): New patterns for
13055         data and control speculative loads.
13056         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
13057         check loads.
13058         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
13059         New pattern for data and control speculation checks.
13060         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
13061         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
13062         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
13063         Auxiliary definitions for the patterns.
13064         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
13065         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
13066         constraints.
13067         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
13068         for speculation.
13069         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
13070         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
13071         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
13072         New resource constraints.
13073         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
13074         for speculation.
13075         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
13076         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
13077         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
13078         msched-in-control-spec, msched-ldc, msched-control-ldc,
13079         msched-spec-verbose, msched-prefer-non-data-spec-insns,
13080         msched-prefer-non-control-spec-insns,
13081         msched-count-spec-in-critical-path): New flags to tune speculative
13082         scheduling.
13083         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
13084         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
13085         msched-in-control-spec, msched-ldc, msched-control-ldc,
13086         msched-spec-verbose, msched-prefer-non-data-spec-insns,
13087         msched-prefer-non-control-spec-insns,
13088         msched-count-spec-in-critical-path): Document new flags.
13089
13090 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
13091
13092         * target.h (struct spec_info_def): New opaque declaration.
13093         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
13094         speculate_insn, needs_block_p, gen_check,
13095         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
13096         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
13097         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
13098         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
13099         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
13100         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
13101         gcc_target.sched.
13102         (TARGET_SCHED): Use new macros.
13103         * rtl.h (copy_DEPS_LIST_list): New prototype.
13104         * sched-int.h (struct sched_info): Change signature of new_ready field,
13105         adjust all initializations. New fields: add_remove_insn,
13106         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
13107         region_head_or_leaf_p.
13108         (struct spec_info_def): New structure declaration.
13109         (spec_info_t): New typedef.
13110         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
13111         recovery_block, orig_pat.
13112         (glat_start, glat_end): New variables declaraions.
13113         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
13114         New access macros.
13115         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
13116         DETACH_LIFE_INFO, USE_GLAT.
13117         (enum SPEC_SCHED_FLAGS): New enumeration.
13118         (NOTE_NOTE_BB_P): New macro.
13119         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
13120         attach_life_info, debug_spec_status, check_reg_live): New functions.
13121         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
13122         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
13123         sched-ebb.c
13124         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
13125         * ddg.c (get_block_head_tail): Adjust all uses.
13126         * modulo-sched.c (get_block_head_tail): Adjust all uses.
13127         (sms_sched_info): Initialize new fields.
13128         (contributes_to_priority): Removed.
13129         * haifa-sched.c (params.h): New include.
13130         (get_block_head_tail): Adjust all uses.
13131         (ISSUE_POINTS): New macro.
13132         (glat_start, glat_end): New global variables.
13133         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
13134         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
13135         old_last_basic_block, before_recovery, current_sched_info_var,
13136         rgn_n_insns, luid): New static variables.
13137         (insn_cost1): New function.  Move logic from insn_cost to here.
13138         (find_insn_reg_weight1): New function.  Move logic from
13139         find_insn_reg_weight to here.
13140         (reemit_notes, move_insn, max_issue): Change signature.
13141         (move_insn1): Removed.
13142         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
13143         extend_bb): New static functions to support extension of scheduler's
13144         data structures.
13145         (generate_recovery_code, process_insn_depend_be_in_spec,
13146         begin_speculative_block, add_to_speculative_block,
13147         init_before_recovery, create_recovery_block, create_check_block_twin,
13148         fix_recovery_deps): New static functions to support
13149         generation of recovery code.
13150         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
13151         restore_bb_notes, move_block_after_check, move_succs): New static
13152         functions to support ebb scheduling.
13153         (init_glat, init_glat1, attach_life_info1, free_glat): New static
13154         functions to support handling of register live information.
13155         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
13156         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
13157         add_jump_dependencies): New static functions.
13158         (check_cfg, has_edge_p, check_sched_flags): New static functions for
13159         consistancy checking.
13160         (debug_spec_status): New function to call from debugger.
13161         (priority): Added code to handle speculation checks.
13162         (rank_for_schedule): Added code to distinguish speculative instructions.
13163         (schedule_insn): Added code to handle speculation checks.
13164         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
13165         Fixed to handle ebbs.
13166         (move_insn): Added code to handle ebb scheduling.
13167         (max_issue): Added code to use ISSUE_POINTS of instructions.
13168         (choose_ready): Added code to choose between speculative and
13169         non-speculative instructions.
13170         (schedule_block): Added code to handle ebb scheduling and scheduling of
13171         speculative instructions.
13172         (sched_init): Initialize new variables.
13173         (sched_finish): Free new variables.  Print statistics.
13174         (try_ready): Added code to handle speculative instructions.
13175         * lists.c (copy_DEPS_LIST_list): New function.
13176         * sched-deps.c (extend_dependency_caches): New function.  Move logic
13177         from create_dependency_caches to here.
13178         (get_dep_weak, ds_merge): Make global.
13179         * genattr.c (main): Code to output prototype for
13180         dfa_clear_single_insn_cache.
13181         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
13182         (output_dfa_clean_insn_cache_func): Code to output
13183         dfa_clear_single_insn_cache function.
13184         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
13185         n_insns.
13186         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
13187         Removed.
13188         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
13189         New static variables.
13190         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
13191         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
13192         struct sched_info.
13193         (ebb_sched_info): Initialize new fields.
13194         (get_block_head_tail): Adjust all uses.
13195         (compute_jump_reg_dependencies): Fixed to use glat_start.
13196         (schedule_ebb): Code to remove unreachable last block.
13197         (schedule_ebbs): Added code to update register live information.
13198         * sched-rgn.c (region_sched_info): Initialize new fields.
13199         (get_block_head_tail): Adjust all uses.
13200         (last_was_jump): Removed.  Adjust users.
13201         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
13202         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
13203         Implement new hooks.
13204         (check_dead_notes1): New static function.
13205         (struct region): New fields: dont_calc_deps, has_real_ebb.
13206         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
13207         (BB_TO_BLOCK): Fixed to handle EBBs.
13208         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
13209         (ebb_head): New static variable.
13210         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
13211         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
13212         new fields.
13213         (compute_dom_prob_ps): New assertion.
13214         (check_live_1, update_live_1): Fixed to work with glat_start instead of
13215         global_live_at_start.
13216         (init_ready_list): New assertions.
13217         (can_schedule_ready_p): Split update code to begin_schedule_ready.
13218         (new_ready): Add support for BEGIN_CONTROL speculation.
13219         (schedule_insns): Fixed code that updates register live information
13220         to handle EBBs.
13221         (schedule_region): Fixed to handle EBBs.
13222         (init_regions): Use extend_regions and check_dead_notes1.
13223         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
13224         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
13225         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
13226         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
13227         TARGET_SCHED_GEN_CHECK,
13228         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
13229         TARGET_SCHED_SET_SCHED_FLAGS): Document.
13230         * doc/invoke.texi (max-sched-insn-conflict-delay,
13231         sched-spec-prob-cutoff): Document.
13232
13233 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
13234
13235         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
13236         inter_tick, queue_index.
13237         (struct sched_info): Change signature of init_ready_list field.
13238         Adjust all initializations.
13239         (RESOLVED_DEPS): New access macro.
13240         (ready_add): Remove prototype.
13241         (try_ready): Add prototype.
13242         * sched-rgn.c (init_ready_list): Use try_ready.
13243         (schedule_region): Initialize
13244         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
13245         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
13246         (init_ready_list): Use try_ready.
13247         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
13248         * lists.c (remove_list_elem): Remove `static'.
13249         (remove_free_INSN_LIST_elem): New function.
13250         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
13251         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
13252         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
13253         New constants.
13254         (readyp): New variable.
13255         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
13256         change_queue_index, resolve_dep): New static functions.
13257         (try_ready): New function.  Adjust callers in sched-rgn.c and
13258         sched-ebb.c to use it instead of ready_add.
13259         (clock_var): Move at the begining of file.
13260         (rank_for_schedule): Fix typo.
13261         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
13262         (ready_lastpos): Enforce assertion.
13263         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
13264         update all callers.
13265         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
13266         (schedule_insn): Rewrite to use try_ready and resolve_dep.
13267         (queue_to_ready): Use free_INSN_LIST_list.
13268         (early_queue_to_ready): Fix typo.
13269         (schedule_block): Init readyp.  Move init_ready_list call after the
13270         initialization of clock_var.  Fix error in rejecting insn by
13271         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
13272         that previously corrected INSN_TICKs.  Add code for handling
13273         QUEUE_INDEX.
13274         (set_priorities): Fix typo.
13275         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
13276         Clarify comment and code that keeps current_sched_info->next_tail
13277         non-null.
13278
13279 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
13280
13281         * sched-rgn.c (extend_rgns): New static function.
13282         (find_rgns): Use it.
13283         (gather_region_statistics, print_region_statistics): New static
13284         functions.
13285         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
13286         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
13287
13288 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
13289             Andrey Belevantsev <abel@ispras.ru>
13290
13291         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
13292         * lists.c (unused_deps_list): New variable.
13293         (free_list): Add assertions to verify the proper distinguishing
13294         between INSN_LISTs and DEPS_LISTs.
13295         (find_list_elem, remove_list_elem, remove_list_node): New static
13296         functions.
13297         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
13298         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
13299         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
13300         (alloc_INSN_LIST): Assert that the list we're working on is indeed
13301         an INSN_LIST.
13302         (free_INSN_LIST_node): Likewise.
13303         * modulo-sched.c (current_sched_info): Initialize flags field.
13304         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
13305         * rtl.def (DEPS_LIST): Define.
13306         * rtl.h: Declare new functions from lists.c.
13307         * sched-deps.c (spec_dependency_cache): New static variable.
13308         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
13309         (add_dependence): Change return type to void.  Move the logic to ...
13310         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
13311         (delete_all_dependences): Add comment about forward_dependency_cache.
13312         Handle spec_dependency_cache.  Handle DEPS_LISTs.
13313         (fixup_sched_groups): Clarify the change of priority of output
13314         and anti dependencies.
13315         (sched_analyze_2): Adjust add_dependence calls to create data
13316         speculative dependence.
13317         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
13318         Adjust all callers.  Handle DEPS_LISTS.
13319         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
13320         presence of speculation.
13321         (init_dependency_caches, free_dependency_caches):
13322         Handle spec_dependency_cache.
13323         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
13324         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
13325         New static functions.
13326         (add_or_update_back_dep, add_or_update_back_forw_dep,
13327         add_back_forw_dep, delete_back_forw_dep): New functions.
13328         * sched-int.h (ds_t, dw_t): New typedefs.
13329         (struct sched_info): Add new field flags.
13330         (struct haifa_insn_data): Add new bitfield has_internal_dep.
13331         Prototype new sched-deps.c functions.
13332         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
13333         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
13334         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
13335         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
13336         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
13337         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
13338         New constants.
13339         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
13340         New enums.
13341         * sched-rgn.c (current_sched_info): Initialize flags field.
13342         (schedule_insns): Initialize current_sched_info before the sched_init
13343         call.
13344         * sched-ebb.c (current_sched_info): Initialize flags field.
13345         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
13346         Call add_or_update_back_dep instead of add_dependence.
13347         Create control speculative dependencies.
13348         (schedule_insns): Initialize current_sched_info before the sched_init
13349         call.
13350
13351 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
13352
13353         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
13354         fs->signal_frame.
13355         (sh_fallback_frame_state): Likewise.
13356
13357 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
13358
13359         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
13360         Do switch on default_use_cxa_atexit.
13361         (powerpc*-*-darwin*): Build crt2.o on powerpc.
13362         * config/darwin-crt3.o: New.
13363         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
13364         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
13365         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
13366         OS version.
13367         * config/rs6000/t-darwin: Move crt2.o building to here.
13368         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
13369         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
13370         of __cxa_atexit.
13371
13372 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13373
13374         * config/vax/vax.c (nonindexed_address_p): Change logical negation
13375         from '! xxx' to '!xxx' for coding-style conformance.
13376         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
13377         (EXTRA_CONSTRAINT): Likewise.
13378         * config/vax/vax.md (four unnamed insns): Likewise.
13379
13380 2006-03-15  Paul Brook  <paul@codesourcery.com>
13381
13382         * config/arm/arm.c (minipool_pad): New.
13383         (add_minipool_forward_ref): Include pool alignment padding in address
13384         calculation.
13385         (push_minipool_fix): Set minipool_pad.
13386         (minipool_pad): Ditto.
13387
13388 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13389
13390         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
13391         instead of GET_CODE() == MEM and REG_P() instead of
13392         GET_CODE() == REG.
13393         (print_operand_address): Likewise.
13394         (vax_address_cost): Likewise.
13395         (vax_rtx_costs): Likewise.
13396         (vax_notice_update_cc): Likewise.
13397         (vax_output_int_add): Likewise.
13398         (INDEX_REGISTER_P): Likewise.
13399         (BASE_REGISTER_P): Likewise.
13400         (nonindexed_address_p): Likewise.
13401         (vax_mode_dependent_address_p): Likewise.
13402         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
13403         (PRINT_OPERAND): Likewise.
13404         * config/vax/vax.md (ashlsi3): Likewise.
13405         (ashlsi3): Likewise.
13406         (some more unnamed insns): Likewise.
13407
13408 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
13409
13410         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
13411         iterator-style macro.
13412         (mark_control_dependent_edges_necessary): Update the use of
13413         EXECUTE_IF_CONTROL_DEPENDENT.
13414
13415 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
13416
13417         * config/sh/predicates.md (cache_address_operand): Special.
13418         (ua_address_operand): Likewise.
13419
13420 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
13421
13422         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
13423         loop notes.
13424         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
13425
13426 2006-03-15  Andreas Schwab  <schwab@suse.de>
13427
13428         * gensupport.c (identify_predicable_attribute): Don't free p_false
13429         when it is still in use.
13430
13431 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
13432
13433         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
13434         the default setting here.
13435
13436 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
13437
13438         * tree-pass.h (pass_cfg): Remove.
13439         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
13440         * passes.c (pass_cfg): Don't run it.
13441
13442 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
13443
13444         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
13445         * reg-stack.c (stack_regs_mentioned_data): Change the type to
13446         VEC(char,heap) *.
13447         (stack_regs_mentioned): Update the uses of
13448         stack_regs_mentioned_data.  Don't access the array beyond its
13449         end.
13450         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
13451         Don't include gt-reg-stack.h.
13452
13453         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
13454         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
13455
13456         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
13457
13458         PR middle-end/26684
13459         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
13460         STACK_REGS.
13461
13462 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13463
13464         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
13465
13466 2006-03-14  Richard Guenther  <rguenther@suse.de>
13467
13468         PR tree-optimization/26672
13469         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
13470         SSA form.
13471
13472 2006-03-14  Richard Guenther  <rguenther@suse.de>
13473
13474         PR tree-optimization/26667
13475         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
13476         node for the callees.  Always allow inlining if it will shrink
13477         the function size.
13478
13479 2006-03-14  Richard Guenther  <rguenther@suse.de>
13480
13481         PR middle-end/26659
13482         * builtins.c (get_pointer_alignment): Prefer alignment
13483         information from decls over that from types.
13484
13485 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
13486
13487         PR target/26657
13488         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
13489
13490 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
13491
13492         * config/rs6000/rs6000.opt (mdlmzb): New option.
13493         (msched-prolog, msched-epilog): Use Var not Mask.
13494         * doc/invoke.texi (-mdlmzb): Document.
13495         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
13496         MASK_SCHED_PROLOG.
13497         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
13498         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
13499
13500 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
13501
13502         PR rtl-optimization/25739
13503         * bt-load.c (augment_live_range): Free tos pointer.
13504
13505         * gensupport.c (identify_predicable_attribute): Free
13506         p_false pointer.
13507         * gcov.c (create_file_names): Free name pointer.
13508
13509 2006-03-13  Roger Sayle  <roger@eyesopen.com>
13510
13511         PR middle-end/26557
13512         * stmt.c (emit_case_nodes): Handle the case where the index is a
13513         CONST_INT, where the comparison mode is specified by the index type.
13514
13515 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13516
13517         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
13518         is defined.
13519
13520 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
13521
13522         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
13523         (*branch_fp_inverted): Likewise.
13524
13525 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
13526
13527         PR middle-end/25989
13528         * omp-low.c (expand_omp_for_generic): Mark istart0
13529         and iend0 as addressable.
13530
13531 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
13532
13533         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
13534
13535 2006-03-13  Jeff Law  <law@redhat.com>
13536
13537         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
13538         virtual operands are interesting.
13539         (vrp_visit_stmt): Corresponding changes.
13540
13541 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
13542
13543         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
13544         of RETS.
13545         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
13546         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
13547         * config/bfin/crti.S: Use it instead of __PIC__.
13548         * config/bfin/crtn.S: Likewise.
13549
13550         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
13551         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
13552         not if flag_pic.
13553         Lose 'G' modifier for call operand.
13554         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
13555         recognize 'G' modifier.
13556
13557 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
13558
13559         PR middle-end/18859
13560         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
13561         * stmt.c (expand_case): Likewise.
13562
13563 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
13564
13565         PR rtl-optimization/26254
13566         * loop-invariant.c (seq_insns_valid_p): New function.
13567         (move_invariant_reg): Only emit new code if it is valid.
13568
13569 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
13570
13571         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
13572         Removed.
13573         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
13574         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
13575         (commit_one_edge_insertion): Do not look for loop notes.
13576
13577 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
13578
13579         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
13580         flag_test_coverage out of loop.
13581
13582 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
13583
13584         * final.c (shorten_branches): Remove outdated comment, and turn
13585         the if branch that guards it to continue.
13586
13587 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
13588
13589         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
13590         * cfgloop.h (struct loop): Remove unused fields.
13591
13592 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
13593
13594         * doc/invoke.texi (-fdump-rtl-loop): Remove.
13595         (-dL, -fdump-rtl-loop2): Update the dump file names
13596
13597         * doc/invoke.texi: Update dump file names.
13598
13599 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
13600
13601         * predict.c (estimate_probability): Remove.
13602         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
13603         * basic-block.h (estimate_probability): Remove prototype.
13604         * passes.c (finish_optimization_passes): Dump branch prediction or
13605         profiling heuristics to the .profile tree dump.
13606         (init_optimization_passes): Unqueue pass_branch_prob.
13607
13608         * doc/invoke.texi (-fdump-rtl-bp): Remove.
13609
13610 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
13611
13612         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
13613         * rtl.h (LABEL_NEXTREF): Remove field accessor.
13614
13615 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
13616
13617         * function.h (frame_offset_overflow): Declare.
13618         * function.c (frame_offset_overflow): New function.
13619         (assign_stack_local_1): Call it to detect that the offset overflows.
13620         * cfgexpand.c (alloc_stack_frame_space): Likewise.
13621
13622 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
13623
13624         * config/sh/sh.c: Include alloc-pool.h.
13625         (label_ref_list_pool): New alloc pool.
13626         (label_ref_list_t): New type for lists of labels.
13627         (struct pool_node): Make wend a label_ref_list_t.
13628         (add_constant): Use the new type, eradicate LABEL_NEXTREF
13629         references.
13630         (dump_table): Likewise.
13631         (sh_reorg): Set up the alloc pool before using add_constant and
13632         dump_table, and destroy it when finishing.
13633
13634 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
13635
13636         * config/mips/mips.c: Remove redundant comment.
13637
13638 2006-03-10  Jason Merrill  <jason@redhat.com>
13639
13640         PR c/26004
13641         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
13642         the target was declared 'register'.
13643
13644 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
13645
13646         * genpreds.c (write_insn_constraint_len): Change definition of
13647         insn_constraint_len to return size_t to match the declaration.
13648
13649 2006-03-10  DJ Delorie  <dj@redhat.com>
13650
13651         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
13652         start at zero.
13653         (m32c_expand_insv): Fix test for an AND mask.
13654
13655 2006-03-10  Richard Guenther  <rguenther@suse.de>
13656
13657         PR middle-end/26565
13658         * builtins.c (get_pointer_alignment): Handle component
13659         references for field alignment.
13660
13661 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
13662
13663         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
13664         when building with libgloss.
13665         (sh*elf): Implement --without-fp option.
13666         (sh64-superh-linux*): Don't multilib.
13667
13668 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
13669
13670         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
13671
13672 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
13673
13674         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
13675         Set it when one of the replacement functions returned true.
13676         Return TODO_cleanup_cfg if cfgchanged is true.
13677         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
13678
13679 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
13680
13681         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
13682         instead of gen_lowpart.
13683
13684 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
13685
13686         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
13687         interface.
13688         (mips_output_order_conditional_branch): Declare.
13689         * config/mips/mips.h (MIPS_BRANCH): New macro.
13690         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
13691         for the comparison.  Use gen_condjump.
13692         (mips_output_conditional_branch): Rework interface to take the
13693         asm templates for a direct branch and the inverse of a direct branch.
13694         (mips_output_order_conditional_branch): New function.
13695         (mips_builtin_branch_and_move): New function.
13696         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
13697         branch condition.  Use gen_single_cc as the condition for
13698         __builtin_mips_upper_* or __builtin_mips_lower_*.
13699         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
13700         Use VOIDmode for the branch condition.
13701         * config/mips/predicates.md (order_operator): New predicate.
13702         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
13703         (branch_fp): Rename to...
13704         (*branch_fp): ...this.  Remove mode from comparison operator.
13705         Use new mips_output_conditional_branch interface.
13706         (branch_fp_inverted): Rename to...
13707         (*branch_fp_inverted): ...this and update as for *branch_fp.
13708         (*branch_zero<mode>): Rename to...
13709         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
13710         Use mips_output_order_conditional_branch.  Only accept ordered
13711         comparisons.
13712         (*branch_zero<mode>_inverted): Rename to...
13713         (*branch_order<mode>_inverted): ...this and update as for
13714         *branch_order<mode>.
13715         (*branch_equality<mode>): Accept zero as the second operand to
13716         the equality operator.  Use the new mips_output_conditional_branch
13717         interface.
13718         (*branch_equality<mode>_inverted): Likewise.
13719         (condjump): New expander.
13720         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
13721         operator.
13722         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
13723         (bc1any2t, bc1any2f): Likewise.
13724         (single_cc): New expander.
13725         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
13726
13727 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
13728
13729         * doc/md.texi: Update documentation of MIPS constraints.
13730         * config/mips/constraints.md: New file.
13731         * config/mips/mips.md: Include it.
13732         * config/mips/mips.c (mips_char_to_class): Delete.
13733         (override_options): Don't initialize mips_char_to_class.
13734         * config/mips/mips.h (mips_char_to_class): Delete.
13735         (REG_CLASS_FROM_LETTER): Delete.
13736         (CONST_OK_FOR_LETTER_P): Delete.
13737         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13738         (EXTRA_CONSTRAINT_Y): Delete.
13739         (EXTRA_CONSTRAINT_STR): Delete.
13740         (CONSTRAINT_LEN): Delete.
13741         (EXTRA_MEMORY_CONSTRAINT): Delete.
13742
13743 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
13744
13745         * tree-cfg.c (move_block_to_fn): Remove the statements from the
13746         original fn's eh regions.
13747
13748 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
13749
13750         * fold-const.c (build_range_check): Make sure to use a valid type to
13751         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
13752         transformation.
13753
13754         (range_predecessor): New static function.
13755         (range_successor): Likewise.
13756         (merge_ranges): Use them to compute predecessors and successors of
13757         range bounds.
13758
13759 2006-03-09  Roger Sayle  <roger@eyesopen.com>
13760
13761         PR middle-end/26561
13762         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
13763         X op C3, consider whether C3 overflows towards +Inf or -Inf.
13764
13765 2006-03-08  DJ Delorie  <dj@redhat.com>
13766
13767         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
13768         (addpsi3): Expand to include memory operands.  Remove
13769         reload-specific splits.
13770         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
13771         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
13772         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
13773         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
13774         (shift1_qi, shift1_hi, insv): New.
13775         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
13776         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
13777         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
13778         cond_to_int): New.
13779         * config/m32c/m32c-protos.h: Update as needed.
13780         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
13781         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
13782         Fail for unrecognized R* constraints.
13783         (m32c_cannot_change_mode_class): Be more picky about pseudos.
13784         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
13785         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
13786         Add Sp constraint.
13787         (m32c_init_libfuncs): New.
13788         (m32c_legitimate_address_p): Add debug wrapper.
13789         (m32c_rtx_costs): New.
13790         (m32c_address_cost): New.
13791         (conversions): Add 'B' prefix.
13792         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
13793         operands, or word regnames for QI operands.  'B' prints bit
13794         position.
13795         (m32c_expand_setmemhi): New.
13796         (m32c_expand_movmemhi): New.
13797         (m32c_expand_movstr): New.
13798         (m32c_expand_cmpstr): New.
13799         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
13800         (m32c_expand_neg_mulpsi3): Handle non-ints.
13801         (m32c_cmp_flg_0): New.
13802         (m32c_expand_movcc): New.
13803         (m32c_expand_insv): New.
13804         (m32c_scc_pattern): New.
13805         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
13806         a0/a1 out of SIregs.
13807         (STORE_FLAG_VALUE): New.
13808         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
13809         code macros.
13810         (no_insn): New.
13811         * config/m32c/mov.md: Make constraints more liberal.
13812         (zero_extendqihi2): Optimize r0/r1 case.
13813         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
13814         * config/m32c/predicates.md (m32c_any_operand): New.
13815         (m32c_nonimmediate_operand): New.
13816         (m32c_hl_operand): New.
13817         (m32c_r3_operand): New.
13818         (ap_operand): New.
13819         (ma_operand): New.
13820         (memsym_operand): New.
13821         (memimmed_operand): New.
13822         (a_qi_operand): New.
13823         (m32c_eqne_operator): New.
13824         (m32c_1bit8_operand): New.
13825         (m32c_1bit16_operand): New.
13826         (m32c_1mask8_operand): New.
13827         (m32c_1mask16_operand): New.
13828         * config/m32c/blkmov.md: New file.
13829         * config/m32c/t-m32c (MD_FILES): Add blkmov.
13830
13831 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
13832
13833         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
13834         unsigned to fix signed/unsigned comparison issue in
13835         DWARF2_FRAME_REG_OUT.
13836         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
13837         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
13838
13839         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
13840         of ptr into the ENABLE_CHECKING section.
13841
13842 2006-03-08  Jeff Law  <law@redhat.com>
13843
13844         * tree-vrp.c (infer_value_range): Only count pointer uses
13845         and dereferences if -fdelete-null-pointer-checks is enabled.
13846
13847         * tree-vrp.c (find_assert_locations): Infer value ranges for
13848         single use pointers, but do not create ASSERT_EXPRs for them.
13849         When a non-null range is inferred for a pointer, backwards
13850         propagate that range to other equivalent pointers through the
13851         use-def chain.
13852
13853 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
13854
13855         PR bootstrap/26500
13856         * Makefile.in (dvi, html, install-info): Invoke the corresponding
13857         language hook targets.
13858         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
13859         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
13860         if language hook targets were missing.
13861
13862 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
13863
13864         * tree-ssa-opfinalize.h: Removed.
13865         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
13866         dependency.
13867         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
13868         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
13869         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
13870         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
13871         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
13872         finalize_ssa_v_must_def_ops): New.
13873
13874 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
13875
13876         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
13877         block as parameter.
13878
13879 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
13880
13881         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
13882
13883         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
13884         addresses with offsets; reorganize.
13885
13886         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
13887         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
13888         (expand_builtin_init_dwarf_reg_sizes): Likewise.
13889
13890 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
13891
13892         PR target/26588
13893         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
13894
13895 2006-03-08  Ben Elliston  <bje@au.ibm.com>
13896
13897         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
13898
13899 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
13900
13901         PR gomp/26238
13902         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
13903         expansion.
13904
13905 2006-03-07  Richard Guenther  <rguenther@suse.de>
13906
13907         PR tree-optimization/26587
13908         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
13909
13910 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
13911
13912         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
13913
13914 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
13915
13916         * hooks.c (hook_bool_mode_rtx_true): New function.
13917         * hooks.h (hook_bool_mode_rtx_true): Declare.
13918         * toplev.c (compile_file): Call output_shared_constant_pool.
13919         * varasm.c (shared_constant_pool): New variable.
13920         (assemble_start_function, assemble_end_function): Remove arguments
13921         from call to output_constant_pool.
13922         (create_constant_pool): New function, split out from...
13923         (init_varasm_status): ...here.
13924         (force_const_mem): Choose between the shared and per-function constant
13925         pools.  Set current_function_uses_const_pool when reusing old entries
13926         as well as when creating new ones.
13927         (mark_constant): Ignore data argument.
13928         (mark_constants): Remove pool argument.
13929         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
13930         to decide whether the function uses a constant pool.
13931         (output_constant_pool_contents): New function, split out from...
13932         (output_constant_pool): ...here.
13933         (output_shared_constant_pool): New function.
13934         (init_varasm_once): Initialize shared_constant_pool.
13935         * output.h (output_constant_pool): Delete.
13936         (output_shared_constant_pool): Declare.
13937         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
13938         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
13939
13940 2006-03-06  Nick Clifton  <nickc@redhat.com>
13941
13942         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
13943         flag_strength_reduce.
13944
13945 2006-03-06  Ben Elliston  <bje@au.ibm.com>
13946
13947         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
13948         x86_64-*-linux* configurations.
13949
13950         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
13951         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
13952
13953 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
13954
13955         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
13956         Remove.
13957         * basic-block.h: Remove the extern for
13958         rediscover_loops_after_threading.
13959
13960         * cfgloop.c (cancel_loop): Make it static.
13961         * cfgloop.h: Remove the prototype for cancel_loop.
13962
13963         * flow.c (recompute_reg_usage): Make it static.
13964         * rtl.h: Remove the prototype for recompute_reg_usage.
13965
13966         * function.c (use_return_register): Make it static.
13967         * function.h: Remove the prototype.
13968
13969 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
13970
13971         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
13972         Remove.
13973         * recog.h: Remove the prototype for
13974         validate_change_maybe_volatile.
13975
13976 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
13977
13978         * rtlanal.c (replace_reg): Remove.
13979         * rtl.h: Remove the prototype for replace_reg.
13980
13981 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
13982
13983         * regclass.c (reg_scan_update): Remove.
13984         (reg_scan_mark_refs): Remove the last argument.
13985         * rtl.h: Remove the prototype for reg_scan_update.
13986
13987 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
13988
13989         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
13990         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
13991         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
13992         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
13993         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
13994         loop-invariant.c, omp-low.c, opts.c, passes.c,
13995         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
13996         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
13997         tree-ssa-structalias.c, tree-ssa-threadedge.c,
13998         tree-ssa-threadupdate.c, tree-vect-patterns.c,
13999         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
14000         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
14001
14002 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14003
14004         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
14005         * dwarf2out.h: Remove the prototype for
14006         dwarf2out_add_library_unit_info.
14007
14008 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14009
14010         * tree.c (add_var_to_bind_expr): Remove.
14011         * tree.h: Remove the prototype for add_var_to_bind_expr.
14012
14013 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14014
14015         * regclass.c (n_non_fixed_regs): Remove.
14016         (init_reg_sets_1, globalize_reg): Remove all uses of
14017         n_non_fixed_regs.
14018         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
14019
14020 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14021
14022         * rtlanal.c (insns_safe_to_move_p): Remove.
14023         * rtl.h: Remove the prototype for insns_safe_to_move_p.
14024
14025 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
14026
14027         * expmed.c (expand_mult_add): Remove.
14028         * expr.h: Remove the prototype for expand_mult_add.
14029
14030 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
14031
14032         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
14033         and REG_SAVED_VAL_EXP constants.
14034         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
14035         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
14036         Handle regs stored by value.
14037         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
14038         (execute_cfa_program): Handle DW_CFA_val_offset,
14039         DW_CFA_val_offset_sf and DW_CFA_val_expression.
14040         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
14041         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
14042         (uw_install_context_1): Handle target regs stored by value.
14043
14044 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
14045
14046         * tree-sra.c (tree_sra): Return todoflags;
14047         (generate_one_element): Set TODO_update_smt_usage if needed.
14048         (pass_sra): Remove TODO_update_smt_usage.
14049         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
14050         parameter.
14051         (tree_ssa_forward_propagate_single_use_vars): Return
14052         TODO_update_smt_usage if we need to update SMT usage.
14053         (pass_forwprop): Remove TODO_update_smt_usage.
14054
14055 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
14056
14057         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
14058         (correct_use_link): Remove reference to get_stmt_operands.
14059         (update_stmt_operands): Likewise.
14060         (get_modify_expr_operands): New function factored out of
14061         parse_ssa_operands and get_expr_operands.
14062         Try to create V_MUST_DEFs for LHS by default.
14063         (get_expr_operands) <case MODIFY_EXPR>: Call
14064         get_modify_expr_operands.
14065         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
14066         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
14067         (parse_ssa_operands) <case MODIFY_EXPR>: Call
14068         get_modify_expr_operands.
14069
14070 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
14071
14072         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
14073         * tree-flow.h: Remove the prototype for
14074         referenced_var_lookup_if_exists.
14075
14076 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
14077
14078         PR rtl-optimization/26345
14079         PR target/19061
14080         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
14081
14082 2006-03-03  Roger Sayle  <roger@eyesopen.com>
14083
14084         PR tree-optimization/26524
14085         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
14086         fold_convert to create a constant of the appropriate type.
14087
14088 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
14089
14090         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
14091         SYMBOL_REF_IN_BLOCK_P.
14092         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
14093         of SYMBOL_FLAG_IN_BLOCK.
14094         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
14095         instead of SYMBOL_REF_IN_BLOCK_P.
14096         * explow.c (use_anchored_address): Likewise.
14097         * rtl.c (rtx_size): Likewise.
14098         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
14099         instead of SYMBOL_FLAG_IN_BLOCK.
14100         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
14101         SYMBOL_REF_IN_BLOCK_P.
14102         (assemble_variable): Likewise.
14103         (output_constant_def_contents): Likewise.
14104         (output_constant_pool): Likewise.
14105         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
14106         instead of SYMBOL_FLAG_IN_BLOCK.
14107         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
14108         SYMBOL_REF_IN_BLOCK_P.
14109         (SYMBOL_REF_BLOCK): Likewise.
14110         (SYMBOL_REF_OFFSET): Likewise.
14111         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
14112         SYMBOL_REF_IN_BLOCK_P.
14113         (SYMBOL_FLAG_IN_BLOCK): Replace with...
14114         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
14115         (SYMBOL_REF_IN_BLOCK_P): Replace with...
14116         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
14117
14118 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
14119
14120         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
14121
14122 2006-03-02  Roger Sayle  <roger@eyesopen.com>
14123
14124         * simplify-rtx.c (simplify_unary_operation): When simplifying
14125         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
14126         that we perform the right shift in the appropriate mode, and
14127         then extend or truncate the result to requested mode.
14128
14129 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
14130
14131         * gengtype.c (main): Handle double_int type.
14132         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
14133         * double-int.c: New file.
14134         * double-int.h: New file.
14135         * system.h: Include doubleint.h.
14136         * Makefile.in (SYSTEM_H): Include double-int.h.
14137         (double-int.o): Add.
14138
14139 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
14140
14141         PR bootstrap/26478
14142         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
14143         copying over it.
14144
14145 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
14146
14147         * tree-vrp.c (remove_range_assertions): Do not update statements
14148         unnecessarily.
14149
14150 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
14151
14152         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
14153         cleanup.
14154         * gcse.c (rest_of_handle_gcse): Ditto.
14155         * except.c (gate_handle_eh): Ditto.
14156         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
14157         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
14158
14159 2006-03-02  Eric Christopher  <echristo@apple.com>
14160
14161         * config/i386/i386.c (machopic_output_stub): Add indirection to
14162         jump.
14163
14164 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
14165
14166         * loop.c: Removed.
14167
14168 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
14169
14170         Sun Niagara specific optimizations.
14171         * config.gcc: Recognize niagara as target.
14172         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
14173         (TARGET_CPU_niagara): Define.
14174         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
14175         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
14176         (CPP_CPU_SPEC): Handle -mcpu=niagara.
14177         (ASM_CPU_SPEC): Likewise.
14178         (PROCESSOR_NIAGARA): New enum entry.
14179         (REGISTER_MOVE_COST): Handle Niagara.
14180         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
14181         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
14182         (sparc_override_options): Recognize "niagara", set appropriate
14183         default MASK_* values for it, and align functions to 32-bytes
14184         by default just like ULTRASPARC/ULTRASPARC3.
14185         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
14186         (sparc64_initialize_trampoline): Likewise.
14187         (sparc_use_sched_lookahead): Use zero for niagara.
14188         (sparc_issue_rate): Use one for niagara.
14189         * config/sparc/niagara.md: New file.
14190         * config/sparc/sparc.md: Include it.
14191         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
14192         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
14193         when default cpu is niagara.
14194         (CPP_CPU_SPEC): Handle -mcpu=niagara.
14195         (ASM_CPU_SPEC): Likewise.
14196         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
14197         when default cpu is niagara.
14198         (ASM_CPU_SPEC): Handle -mcpu=niagara.
14199         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
14200         just like v9/ultrasparc/ultrasparc3.
14201         * doc/invoke.texi: Add documentation for "niagara" and improve
14202         existing documentation for ultrasparc variants.
14203
14204 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
14205
14206         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
14207
14208 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
14209
14210         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
14211         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
14212         and say that only one is needed.
14213         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
14214         * target.h (have_switchable_bss_sections): New hook.
14215         * explow.c (use_anchored_address): Check that the symbol is in a block.
14216         * varasm.c (tls_comm_section, comm_section, lcomm_section)
14217         (bss_noswitch_section): New variables.
14218         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
14219         (get_noswitch_section): New function.
14220         (get_block_for_section): Allow SECT to be null.
14221         (unlikely_text_section_p): Use SECTION_STYLE.
14222         (bss_initializer_p): New function.
14223         (get_variable_section): Move earlier in file.  Take a new argument,
14224         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
14225         Return one of the new *_sections in such cases.
14226         (get_block_for_decl): New function, extracting some logic from
14227         use_blocks_for_decl_p.
14228         (change_symbol_section): Remove in favor of...
14229         (change_symbol_block): ...this new function.
14230         (use_blocks_for_decl_p): Remove checks now performed by
14231         get_block_for_decl.
14232         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
14233         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
14234         (emit_local, emit_bss, emit_common): ...these new functions.
14235         Return true if the alignment was honored.
14236         (emit_tls_common): New function.
14237         (asm_emit_uninitialised): Delete.
14238         (assemble_variable_noswitch): New function, split out from...
14239         (assemble_variable): ...here.  Don't make decisions about common
14240         variables here.  Globalize all public decls that go into non-common
14241         sections.  Check whether SYMBOL_REF_BLOCK is null.
14242         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
14243         (output_constant_pool): Likewise.
14244         (init_varasm_once): Initialize the new section variables.
14245         (have_global_bss_p): New function.
14246         (categorize_decl_for_section): Use bss_initializer_p.
14247         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
14248         (place_block_symbol): Assert that the symbol must be in a block.
14249         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
14250         (TARGET_INITIALIZER): Include it.
14251         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
14252         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
14253         (SECTION_MACH_DEP): Bump by two.
14254         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
14255         (unnamed_section): Mention SECTION_UNNAMED in comment.
14256         (named_section): Likewise SECTION_NAMED.
14257         (noswitch_section_callback): New type.
14258         (noswitch_section): New structure.
14259         (section): Add a noswitch_section alternative.
14260         (SECTION_STYLE): New macro.
14261         (tls_comm_section, comm_section, lcomm_section): Declare.
14262         (bss_noswitch_section, have_global_bss_p): Declare.
14263         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
14264         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
14265         Override.
14266         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
14267         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
14268         Override.
14269
14270 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
14271
14272         * tree-vrp.c (execute_vrp): Return value.
14273         * regrename.c (rest_of_handle_regrename): Ditto.
14274         * tree-into-ssa.c (rewrite_into_ssa): Ditto.
14275         * tree-complex.c (tree_lower_complex): Ditto.
14276         (tree_lower_complex_O0): Ditto.
14277         * tracer.c (rest_of_handle_tracer): Ditto.
14278         * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
14279         * postreload.c (rest_of_handle_postreload): Ditto.
14280         * tree-tailcall.c (execute_tail_recursion): Ditto.
14281         (execute_tail_calls): Ditto.
14282         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
14283         * tree.h (init_function_for_compilation): Ditto.
14284         * ipa-cp.c (ipcp_driver): Ditto.
14285         * tree-scalar-evolution.c (scev_const_prop): Ditto.
14286         * tree-scalar-evolution.h (scev_const_prop): Ditto.
14287         * final.c (compute_alignments): Ditto.
14288         (rest_of_handle_final): Ditto.
14289         (rest_of_handle_shorten_branches): Ditto.
14290         (rest_of_clean_state): Ditto.
14291         * omp-low.c (execute_expand_omp): Ditto.
14292         (execute_lower_omp): Ditto.
14293         * tree-ssa-dse.c (tree_ssa_dse): Ditto.
14294         * ipa-reference.c (static_execute): Ditto.
14295         * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
14296         * reorg.c (rest_of_handle_delay_slots): Ditto.
14297         (rest_of_handle_machine_reorg): Ditto.
14298         * cgraphunit.c (rebuild_cgraph_edges): Ditto.
14299         * flow.c (recompute_reg_usage): Ditto.
14300         (rest_of_handle_remove_death_notes): Ditto.
14301         (rest_of_handle_life): Ditto.
14302         (rest_of_handle_flow2): Ditto.
14303         * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
14304         * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
14305         (do_ssa_store_ccp): Ditto.
14306         (execute_fold_all_builtins): Ditto.
14307         * mode-switching.c (rest_of_handle_mode_switching): Ditto.
14308         * modulo-sched.c (rest_of_handle_sms): Ditto.
14309         * ipa-pure-const.c (static_execute): Ditto.
14310         * cse.c (rest_of_handle_cse): Ditto.
14311         (rest_of_handle_cse2): Ditto.
14312         * web.c (rest_of_handle_web): Ditto.
14313         * tree-stdarg.c (execute_optimize_stdarg): Ditto.
14314         * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
14315         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
14316         * tree-nrv.c (tree_nrv): Ditto.
14317         (execute_return_slot_opt): Ditto.
14318         * tree-ssa-alias.c (compute_may_aliases): Ditto.
14319         (create_structure_vars): Ditto.
14320         * loop-init.c (rtl_loop_init): Ditto.
14321         (rtl_loop_done): Ditto.
14322         (rtl_move_loop_invariants): Ditto.
14323         (rtl_unswitch): Ditto.
14324         (rtl_unroll_and_peel_loops): Ditto.
14325         (rtl_doloop): Ditto.
14326         * gimple-low.c (lower_function_body): Ditto.
14327         (mark_used_blocks): Ditto.
14328         * tree-ssa-sink.c (execute_sink_code): Ditto.
14329         * ipa-inline.c (cgraph_decide_inlining): Ditto.
14330         (cgraph_early_inlining): Ditto.
14331         * global.c (rest_of_handle_global_alloc): Ditto.
14332         * jump.c (cleanup_barriers): Ditto.
14333         (purge_line_number_notes): Ditto.
14334         * ifcvt.c (rest_of_handle_if_conversion): Ditto.
14335         (rest_of_handle_if_after_reload): Ditto.
14336         * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
14337         (tree_ssa_loop_im): Ditto.
14338         (tree_ssa_loop_unswitch): Ditto.
14339         (tree_vectorize): Ditto.
14340         (tree_linear_transform): Ditto.
14341         (tree_ssa_loop_ivcanon): Ditto.
14342         (tree_ssa_empty_loop): Ditto.
14343         (tree_ssa_loop_bounds): Ditto.
14344         (tree_complete_unroll): Ditto.
14345         (tree_ssa_loop_prefetch): Ditto.
14346         (tree_ssa_loop_ivopts): Ditto.
14347         (tree_ssa_loop_done): Ditto.
14348         * predict.c (tree_estimate_probability): Ditto.
14349         * recog.c (split_all_insns_noflow): Ditto.
14350         (rest_of_handle_peephole2): Ditto.
14351         (rest_of_handle_split_all_insns): Ditto.
14352         * tree-eh.c (lower_eh_constructs): Ditto.
14353         * regmove.c (rest_of_handle_regmove): Ditto.
14354         (rest_of_handle_stack_adjustments): Ditto.
14355         * local-alloc.c (rest_of_handle_local_alloc): Ditto.
14356         * function.c (instantiate_virtual_regs): Ditto.
14357         (init_function_for_compilation): Ditto.
14358         (rest_of_handle_check_leaf_regs): Ditto.
14359         * gcse.c (rest_of_handle_jump_bypass): Ditto.
14360         (rest_of_handle_gcse): Ditto.
14361         * ipa-type-escape.c (type_escape_execute): Ditto.
14362         * alias.c (rest_of_handle_cfg): Ditto.
14363         * tree-if-conv.c (main_tree_if_conversion): Ditto.
14364         * profile.c (rest_of_handle_branch_prob): Ditto.
14365         * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
14366         * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
14367         * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
14368         * tree-dfa.c (find_referenced_vars): Ditto.
14369         * except.c (set_nothrow_function_flags): Ditto.
14370         (convert_to_eh_region_ranges): Ditto.
14371         (rest_of_handle_eh): Ditto.
14372         * emit-rtl.c (unshare_all_rtl): Ditto.
14373         (remove_unnecessary_notes): Ditto.
14374         * except.h (set_nothrow_function_flags): Ditto.
14375         (convert_to_eh_region_ranges): Ditto.
14376         * cfgexpand.c (tree_expand_cfg): Ditto.
14377         * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
14378         * tree-ssa-pre.c (do_pre): Ditto.
14379         (execute_fre): Ditto.
14380         * cfgcleanup.c (rest_of_handle_jump): Ditto.
14381         (rest_of_handle_jump2): Ditto.
14382         * tree-sra.c (tree_sra): Ditto.
14383         * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
14384         (execute_mudflap_function_decls): Ditto.
14385         * tree-ssa-copy.c (do_copy_prop): Ditto.
14386         (do_store_copy_prop): Ditto.
14387         * ipa-prop.h (ipcp_driver): Ditto.
14388         * cfglayout.c (insn_locators_initialize): Ditto.
14389         * tree-ssa-forwprop.c
14390         (tree_ssa_forward_propagate_single_use_vars): Ditto.
14391         * cfglayout.h (insn_locators_initialize): Ditto.
14392         * tree-ssa-dce.c (tree_ssa_dce): Ditto.
14393         * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
14394         (execute_late_warn_uninitialized): Ditto.
14395         * rtl.h (cleanup_barriers): Ditto.
14396         (split_all_insns_noflow): Ditto.
14397         (purge_line_number_notes): Ditto.
14398         (unshare_all_rtl): Ditto.
14399         (remove_unnecessary_notes): Ditto.
14400         (recompute_reg_usage): Ditto.
14401         (variable_tracking_main): Ditto.
14402         * integrate.c (emit_initial_value_sets): Ditto.
14403         * integrate.h (emit_initial_value_sets): Ditto.
14404         * tree-optimize.c (execute_free_datastructures): Ditto
14405         (execute_free_cfg_annotations): Ditto.
14406         (execute_fixup_cfg): Ditto.
14407         (execute_cleanup_cfg_pre_ipa): Ditto.
14408         (execute_cleanup_cfg_post_optimizing): Ditto.
14409         (execute_init_datastructures): Ditto.
14410         * tree-object-size.c (compute_object_sizes): Ditto.
14411         * combine.c (rest_of_handle_combine): Ditto.
14412         * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
14413         * bb-reorder.c (duplicate_computed_gotos): Ditto.
14414         (rest_of_handle_reorder_blocks): Ditto.
14415         (rest_of_handle_partition_blocks): Ditto.
14416         * var-tracking.c (variable_tracking_main): Ditto.
14417         * tree-profile.c (tree_profiling): Ditto.
14418         * tree-vect-generic.c (expand_vector_operations): Ditto.
14419         * reg-stack.c (rest_of_handle_stack_regs): Ditto.
14420         * sched-rgn.c (rest_of_handle_sched): Ditto.
14421         (rest_of_handle_sched2): Ditto.
14422         * basic-block.h (free_bb_insn): Ditto.
14423         * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
14424         * tree-cfg.c (execute_build_cfg): Ditto.
14425         (remove_useless_stmts): Ditto.
14426         (split_critical_edges): Ditto.
14427         (execute_warn_function_return): Ditto.
14428         (execute_warn_function_noreturn): Ditto.
14429         * tree-ssa-reassoc.c (execute_reassoc): Ditto.
14430         * cfgrtl.c (free_bb_for_insn): Ditto.
14431         * passes.c (execute_one_pass): Run additional
14432         todos returned by execute function.
14433         * tree-pass.h (struct tree_opt_pass): Make execute
14434         return a value.
14435
14436 2006-03-02  Richard Guenther  <rguenther@suse.de>
14437
14438         * tree-ssa-alias.c (find_used_portions): Consider taking
14439         the address as making the variable not write-only.
14440
14441 2006-03-02  Nick Clifton  <nickc@redhat.com>
14442
14443         * config.gcc (default_use_cxa_atexit): Extend the description of
14444         this configure variable.  Set its default value to "yes" for
14445         Linux, NetBSD and ELF targets on the assumption that they will
14446         use C libraries with the __cxa_atexit function.
14447
14448 2006-03-02  Ben Elliston  <bje@au.ibm.com>
14449
14450         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
14451         parameter as unused to suppress a build warning.
14452
14453 2006-03-02  Ben Elliston  <bje@au.ibm.com>
14454
14455         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
14456         config/dfp-bit.c.
14457
14458 2006-03-01  Roger Sayle  <roger@eyesopen.com>
14459
14460         PR other/26489
14461         * gthr-posix.h (__gthrw2): Define to take three parameters, the
14462         declared name, the weak reference name, and the typeof name.
14463         (__gthrw): Avoid expanding the declared name suffix.
14464         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
14465
14466 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
14467
14468         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
14469         from DWARF 3.
14470         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
14471         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
14472         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
14473         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
14474         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
14475         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
14476         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
14477         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
14478         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
14479         DW_DS_leading_separate, DW_DS_trailing_separate): New.
14480         (DW_END_default, DW_END_big, DW_END_little): New.
14481         (DW_END_lo_user, DW_END_hi_user): Define.
14482         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
14483         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
14484         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
14485         DW_LANG_D): New.
14486
14487 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
14488
14489         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
14490         Update all users.
14491         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
14492         Update all users.
14493         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
14494         Update all users.
14495         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
14496         Update all users.
14497         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
14498         to 'symbol_mem_tag'.
14499         Update all users.
14500         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
14501         rename.
14502
14503 2006-03-01  Roger Sayle  <roger@eyesopen.com>
14504
14505         * builtins.c (fold_builtin_copysign): Delete unreachable code.
14506
14507 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
14508
14509         PR target/25761
14510         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
14511         MACHO_DYNAMIC_NO_PIC_P.
14512         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
14513
14514 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
14515
14516         PR target/26389
14517         * config/darwin-protos.h (darwin_asm_output_anchor):
14518         Declare.
14519         * config/darwin-sections.def (cstring_section):
14520         Add SECTION_MERGE to the flags.
14521         (literal4_section): Likewise.
14522         (literal8_section): Likewise.
14523         (objc_selector_refs_section): Likewise.
14524         (objc_cls_refs_section): Likewise.
14525         * config/darwin.c (darwin_asm_output_anchor): New
14526         function.
14527         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
14528
14529 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
14530
14531         Fix PR tree-optimization/26443
14532         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
14533         to todo and PROP_tmt_usage to properties_destroyed.
14534         * tree-ssa-ccp.c (pass_ccp): Ditto.
14535         (pass_store_ccp): Ditto.
14536         * tree-ssa-dom.c (pass_dominator): Ditto.
14537
14538 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
14539
14540         * tree-ssa-operands.c: Cleanup whitespace.
14541         (get_asm_expr_operands): Move before first invocation.
14542         (get_indirect_ref_operands): Likewise.
14543         (get_tmr_operands): Likewise.
14544         (get_call_expr_operands): Likewise.
14545         (append_def): Likewise.
14546         (append_use): Likewise.
14547         (append_v_may_def): Likewise.
14548         (append_v_must_def): Likewise.
14549         (add_call_clobber_ops): Likewise.
14550         (add_call_read_ops): Likewise.
14551         (add_stmt_operand): Likewise.
14552         (add_virtual_operand): Likewise.
14553         (build_ssa_operands): Likewise.
14554
14555 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
14556
14557         PR middle-end/26022
14558         Revert:
14559         PR middle-end/24437
14560         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
14561         with a call expr to ...
14562         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
14563
14564 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
14565
14566         * tree-vrp.c (extract_range_from_assert): Remove special
14567         handling for types with super-types.
14568
14569 2006-03-01  Ben Elliston  <bje@au.ibm.com>
14570
14571         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
14572         and powerpc64-*-linux* configurations.
14573         * config/t-dfprules: New file.
14574
14575         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
14576         Compile dfp-bit.c from the source directory using -DWIDTH and
14577         $DFP_CFLAGS to control the compilation of that file, rather than
14578         generating width-specific versions in the build directory.
14579         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
14580         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
14581
14582 2006-02-28  Zack Weinberg  <zackw@panix.com>
14583
14584         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
14585         continues to work.
14586
14587 2006-02-28  Eric Christopher  <echristo@apple.com>
14588
14589         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
14590         Set up IN_LIBGCC definition of TARGET_64BIT.
14591         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
14592
14593 2006-02-28  Roger Sayle  <roger@eyesopen.com>
14594
14595         PR middle-end/14752
14596         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
14597         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
14598         cases via the construction of "expr != 0".
14599
14600 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
14601
14602         * alias.c (alias_invariant, alias_invariant_size): Remove.
14603         (record_base_value): Remove.
14604         (memrefs_conflict_p): Don't look at alias_invariant.
14605         (end_alias_analysis): Don't free it.
14606         * alias.h (record_base_value): Remove prototype.
14607
14608 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
14609             Adam Nemet  <anemet@caviumnetworks.com>
14610
14611         * rtl.h (truncated_to_mode): Declare it.
14612         (struct rtl_hooks): Add reg_truncated_to_mode hook.
14613         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
14614         (RTL_HOOKS_INITIALIZER): Include it.
14615         * rtlhooks.c (reg_truncated_to_mode_general): New function.
14616         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
14617         reg_truncated_to_mode.
14618         * rtlanal.c (truncated_to_mode): Define it.
14619         * simplify-rtx.c (simplify_unary_operation_1): Use it.
14620
14621 2006-02-28  Jeff Law  <law@redhat.com>
14622
14623         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
14624         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
14625         the range allowed by TYPE_PRECISION.
14626
14627         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
14628
14629 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
14630
14631         PR tree-optimization/26419
14632         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
14633         values of n.
14634
14635 2006-02-27  Zack Weinberg  <zackw@panix.com>
14636
14637         * doc/md.texi: Fix typo in previous change.
14638
14639 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
14640
14641         * df.c: Remove.
14642
14643 2006-02-27  Zack Weinberg  <zackw@panix.com>
14644
14645         * rtl.def (define_constraint, define_register_constraint)
14646         (define_memory_constraint, define_address_constraint): New MD forms.
14647         * gensupport.c (process_rtx): Put define_constraint etc on the
14648         predicate queue.
14649         * genpreds.c (process_define_predicate): Adjust comment.  Validate
14650         the name, and call validate_exp to validate the expression.
14651         (mark_mode_tests, write_extract_subexp): Can assume correct input.
14652         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
14653         all callers changed.
14654         (validate_exp, needs_variable, struct constraint_data)
14655         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
14656         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
14657         (const_dbl_constraints, constraint_max_namelen)
14658         (have_register_constraints, have_memory_constraints)
14659         (have_address_constraints, have_address_constraints)
14660         (have_extra_constraints, have_const_int_constraints)
14661         (have_const_dbl_constraints, mangle, add_constraint)
14662         (process_define_constraint, process_define_register_constraint)
14663         (write_enum_constraint_num, write_lookup_constraint)
14664         (write_insn_constraint_len, write_regclass_for_constraint)
14665         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
14666         (write_insn_extra_memory_constraint)
14667         (write_insn_extra_address_constraint)
14668         (write_satisfies_constraint_fns): New.
14669         (write_tm_preds_h): If we have new-style constraint definitions,
14670         prototype the functions generated from them, and define the
14671         old constraint interface (still used by generic code) in terms of
14672         those functions.
14673         (write_insn_preds_c): If we have new-style constraint definitions,
14674         generate all relevant functions from those definitions.
14675         (main): Handle define_constraint etc.
14676         * genoutput.c (struct constraint_data, indep_constraints)
14677         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
14678         (mdep_constraint_len): New data structures and functions, defined
14679         #ifdef USE_MD_CONSTRAINTS.
14680         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
14681         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
14682         use new logic to validate operand constraints against constraint
14683         definitions.
14684         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
14685         defined.
14686         * defaults.h: If none of the old-style constraint macros are
14687         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
14688         old-style macros; and poison REG_CLASS_FROM_LETTER,
14689         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
14690         EXTRA_CONSTRAINT.
14691         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
14692         * doc/md.texi: Document new constraint-definition mechanism and the
14693         C interface it provides.  Remove references to old mechanism
14694         elsewhere in the document.
14695         (Machine Constraints): Use pathnames relative to gcc directory,
14696         i.e. config/ARCH/FILE.  Change i386 section to refer to
14697         config/i386/predicates.md; update that section to match docstrings.
14698         * doc/tm.texi: Move all documentation of the old constraint-
14699         definition macros to their own section, clearly mark as obsolete.
14700
14701         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
14702         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
14703         definitions.
14704         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
14705         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
14706         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
14707         constraint strings.
14708         (splits and peepholes): Use satisfies_constraint_*.
14709         * config/i386/i386.c (memory_address_length)
14710         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
14711
14712 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
14713
14714         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
14715         scalar operation to be put back into the loop.
14716
14717 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
14718
14719         PR other/26208
14720         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
14721         (extract_cie_info): Handle S flag in augmentation string.
14722         (execute_cfa_program): If context->signal_frame, execute also
14723         fs->pc == context->ra instructions.
14724         (uw_frame_state_for): If context->signal_frame, don't subtract one
14725         from context->ra to find FDE.
14726         (uw_update_context_1): Set context->signal_frame to
14727         fs->signal_frame.
14728         (_Unwind_GetIPInfo): New function.
14729         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
14730         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
14731         of _Unwind_GetIP.
14732         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
14733         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
14734         * unwind-compat.c (_Unwind_GetIPInfo): New function.
14735         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
14736         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
14737         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
14738         * config/i386/linux-unwind.h (x86_fallback_frame_state,
14739         x86_64_fallback_frame_state): Set fs->signal_frame.
14740         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
14741         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
14742         (frob_update_context): Likewise.  Workaround missing S flag in
14743         Linux 2.6.12 - 2.6.16 kernel vDSOs.
14744         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
14745         Remove the psw_addr + 1 hack.
14746
14747 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
14748
14749         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
14750         with aggregates here.
14751         (find_func_aliases): Remove code for &<aggregate> from here.
14752
14753 2006-02-26  Roger Sayle  <roger@eyesopen.com>
14754
14755         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
14756         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
14757         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
14758         as (X & C) ne/eq 0.
14759
14760 2006-02-26  Roger Sayle  <roger@eyesopen.com>
14761
14762         PR middle-end/19983
14763         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
14764
14765 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
14766
14767         * opts.c (decode_options): Do not handle flag_strength_reduce.
14768         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
14769         and OPT_fstrength_reduce.
14770         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
14771         flag_prefetch_loop_arrays for being nonzero.
14772         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
14773         no-ops.
14774         (fprefetch-loop-arrays-rtl): Removed.
14775         (flag_prefetch_loop_arrays): Do not specify the value.
14776
14777         * doc/passes.texi: Update documentation of loop optimizer
14778         passes.
14779         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
14780         -frerun-loop-opt): Remove.
14781
14782 2006-02-26  Richard Guenther  <rguenther@suse.de>
14783
14784         PR tree-optimization/26421
14785         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
14786         in function calls that are ADDR_EXPRs as using the whole structure.
14787
14788 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
14789
14790         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
14791         * tree-pass.h (pass_loop_optimize): Remove.
14792         * passes.c (pass_loop_optimize): Never run it.
14793         * toplev.c (backend_init): Don't call init_loop.
14794         * opts.c (flag_loop_optimize_set): Remove.
14795         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
14796         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
14797         the old RTL loop optimizer when profiling enabled.
14798         * predict.c (tree_estimate_probability): Always strip builtin_expect.
14799         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
14800         pre-headers for the sake of the old RTL loop optimizer.
14801         * Makefile.in: Remove all references to loop.o.
14802
14803         * doc/invoke.texi: Remove all references to -floop-optimize
14804         and -frerun-loop-opt.
14805
14806 2006-02-26  Zack Weinberg  <zackw@panix.com>
14807
14808         * doc/md.texi (Machine Constraints): Refer to all files with paths
14809         relative to gcc directory (i.e. config/CPU/file).  Add missing
14810         @table @code ... @end table to M32C subsection.
14811
14812 2006-02-26  Roger Sayle  <roger@eyesopen.com>
14813
14814         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
14815         (X & 1) == 0.
14816         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
14817
14818 2006-02-26  Roger Sayle  <roger@eyesopen.com>
14819             James A. Morrison  <phython@gcc.gnu.org>
14820
14821         PR middle-end/21137
14822         * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
14823         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
14824         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
14825         signedness of the shift operation.
14826
14827 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
14828
14829         PR tree-optimization/26359
14830         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
14831
14832 2006-02-25  Roger Sayle  <roger@eyesopen.com>
14833
14834         * simplify-rtx.c (simplify_relational_operation_1): Simplify
14835         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
14836         as X == 0, and some symmetry related transformations.
14837         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
14838
14839 2006-02-25  Roger Sayle  <roger@eyesopen.com>
14840
14841         PR middle-end/23673
14842         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
14843         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
14844         symmetry related transformations.  Fold (X^C1) == C2 as
14845         X == (C1^C2).
14846
14847 2006-02-25  Juergen Weigert  <jw@suse.de>
14848         Richard Guenther  <rguenther@suse.de>
14849
14850         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
14851
14852 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
14853
14854         * combine.c (gen_lowpart_or_truncate): Call
14855         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
14856
14857 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
14858
14859         * doc/invoke.texi: Move -fopenmp description to "Options for
14860         Code Generation".
14861         Remove reference to -lgomp.
14862
14863 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
14864
14865         * doc/install.texi: Require GNU tar version 1.14.
14866
14867 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
14868
14869         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
14870         * doc/invoke.texi (C++ Dialect Options): Document
14871         -fno-use-cxa-get-exception-ptr.
14872         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
14873         * configure: Regenerate.
14874         * c.opt (fuse-cxa-get-exception-ptr): New.
14875         * c-opts.c (c_common_handle_option): Handle
14876         OPT_fuse_cxa_get_exception_ptr.
14877         * c-common.c (flag_use_cxa_atexit): Update documentation.
14878         (flag_use_cxa_get_exception_ptr): New.
14879         * c-common.h (flag_use_cxa_get_exception_ptr): New.
14880         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
14881         documentation.
14882         (C_COMMON_OVERRIDE_OPTIONS): New.
14883
14884 2006-02-24  Roger Sayle  <roger@eyesopen.com>
14885
14886         PR middle-end/24952
14887         * combine.c (try_combine): Explicitly check whether GET_CODE is
14888         a SET or a CLOBBER, instead on checking that it isn't a USE.
14889
14890 2006-02-24  Roger Sayle  <roger@eyesopen.com>
14891
14892         * fold-const.c (fold_comparison): New subroutine of fold_binary
14893         containing transformations common to both the equality and
14894         ordering relational operators, factored out of fold_binary.
14895         (fold_binary): Separate out the equality operators (EQ_EXPR
14896         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
14897         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
14898         transformations common to both.
14899         (fold_div_compare): Fix latent bugs in the previously unreachable
14900         LT_EXPR and GE_EXPR cases.
14901
14902 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
14903
14904         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
14905         decl libname for clog to __clog on AIX.
14906
14907         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
14908
14909 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
14910
14911         PR target/26453
14912         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
14913         output traceback table for thunks.  Localise rs6000_stack_info call.
14914
14915 2006-02-23  Roger Sayle  <roger@eyesopen.com>
14916             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14917
14918         * gthr-posix.h (__gthrw): Fix typo in comment.
14919
14920 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
14921
14922         * doc/cpp.texi (Character sets): Document that we do support
14923         input files to be in any character set.
14924
14925 2006-02-23  Jeff Law  <law@redhat.com>
14926
14927         * tree.h (PHI_ARG_NONZERO): Remove.
14928         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
14929         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
14930         node to the new node.
14931
14932         PR tree-optimization/26425
14933         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
14934         min/max, then assume its varying.
14935
14936 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
14937
14938         PR rtl-optimization/26316
14939         * rtlanal.c (enum may_trap_p_flags): New.
14940         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
14941         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
14942         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
14943         (may_trap_after_code_motion_p): New function.
14944         * loop-invariant.c (find_identical_invariants): Fix dump formating.
14945         (find_invariant_insn): Use may_trap_after_code_motion_p.
14946         * rtl.h (may_trap_after_code_motion_p): Declare.
14947
14948 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
14949
14950         * emit-rtl.c (immed_double_const): Cleanup.
14951
14952 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
14953
14954         Fix PR tree-optimization/26376
14955         * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
14956         remove assert.
14957
14958 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
14959
14960         PR middle-end/26412
14961         * gimplify.c (omp_add_variable): Guard variable size decl test with
14962         DECL_SIZE (decl) check.
14963
14964 2006-02-23  Richard Guenther  <rguenther@suse.de>
14965
14966         PR middle-end/26439
14967         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
14968         like aggregate types.
14969
14970 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
14971
14972         * configure.ac: Add --with{,out}-long-double-128 configure option.
14973         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
14974         * configure: Rebuilt.
14975         * config.in: Rebuilt.
14976         * doc/install.texi (Options specification): Document
14977         --with-long-double-128.
14978
14979         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
14980         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
14981         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
14982         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
14983
14984 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
14985
14986         * config/s390/s390.c (override_options): Handle
14987         TARGET_DEFAULT_LONG_DOUBLE_128.
14988
14989         * config/alpha/alpha.c (override_options): Handle
14990         TARGET_DEFAULT_LONG_DOUBLE_128.
14991
14992         * config/sparc/sparc.c (sparc_override_options): Handle
14993         TARGET_DEFAULT_LONG_DOUBLE_128.
14994
14995 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
14996
14997         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
14998         (real-install-headers-tar, real-install-headers-cpio)
14999         (real-install-headers-cp): New targets.
15000
15001 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
15002
15003         * tree.h (variable_section): Delete.
15004         * varasm.c (variable_section): Delete.
15005
15006 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
15007
15008         * install.texi: Add notes on install.texi2html.
15009         (Building in parallel): Do not use footnotes.
15010
15011 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
15012
15013         PR libgomp/26234
15014         * doc/install.texi (Configuration): Document --disable-libgomp.
15015
15016 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
15017
15018         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
15019
15020 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
15021
15022         * config/i386/sse.md (vec_extractv2df_1_sse): New.
15023         (vec_extractv2df_0_sse): New.
15024
15025 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
15026
15027         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
15028         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
15029         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
15030         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
15031         to the result of the expression.
15032         (def_cfa_1): Adjust.
15033         (frame_pointer_cfa_offset): Rename to...
15034         (frame_pointer_fb_offset): ... this.  Adjust all uses.
15035         (convert_cfa_to_loc_list): Rename to...
15036         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
15037         Pass it on to build_cfa_loc.
15038         (compute_frame_pointer_to_cfa_displacement): Rename to...
15039         (compute_frame_pointer_to_fb_displacement): ... this.  New
15040         offset parameter.  Use it in computation.
15041         (gen_subprogram_die): Compute cfa_fb_offset with the new
15042         macro, and use it to compute the fb loc list and the
15043         displacement.
15044
15045 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
15046
15047         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
15048         replaced with register_operand.
15049         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
15050         non-DREG is expensive.
15051         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
15052         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
15053         involving memory.
15054
15055 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
15056
15057         * doc/install.texi2html: Use set -e.
15058
15059 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
15060
15061         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
15062         (ASM_OUTPUT_SHARED_LOCAL): Delete.
15063         * doc/invoke.texi (-fshared-data): Delete.
15064         * common.opt (fshared-data): Delete.
15065         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
15066         (assemble_static_space): Remove #if 0 code.
15067         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
15068         (ASM_OUTPUT_SHARED_LOCAL): Poison.
15069         * config/cris/cris.h: Remove FIXME.
15070
15071 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
15072
15073         * doc/sourcebuild.texi (Front End Directory): No more double-colon
15074         hooks.
15075
15076 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
15077
15078         PR middle-end/26379
15079         * combine.c (simplify_shift_const_1): Disable nested shifts
15080         optimization for vector shifts.
15081
15082 2006-02-20  Roger Sayle  <roger@eyesopen.com>
15083
15084         PR tree-optimization/26361
15085         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
15086         of unsigned integer types.
15087
15088 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
15089
15090         * tree-chrec.c (eq_evolutions_p): New.
15091         * tree-chrec.h (eq_evolutions_p): Declared.
15092         * tree-data-ref.c: Fix formatting.
15093         (datadep_stats, dependence_stats): New.
15094         (gcd): Moved...
15095         (print_direction_vector): New.
15096         (dump_data_dependence_relation): Use print_direction_vector.
15097         (object_analysis, create_data_ref): Handle COMPONENT_REF.
15098         (compute_subscript_distance): Static.
15099         (initialize_data_dependence_relation): Static.  Get the number
15100         of loops surrounding the references from the callers, and initialize
15101         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
15102         base_object_differ_p analyzers.
15103         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
15104         compute_overlap_steps_for_affine_1_2,
15105         analyze_subscript_affine_affine): Count the classified dependences.
15106         Print a message when a test failed.
15107         (can_use_analyze_subscript_affine_affine): New.
15108         (analyze_siv_subscript): Compute the data dependences on symbolic
15109         scevs that verify can_use_analyze_subscript_affine_affine.
15110         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
15111         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
15112         Handle symbolic scevs.
15113         (analyze_overlapping_iterations): Let symbolic affine scevs to be
15114         analyzed.
15115         (subscript_dependence_tester): Moved...
15116         (build_classic_dist_vector, build_classic_dir_vector): Don't use
15117         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
15118         DDR_SIZE_VECT instead of getting it in parameter.
15119         (subscript_dependence_tester): ... here.  Take as a parameter
15120         loop_nest_depth.  Call build_classic_dist_vector and
15121         build_classic_dir_vector.
15122         (compute_affine_dependence): Update subscript_dependence_tester
15123         parameters.  Update datadep_stats counters.  Call
15124         compute_subscript_distance.
15125         (compute_self_dependence): Save the dist and dir vectors.  Call
15126         compute_subscript_distance.
15127         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
15128         (compute_all_dependences): Reorder parameters as they were before
15129         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
15130         compute_subscript_distance.  Update the use of
15131         compute_affine_dependence and initialize_data_dependence_relation.
15132         (find_data_references_in_loop): Handle COMPONENT_REF.
15133         (compute_data_dependences_for_loop): Initialize dependence_stats.
15134         Don't call build_classic_dist_vector and build_classic_dir_vector.
15135         Update the parameters of initialize_data_dependence_relation and
15136         compute_all_dependences.  Print the statistics from datadep_stats.
15137         (analyze_all_data_dependences): Static.  Not used until the pass for
15138         checking the data dependences is contributed.
15139         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
15140         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
15141         (initialize_data_dependence_relation, compute_affine_dependence,
15142         analyze_all_data_dependences, compute_subscript_distance): Removed.
15143         (print_direction_vector): New.
15144         * lambda.h (gcd): ... here.
15145         (lambda_vector_gcd): Moved here from gcd_vector.
15146         * lambda-code.c (gcd, gcd_vector): Removed.
15147         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
15148         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
15149
15150 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
15151
15152         * ipa-type-escape.c: Tidy some comments and white space.
15153         * tree-ssa-operands.c: Likewise.
15154
15155 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
15156
15157         PR tree-opt/25879
15158         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
15159         (dump_decl_name): Do not walk the decl tree chains.
15160         * tree-pass.h (TDF_CHAIN): Remove.
15161
15162 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
15163
15164         * Makefile.in (C): Remove
15165         (PROTO): Remove
15166         (.PHONY): Remove C and PROTO
15167
15168 2006-02-20  Roger Sayle  <roger@eyesopen.com>
15169
15170         PR middle-end/26236
15171         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
15172         deprecated CHAR_TYPE tree code.
15173
15174 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
15175
15176         * configure.ac (target_list): Add install-info, dvi, html.
15177         * configure: Regenerate.
15178
15179         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
15180         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
15181         treelang/Make-lang.in: Do not use double-colon rules.
15182
15183 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
15184
15185         * tree.h (struct tree_memory_tag): Add is_used_alone member.
15186         (TMT_USED_ALONE): New macro.
15187         * tree-pass.h (PROP_tmt_usage): New property.
15188         (TODO_update_tmt_usage): New todo.
15189         * tree-ssa-alias.c (updating_used_alone): New variable.
15190         (recalculate_used_alone): New function.
15191         (compute_may_aliases): Set updating_used_alone, call
15192         recalculate_used_alone.
15193         * tree-sra.c (pass_sra): Note that this pass destroys
15194         PROP_tmt_usage, and add TODO_update_tmt_usage.
15195         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
15196         * tree-flow.h (updating_used_alone): Prototype.
15197         (recalculate_used_alone): Ditto.
15198         * passes.c (execute_todo): Add code to set updating_used_alone,
15199         and call recalculate.
15200         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
15201         for clobber if used alone, and add assert to verify used_alone
15202         status.
15203
15204 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
15205
15206         * config/s390/s390.c (legitimize_pic_address): Assertions checking
15207         for non tls symbols added.
15208         (legitimize_address): Do nothing for PLUS expressions if one of the
15209         addends is a tls symbol reference.
15210
15211 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
15212
15213         PR bootstrap/25476
15214
15215         * Makefile.in (LDFLAGS): Define from autoconf substitution.
15216
15217         * Makefile.in (BOOTSTRAPPING): New.
15218         (quickstrap): New definition if BOOTSTRAPPING=yes.
15219
15220         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
15221         * configure.ac: Substitute all_selected_languages with the languages
15222         that were configured.  For all the other variables except
15223         lang_specs_files, include all the languages in the tree.
15224         * configure: Regenerate.
15225
15226         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
15227         if there is one.  Run the commands to run fixincludes in the same
15228         subshell.
15229
15230         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
15231         * doc/install.texi: Document exact conventions for searching target tools.
15232         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
15233         something more about building an Ada cross-compiler.  Don't list GNU Make
15234         requirements which affect all platforms.
15235
15236 2006-02-19  Roger Sayle  <roger@eyesopen.com>
15237
15238         PR middle-end/19543
15239         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
15240         only equivalent if the have both the same mode and precision.
15241
15242 2006-02-20  Ben Elliston  <bje@au.ibm.com>
15243
15244         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
15245
15246 2006-02-19  Roger Sayle  <roger@eyesopen.com>
15247             Steven Bosscher  <stevenb.gcc@gmail.com>
15248
15249         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
15250         constant pool references to identify stack mode constants.
15251         * rtlanal.c (constant_pool_constant_p): New predicate to check
15252         whether operand is a floating point constant in the pool.
15253         * rtl.h (constant_pool_constant_p): Prototype here.
15254         * loop.c (scan_loop): Avoid hoisting constants from the constant
15255         pool on STACK_REGS targets.
15256         (load_mems): Likewise.
15257         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
15258         loads into x87 registers expensive in terms of register pressure.
15259
15260 2006-02-19  Roger Sayle  <roger@eyesopen.com>
15261
15262         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
15263         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
15264
15265 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
15266
15267         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
15268         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
15269
15270 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
15271
15272         * doc/invoke.texi: Document -fipa-pta.
15273         * common.opt: Add ipa-pta option.
15274         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
15275         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
15276         (do_ds_constraint): Ditto.
15277         (get_constraint_for): Only add to referenced_vars if
15278         referenced_vars exists.
15279         (insert_into_field_list): Rewrite to do this unsorted.
15280         (insert_into_field_list_sorted): Rename old insert_into_field_list
15281         to this.
15282         (create_function_info_for): Use insert_into_field_list_sorted.
15283         (create_variable_info_for): Rewrite so it uses unsorted version,
15284         since the field list is sorted.
15285         (intra_create_variable_infos): Only add to referenced_vars if
15286         referenced_vars exists.
15287         (ipa_pta_execute): Init heapvars, and delete when done.
15288         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
15289
15290 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15291
15292         * doc/install.texi: Add missing `@samp'.
15293
15294 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
15295
15296         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
15297         Use the arguments.
15298
15299 2006-02-18  Mark Wielaard  <mark@klomp.org>
15300
15301         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
15302         who added new 4.1 features, bug fixes and integration support.
15303
15304 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
15305
15306         PR target/26350
15307         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
15308         MEM for ABI_V4 pic.
15309
15310 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
15311
15312         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
15313         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
15314         (copy_insn_1): Likewise.  Don't copy each field individually.
15315         Reindent.
15316         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
15317         of RTX_SIZE.
15318         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
15319         * rtl.c (rtx_size): Rename variable to...
15320         (rtx_code_size): ...this.
15321         (rtx_size): New function.
15322         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
15323         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
15324         Reindent.
15325         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
15326         * rtl.h (rtx_code_size): New variable.
15327         (rtx_size): Change from a variable to a function.
15328         (RTX_SIZE): Rename to...
15329         (RTX_CODE_SIZE): ...this.
15330
15331         PR target/9703
15332         PR tree-optimization/17106
15333         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
15334         (Anchored Addresses): New section.
15335         * doc/invoke.texi (-fsection-anchors): Document.
15336         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
15337         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
15338         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
15339         * hooks.c (hook_bool_mode_rtx_false): New function.
15340         * hooks.h (hook_bool_mode_rtx_false): Declare.
15341         * gengtype.c (create_optional_field): New function.
15342         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
15343         SYMBOL_REF_IN_BLOCK_P is true.
15344         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
15345         (min_anchor_offset, max_anchor_offset): Likewise.
15346         (use_anchors_for_symbol_p): New hook.
15347         * toplev.c (compile_file): Call output_object_blocks.
15348         (target_supports_section_anchors_p): New function.
15349         (process_options): Check that -fsection-anchors is only used on
15350         targets that support it and when -funit-at-a-time is in effect.
15351         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
15352         if the decl doesn't have one.
15353         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
15354         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
15355         of force_const_mem through use_anchored_address.
15356         (expand_expr_constant): New function.
15357         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
15358         calling expand_expr for INDIRECT_REF.
15359         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
15360         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
15361         * expr.h (use_anchored_address): Declare.
15362         * loop-unroll.c: Don't declare rtx vectors here.
15363         * explow.c: Include output.h.
15364         (validize_mem): Call use_anchored_address.
15365         (use_anchored_address): New function.
15366         * common.opt (-fsection-anchors): New switch.
15367         * varasm.c (object_block_htab, anchor_labelno): New variables.
15368         (hash_section, object_block_entry_eq, object_block_entry_hash)
15369         (use_object_blocks_p, get_block_for_section, create_block_symbol)
15370         (use_blocks_for_decl_p, change_symbol_section): New functions.
15371         (get_variable_section): New function, split out from assemble_variable.
15372         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
15373         use_blocks_for_decl_p say so.  Use change_symbol_section if the
15374         symbol has already been created.
15375         (assemble_variable_contents): New function, split out from...
15376         (assemble_variable): ...here.  Don't output any code for
15377         block symbols; just pass them to place_block_symbol.
15378         Use get_variable_section and assemble_variable_contents.
15379         (get_constant_alignment, get_constant_section, get_constant_size): New
15380         functions, split from output_constant_def_contents.
15381         (build_constant_desc): Create a block symbol if use_object_blocks_p
15382         says so.  Or into SYMBOL_REF_FLAGS.
15383         (assemble_constant_contents): New function, split from...
15384         (output_constant_def_contents): ...here.  Don't output any code
15385         for block symbols; just pass them to place_section_symbol.
15386         Use get_constant_section and get_constant_alignment.
15387         (force_const_mem): Create a block symbol if use_object_blocks_p and
15388         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
15389         (output_constant_pool_1): Add an explicit alignment argument.
15390         Don't switch sections here.
15391         (output_constant_pool): Adjust call to output_constant_pool_1.
15392         Switch sections here instead.  Don't output anything for block symbols;
15393         just pass them to place_block_symbol.
15394         (init_varasm_once): Initialize object_block_htab.
15395         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
15396         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
15397         (place_block_symbol, get_section_anchor, output_object_block)
15398         (output_object_block_htab, output_object_blocks): New functions.
15399         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
15400         (TARGET_ASM_OUT): Include it.
15401         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
15402         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
15403         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
15404         (TARGET_INITIALIZER): Include them.
15405         * rtl.c (rtl_check_failed_block_symbol): New function.
15406         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
15407         (block_symbol, object_block): New structures.
15408         (rtx_def): Add a block_symbol field to the union.
15409         (BLOCK_SYMBOL_CHECK): New macro.
15410         (rtl_check_failed_block_symbol): Declare.
15411         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
15412         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
15413         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
15414         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
15415         * output.h (output_section_symbols): Declare.
15416         (object_block): Name structure.
15417         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
15418         (default_use_anchors_for_symbol_p): Declare.
15419         * Makefile.in (RTL_BASE_H): Add vec.h.
15420         (explow.o): Depend on output.h.
15421         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
15422         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
15423         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
15424         (rs6000_use_blocks_for_constant_p): New function.
15425
15426 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15427
15428         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
15429
15430 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
15431
15432         PR tree-opt/25680
15433         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
15434         IMAGPART_EXPR.
15435
15436 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
15437
15438         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
15439         is_aliased.
15440         Update all users.
15441
15442 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
15443
15444         PR middle-end/26334
15445         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
15446         instead of DECL_REGISTER.
15447
15448 2006-02-18  Olivier Hainque  <hainque@adacore.com>
15449
15450         PR ada/13408
15451         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
15452
15453 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
15454
15455         PR target/24837
15456         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
15457         * opth-gen.awk: Handle Var and InverseMask together.
15458         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
15459         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
15460         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
15461         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
15462         used together.
15463         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
15464         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
15465         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
15466         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
15467         LINUX_DYNAMIC_LINKER): Define.
15468         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
15469         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
15470         TARGET_GLIBC.
15471         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
15472         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
15473         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
15474         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15475         (TARGET_C99_FUNCTIONS): Don't define.
15476         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
15477         GLIBC_DYNAMIC_LINKER.
15478         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
15479         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
15480         GLIBC_DYNAMIC_LINKER64): Define.
15481         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
15482         LINUX_DYNAMIC_LINKER64.
15483         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
15484         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15485         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
15486         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15487         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
15488         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15489         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
15490         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
15491         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
15492         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
15493         and LINUX_DYNAMIC_LINKER32.
15494         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
15495         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15496         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
15497         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15498         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
15499         TARGET_GLIBC.
15500         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
15501         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
15502         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
15503         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
15504         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
15505         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
15506         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
15507         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
15508         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
15509         LINUX_DYNAMIC_LINKER): Define.
15510         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
15511         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
15512         GLIBC_DYNAMIC_LINKER64): Define.
15513         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
15514         LINUX_DYNAMIC_LINKER64.
15515         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
15516         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15517         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
15518         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
15519         LINUX_DYNAMIC_LINKER): Define.
15520         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15521         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
15522         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
15523         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
15524         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
15525         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
15526         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
15527         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
15528         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
15529         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
15530         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15531         * doc/invoke.texi (-muclibc): Remove caveat about supported
15532         targets.
15533
15534 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
15535
15536         * doc/cpp.texi (__TIMESTAMP__): Document.
15537
15538 2006-02-17  Roger Sayle  <roger@eyesopen.com>
15539
15540         PR middle-end/25600
15541         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
15542         C is one less than the width of X (and related transformations).
15543         * simplify-rtx.c (simplify_unary_operation_1): Transform
15544         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
15545         depending on STORE_FLAG_VALUE, were C is one less then the
15546         width of X.
15547
15548 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
15549
15550         Fix PR tree-optimization/26341
15551         * tree-ssa-operands.c (add_virtual_operand): Remove assert
15552         about NAME_MEMORY_TAG's.
15553
15554 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15555
15556         PR target/26255
15557         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
15558         with hardware float support, and software float support.  Add fcpy
15559         alternative to hardware patterns.  Add alternatives to copy between
15560         general and floating-point registers to the 32-bit pattern.
15561         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
15562         secondary reload to load a QI or HI mode constant into a floating
15563         point register.
15564         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
15565         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
15566
15567 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
15568
15569         PR target/26272
15570         * config/rs6000/darwin.md (load_macho_picbase_si): Add
15571         pc to the pattern.
15572         (load_macho_picbase_di): Likewise.
15573
15574 2006-02-16  Jeff Law  <law@redhat.com>
15575
15576         * tree-vrp.c (set_value_range_to_nonnegative): New function.
15577         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
15578         (ssa_name_nonzero_p): Likewise.
15579         (get_value_range): Return NULL if VRP is not running.
15580         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
15581         VRP routines do not discover a range.
15582         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
15583         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
15584         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
15585         (tree_expr_nonnegative_p): Similarly.
15586         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
15587         (restore_nonzero_vars_to_original_value): Remove.
15588         (unsafe_associative_fp_binop): Remove.
15589         (tree_ssa_dominator_optimize): Remove initialization and
15590         finalization of nonzero_vars and nonzero_vars_stack.
15591         (dom_opt_initialize_block): No longer push marker on
15592         nonzero_vars_stack.
15593         (dom_opt_finalize_block): No longer call
15594         restore_nonzero_vars_to_original_value.
15595         (record_equivalences_from_phis): No longer look for
15596         nonzero PHI arguments.
15597         (cprop_into_successor_phis): No longer propagate nonzero
15598         property into PHI arguments.  Lose unused argument.  Caller
15599         updated.
15600         (record_equivalences_from_stmt): No longer record nonzero
15601         values for SSA_NAMEs.
15602         (lookup_avail_expr): No longer use nonzero_vars.
15603
15604         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
15605         for sizetype when sizetype is unsigned.
15606
15607 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
15608
15609         PR rtl-optimization/25603
15610         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
15611         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
15612         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
15613         with new meaning of SETS.
15614
15615 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
15616
15617         PR target/20353
15618         PR target/24578
15619         PR target/24837
15620         * config/linux.opt: New file.
15621         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
15622         LINUX_DYNAMIC_LINKER): Define.
15623         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
15624         * config.gcc (*-*-linux*): Define extra_options.
15625         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
15626         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
15627         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
15628         GLIBC_DYNAMIC_LINKER.
15629         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
15630         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15631         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
15632         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
15633         * doc/invoke.texi (GNU/Linux Options): New section.
15634
15635 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
15636
15637         * config/sparc/sparc.md (setjmp): Rewrite.
15638         (setjmp_32): Delete.
15639         (setjmp_64): Likewise.
15640
15641 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
15642
15643         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
15644          previous change.
15645
15646 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
15647
15648         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
15649         read-write uses.
15650
15651 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
15652
15653         PR rtl-optimization/26296
15654         * Makefile.in (loop-invariant.c): Add except.h dependency.
15655         * loop-invariant.c: Include except.h.
15656         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
15657
15658 2005-02-16  Paul Brook  <paul@codesourcery.com>
15659
15660         * reload1.c (emit_reload_insns): Invalidate dead input registers used
15661         for reloads.
15662
15663 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
15664
15665         PR rtl-optimization/25636
15666         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
15667         when deciding whether an insn is an initializing insn.
15668
15669 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
15670
15671         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
15672         (tree_code_size): Ditto.
15673         * tree.h (struct tree_memory_tag): Remove parent_var.
15674         (struct tree_struct_field_tag): New.
15675         (SFT_OFFSET): New.
15676         (SFT_SIZE): New.
15677         (union tree_node): Add sft member.
15678         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
15679         specially here.
15680         (create_sft): Add size and offset argument, set SFT_OFFSET and
15681         SFT_SIZE.
15682         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
15683         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
15684         * tree-flow-inline.h (get_subvar_at): Update for
15685         SFT_OFFSET/SFT_SIZE.
15686         (var_can_have_subvars): Ditto.
15687         (overlap_subvar): Ditto.
15688         * print-tree.c (print_node): Print out interesting things for
15689         SFT's.
15690         * tree-flow.h (struct subvar): Remove offset and size members.
15691         * tree-ssa-operands.c (get_expr_operands): Update for
15692         get_indirect_ref_operands changes.
15693         (get_indirect_ref_operands): Call add_virtual_operand instead of
15694         add_stmt_operand.  Only recurse on base var if requested.
15695         (access_can_touch_variable): New function.
15696         (add_stmt_operand): Split virtual operand handling into ...
15697         (add_virtual_operand): Here.  Add offset, size, and for_clobber
15698         arguments.  Prune alias sets.
15699         (add_call_clobber_ops): Call add_virtual_operand.
15700
15701 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
15702
15703         PR middle-end/26300
15704         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
15705
15706         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
15707         than TREE_CODE as index into omp_clause_num_ops array.
15708
15709 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
15710
15711         PR rtl-optimization/26184
15712         * modulo-sched.c (generate_reg_moves): Free bitmap vector
15713         uses_of_defs.
15714         * modulo-sched.c (sms_schedule): Free g_arr pointer.
15715         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
15716         must_precede, must_follow and tobe_scheduled.
15717
15718         PR other/26147
15719         * opts.c (common_handle_option): Free new_option pointer.
15720         * df-core.c (df_analyze): Free postorder pointer.
15721
15722 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
15723
15724         * Makefile.in: Fix the examples about the use of stamps
15725
15726 2006-02-15  Michael Matz  <matz@suse.de>
15727
15728         PR middle-end/22275
15729
15730         * stor-layout.c (layout_decl): Zero-width bitfields aren't
15731         influenced by maximum_field_alignment or DECL_PACKED.
15732         (update_alignment_for_field): Ditto.
15733         (place_field): Ditto.
15734         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
15735         this behaviour.
15736
15737 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
15738
15739         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
15740         (debug_flow_info): Pass it.
15741         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
15742         * bb-reorder.c (reorder_basic_blocks): Likewise.
15743         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
15744         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
15745         * flow.c (life_analysis, recompute_reg_usage): Likewise.
15746         * gcse.c (gcse_main, bypass_jumps): Likewise.
15747         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
15748         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
15749         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
15750         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
15751         * rtl.h (dump_flow_info): Adjust prototype.
15752         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
15753         * var-tracking.c (variable_tracking_main): Likewise.
15754         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
15755         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
15756         options.
15757
15758 2006-02-15  Marcin Dalecki <martin@dalecki.de>
15759
15760         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
15761         construction.
15762
15763 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
15764
15765         PR tree-optimization/26209
15766         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
15767         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
15768         eh edges.
15769         * tree-cfg.c (replace_uses_by): Do not alter cfg.
15770
15771 2006-02-14  Roger Sayle  <roger@eyesopen.com>
15772
15773         PR middle-end/23670
15774         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
15775         (X,Y) and the corresponding symmetry related transformations.
15776         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
15777         (X,Y) and its symmetry related transformations.
15778
15779 2006-02-14  Roger Sayle  <roger@eyesopen.com>
15780
15781         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
15782         and GEU.
15783
15784 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
15785
15786         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
15787
15788 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15789
15790         PR bootstrap/26053
15791         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
15792         support COMDAT group.
15793         * configure: Regenerate.
15794
15795 2006-02-14  Roger Sayle  <roger@eyesopen.com>
15796
15797         PR middle-end/26279
15798         PR middle-end/26280
15799         PR middle-end/26283
15800         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
15801
15802 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
15803
15804         Fix PR tree-optimization/26260
15805
15806         * doc/invoke.texi (max-fields-for-field-sensitive): Document
15807         param.
15808         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
15809         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
15810         * tree-ssa-structalias.c (create_variable_info_for): Use
15811         MAX_FIELDS_FOR_FIELD_SENSITIVE.
15812
15813 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
15814
15815         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
15816         Document.
15817         * tree-ssa-loop-niter.c (number_of_iterations_ne,
15818         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
15819         of the ending condition.
15820         * tree-ssa-loop-manip.c: Include params.h.
15821         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
15822         tree_unroll_loop): New functions.
15823         * tree-pass.h (pass_loop_prefetch): Declare.
15824         * loop.c (rest_of_handle_loop_optimize): Test for
15825         -fprefetch-loop-arrays-rtl.
15826         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
15827         * timevar.def (TV_TREE_PREFETCH): New timevar.
15828         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
15829         pass_loop_prefetch): New.
15830         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
15831         (cleanup_tree_cfg_loop): Call scev_reset.
15832         * common.opt (fprefetch-loop-arrays-rtl): Add.
15833         * tree-ssa-loop-prefetch.c: New file.
15834         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
15835         (new_temp_expr_table): Initialize expr_vars.
15836         (free_temp_expr_table): Cleanup expr_vars.
15837         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
15838         expressions from being merged into one.
15839         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
15840         (struct tree_niter_desc): Add control, bound and cmp fields.
15841         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
15842         Declare.
15843         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
15844         (tree-cfgcleanup.o): Add SCEV_H dependency.
15845         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
15846         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
15847
15848 2006-02-14  Richard Guenther  <rguenther@suse.de>
15849
15850         PR tree-optimization/26258
15851         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
15852         in PHI argument processing.
15853
15854 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
15855
15856         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
15857         new expression in the requested machine mode.
15858
15859 2006-02-13  Roger Sayle  <roger@eyesopen.com>
15860
15861         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
15862         directly, instead let do_compare_rtx_and_jump handle this for us.
15863         * expr.c (expand_expr_real_1): Likewise.
15864         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
15865         before do_jump_by_parts_greater.
15866         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
15867         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
15868
15869 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15870
15871         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
15872
15873 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
15874
15875         PR rtl-optimization/26235
15876         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
15877         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
15878         format.
15879
15880 2006-02-13  Jeff Law  <law@redhat.com>
15881
15882         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
15883         TRUTH_XOR_EPR.
15884
15885 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
15886
15887         PR middle-end/26092
15888         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
15889         twice if decl is a builtin.  When trying again, call get_callee_fndecl
15890         first to verify it is still a builtin.
15891
15892 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
15893
15894         * dwarf2out.c (base_type_die): Don't add AT_name here.
15895         (subrange_type_die): Don't add AT_name here.
15896         (modified_type_die): Rearrange code flow.  Do add AT_name here.
15897
15898 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
15899
15900         PR rtl-optimization/26247
15901         PR rtl-optimization/26248
15902         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
15903
15904 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
15905
15906         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
15907         * config/fixtfdi.c: Likewise.
15908         * config/fixunstfdi.c: Likewise.
15909         * config/floatditf.c: Likewise.
15910
15911 2006-02-13  Roger Sayle  <roger@eyesopen.com>
15912
15913         PR middle-end/24427
15914         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
15915         into (X,C2) if C1 is a subset of the bits of C2.  Transform
15916         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
15917         (X&(C1&~C2))|C2.
15918         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
15919
15920 2006-02-13  Josh Conner  <jconner@apple.com>
15921
15922         PR target/25376
15923         * varasm.c (function_section): Check for section name before
15924         calling select_section on targets that define
15925         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
15926         unlikely_text_section instead of hot_function_section if
15927         first_function_block_is_cold.
15928
15929 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
15930
15931         PR middle-end/25335
15932         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
15933
15934 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
15935
15936         PR rtl-optimization/26222
15937         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
15938         after tree->rtl expansion.
15939         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
15940         before passing it to emit_move_insn.
15941
15942 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15943
15944         * doc/invoke.texi (-Write-strings): Document that it is enabled by
15945         default.
15946         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
15947         Clarify documentation.
15948         * c-common.h (warn_write_strings): Remove.
15949         * c-common.c (warn_write_strings): Likewise.
15950         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
15951         default for C++.
15952
15953 2006-02-12  Roger Sayle  <roger@eyesopen.com>
15954
15955         PR middle-end/25724
15956         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
15957         (do_jump_parts_zero_rtx): New function renamed from
15958         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
15959         (do_jump_parts_equality_rtx): New function split out from
15960         do_jump_parts_equality.  Old implementation renamed as above.
15961         Call do_jump_parts_zero_rtx if either operand is zero.
15962         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
15963         do all of the heavy lifting.
15964         (do_compare_rtx_and_jump): Handle multi-word comparisons by
15965         calling either do_jump_by_parts_greater_rtx or
15966         do_jump_by_parts_equality_rtx.
15967         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
15968         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
15969         moved to do_compare_rtx_and_jump, call it directly.
15970         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
15971         mode argument.  Call do_compare_rtx_and_jump.
15972         (emit_case_nodes): Update calls to do_jump_if_equal.
15973
15974 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
15975
15976         PR rtl-optimization/26225
15977         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
15978
15979 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
15980
15981         PR rtl-optimization/26232
15982         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
15983
15984 2006-02-11  Jason Merrill  <jason@redhat.com>
15985
15986         PR tree-opt/24365
15987         * tree-inline.c (declare_return_variable): Just don't use the
15988         modify target if it's a gimple complex reg and the return slot
15989         isn't.
15990
15991 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15992
15993         * doc/contrib.texi: Update my entry.
15994
15995 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
15996
15997         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
15998
15999 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
16000
16001         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
16002         expensive.
16003
16004 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
16005
16006         * doc/invoke.texi (-floop-optimize2): Removed.
16007         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
16008         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
16009         Test flag_branch_on_count_reg only if HAVE_doloop_end.
16010         * common.opt (floop-optimize2): Removed.
16011         (fmove-loop-invariants): Enabled by default.
16012
16013 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
16014
16015         * tree-if-conv.c (combine_blocks): Free the result of
16016         get_loop_exit_edges.
16017
16018 2006-02-10  Jeff Law  <law@redhat.com>
16019
16020         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
16021
16022         PR tree-optimization/26213
16023         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
16024         loop trying to follow SSA_NAME_VALUE chains.
16025
16026 2006-02-10  Richard Guenther  <rguenther@suse.de>
16027
16028         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
16029         deal with structures that end in implicitly variable sized arrays.
16030
16031 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
16032
16033         PR rtl-optimization/24762
16034         * df-scan.c (df_bb_refs_record): Record correct registers defined on
16035         eh edges.
16036
16037 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
16038
16039         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
16040         (struct ivopts_data): Add regs_used field.
16041         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
16042         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
16043         instead of loop_data->regs_used;
16044         (free_loop_data): Do not free aux fields for loops.
16045         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
16046         and tree_ssa_iv_optimize_finalize.
16047
16048 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
16049
16050         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
16051
16052 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
16053
16054         PR target/26141
16055         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
16056         computing the effective result type.
16057
16058 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
16059
16060         PR inline-asm/16194
16061         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
16062         (tree_overlaps_hard_reg_set): Declare.
16063         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
16064         type and signature to match function type expected by walk_tree.
16065         (tree_overlaps_hard_reg_set): New function.
16066         (decl_conflicts_with_clobbers_p): Rename to:
16067         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
16068         Use tree_overlaps_hard_reg_set.  Changed caller.
16069         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
16070         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
16071         * cris.c (cris_md_asm_clobbers): Likewise.
16072
16073 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
16074
16075         * reload1.c (emit_input_reload_insns): Delete code that tries to
16076         inherit using find_equiv_reg.
16077
16078 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
16079
16080         * c-common.h (flag_const_strings): Don't declare.
16081         * c-common.c (flag_const_strings): Remove.
16082         * c.opt (fconst_strings): Remove.
16083         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
16084         <OPT_Wwrite_strings>: Don't set flag_const_strings.
16085         (c_common_init_options): Don't set flag_const_strings.
16086         * doc/invoke.texi (-fno-const-strings): Remove documentation.
16087
16088 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
16089
16090         * arm.md (tlobits_cbranch): New pattern.
16091         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
16092         testing a single bit.
16093
16094 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
16095
16096         PR tree-opt/26179
16097         * tree-ssa-pre.c (create_component_ref_by_pieces):
16098         Handle RETURN_DECL like VAR_DECL.
16099
16100 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
16101
16102         PR middle-end/26134
16103         * fold-const.c (fold_indirect_ref_1): Fold
16104         "*(foo *)&complexfoo" to "__real__ complexfoo"
16105         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
16106
16107 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
16108
16109         * tree-flow-inline.h (var_can_have_subvars):
16110         Volatile variables should not have subvariables.
16111
16112 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
16113
16114         PR 26180
16115         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
16116         multiplying unsigned values.
16117         Tidy comments.
16118
16119 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16120
16121         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
16122
16123 2006-02-08  Jason Merrill  <jason@redhat.com>
16124
16125         PR c++/25979
16126         * tree.def: Elaborate on difference from MODIFY_EXPR.
16127         * doc/c-tree.texi (INIT_EXPR): Likewise.
16128         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
16129         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
16130         (gimplify_target_expr): Likewise.
16131         (gimplify_cond_expr): Remove target handling.
16132         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
16133         (gimplify_expr): Clobber it here.
16134         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
16135         Do return slot optimization if we have an INIT_EXPR.
16136
16137         PR tree-opt/24365
16138         * tree-inline.c (declare_return_variable): Also clear
16139         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
16140
16141         PR c++/16405
16142         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
16143
16144         PR middle-end/22439
16145         * gimplify.c (gimplify_one_sizepos): Fix typo.
16146
16147 2006-02-08  Jeff Law  <law@redhat.com>
16148
16149         PR tree-optimization/21417
16150         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
16151         across a backedge if the control statement at the end of the
16152         block is data dependent on other statements in the same block.
16153         (record_temporary_equivalences_from_stmts): Remove over-conservative
16154         test for threading across backedges.
16155
16156         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
16157         control statement, handle all three special cases in the same
16158         manner as they all have the same desired solution.  No longer
16159         special case edge flag updating when the post dominator is
16160         the exit block.
16161
16162 2006-02-08  Roger Sayle  <roger@eyesopen.com>
16163
16164         * tree.def (CHAR_TYPE): Remove.
16165         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
16166         * dwarf2out.c (base_type_die, is_base_type): Likewise.
16167         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
16168         (gen_string_type_die): Delete unreachable function.
16169
16170         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
16171         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
16172         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
16173         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
16174         * builtins.c (type_to_class): Likewise.
16175         * fold-const.c (fold_convert, build_range_check,
16176         merge_ranges): Likewise.
16177         * expr.c (count_type_elements): Likewise.
16178         * c-pretty-print.c (pp_c_type_specifier): Likewise.
16179         * stor-layout.c (layout_type): Likewise.
16180         * ipa-type-escape.c (type_to_consider): Likewise.
16181         * gimplify.c (omp_firstprivatize_type_sizes,
16182         gimplify_type_sizes): Likewise.
16183         * explow.c (promote_mode): Likewise.
16184         * tree-sra.c (is_sra_scalar_type): Likewise.
16185         * varasm.c (output_constant): Likewise.
16186         * tree-inline.c (remap_type_1): Likewise.
16187         * convert.c (convert_to_pointer, convert_to_real,
16188         convert_to_integer, convert_to_complex): Likewise.
16189
16190 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
16191
16192         * df-scan.c (df_def_record_1): A set destination may
16193         be a parallel regardless of mode.
16194
16195 2006-02-08  Roger Sayle  <roger@eyesopen.com>
16196
16197         PR target/22209
16198         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
16199         * config/mips/_tilib.c: Remove.
16200         * config/fixtfdi.c: New libgcc source file.
16201         * config/fixunstfdi.c: New source file.
16202         * config/floatditf.c: New source file.
16203         * config/floatunditf.c: New souce file.
16204         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
16205         files above instead of config/mips/_tilib.c.
16206         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
16207
16208 2006-02-08  Jeff Law  <law@redhat.com>
16209
16210         PR tree-optimization/26169
16211         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
16212         threading jumps.
16213
16214 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
16215
16216         * df.h (DF_REG_SIZE): Return the length of the initialized
16217         part of the array.
16218
16219 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
16220
16221         * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
16222         __muldf3): Return a correctly signed zero.
16223
16224 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
16225
16226         * passes.c (register_one_dump_file): Accept the current properties
16227         instead of pass number.  Adjust call to dump_register.  Remove
16228         duplicated code.
16229         (register_dump_files): Now a wrapper around...
16230         (register_dump_files_1): ... this one.  Do not modify the pass
16231         structure.
16232         (next_pass_1): Cosmetic fix.
16233         (execute_todo): Keep second parameter only.  Use curr_properties
16234         instead of fetching it from the pass structure.  Check and set
16235         last_verified.
16236         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
16237         instead of fetching it from the pass structure.  Fix calls to
16238         execute_todo.  Update curr_properties and initialize .vcg RTL dump
16239         after running the pass.  Reset last_verified.
16240         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
16241         at the beginning.
16242         (FIRST_AUTO_NUMBERED_DUMP): New.
16243         (dump_register): Remove "num" parameter, assign it within the
16244         function.
16245         (get_dump_file_name): Modify template for dumps.
16246         * tree-dump.h (dump_register): Adjust prototype.
16247         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
16248         (PROP_trees): Add PROP_gimple_lomp.
16249         (TODO_set_props): New.
16250         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
16251         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
16252         * cfgexpand.c (pass_expand): Destroy PROP_trees.
16253
16254 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
16255
16256         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
16257         (sparc64-*-linux*): Likewise.
16258         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
16259         * config/sparc/t-linux: New file.
16260         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
16261         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
16262         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
16263         -m32 -mlong-double-128.
16264
16265         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
16266         * config/alpha/t-linux: New file.
16267         * config/alpha/libgcc-alpha-ldbl.ver: New file.
16268
16269         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
16270         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
16271         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
16272         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
16273         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
16274         (CPP_ARCH32_SPEC): Remove.
16275
16276 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
16277
16278         PR tree-optimization/26145
16279         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
16280         bbs pointer.
16281
16282 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16283
16284         PR target/26109
16285         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
16286         >= 240000 when generating code for SOM runtime.
16287         (output_indirect_call): Don't use "b,l" instruction for indirect calls
16288         to $$dyncall when generating code for SOM runtime..
16289
16290 2006-02-07  Dirk Mueller  <dmueller@suse.com>
16291
16292         PR c++/18150
16293         * doc/invoke.texi (-Wsequence-point): Update documentation
16294         that -Wsequence-point is implemented for C++ as well.
16295
16296 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
16297
16298         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
16299         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
16300         (LIB_SPEC): Likewise.
16301         * doc/invoke.texi (SPARC options): Document -pthread.
16302
16303 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
16304
16305         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
16306         PIC addresses.
16307
16308 2006-02-07  Roger Sayle  <roger@eyesopen.com>
16309
16310         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
16311         Correct comment describing BOOLEAN_TYPE.
16312
16313 2006-02-07  Dirk Mueller  <dmueller@suse.com>
16314
16315         * c.opt: C++ frontend supports -Wdiv-by-zero.
16316         * c-opts.c (c_common_handle_option): Remove dead case.
16317
16318 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
16319
16320         * configure.ac (TLS assembler check): Do not enable TLS by
16321         default on SPARC/Solaris before version 10.
16322         * configure: Regenerate.
16323
16324 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
16325
16326         * doc/invoke.texi (xl-compat): Document conversion and support
16327         routine names.
16328
16329 2006-02-07  Jeff Law  <law@redhat.com>
16330
16331         * tree-vrp.c (find_conditional_asserts): Update comments.
16332         (simplify_stmt_for_jump_threading): New.
16333         (identify_jump_threads, finalize_jump_threads): New.
16334         (vrp_finalize): Call identify_jump_threads.
16335         (execute_vrp): Call finalize_jump_threads.
16336         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
16337         (vrp_element, vrp_data, vrp_element_p): Remove.
16338         (vrp_hash_elt, vrp_variables_stack): Remove.
16339         (vrp_hash, vrp_eq, record_range): Remove.
16340         (simplify_cond_and_lookup_avail_expr): Remove.
16341         (extract_range_from_cond): Remove.
16342         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
16343         (simplify_stmt_for_jump_threading): New.
16344         (dom_thread_across_edge): New wrapper.
16345         (tree_ssa_dominator_optimize): No longer initialize or
16346         finalize any of the VRP datastructures.  Remove iteration
16347         step and simplify as a result of removal of iteration step.
16348         (pass_dominator): Perform a cfg cleanup after DOM.
16349         (dom_opt_finalize_block): Use the new common routines
16350         for threading jumps.  Simplify stack management slightly.
16351         No longer need to unwind VRP state.
16352         (record_equivalences_from_incoming_edge): No longer record
16353         VRP information.
16354         (eliminate_redundant_computations): No longer call
16355         simplify_cond_and_lookup_avail_expr.
16356         * tree-flow.h (potentially_threadable_block): Prototype.
16357         (thread_across_edge): Likewise.
16358         * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
16359         (tree-ssa-threadedge.o): Add dependencies.
16360         * tree-ssa-threadedge.c: New file.
16361         * passes.c (init_optimization_passes): Merge PHIs before
16362         calling VRP.  Run VRP again late in the SSA optimization pipeline.
16363
16364 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
16365
16366         * df-core.c (df_set_blocks): Do not dereference function pointers.
16367         (df_finish1): Likewise.
16368         (df_hybrid_search_forward): Likewise.
16369         (df_hybrid_search_backward): Likewise.
16370         (df_iterative_dataflow): Likewise.
16371         (df_analyze_problem): Likewise.
16372         (df_compact_blocks): Likewise.
16373         (df_dump): Likewise.
16374         * df-scan.c (df_rescan_blocks): Likewise.
16375         (df_record_entry_block_defs): Likewise.
16376
16377         * genconditions.c (write_conditions): Guard the definition of
16378         'insn_conditions' with the check on GCC version.
16379         (write_writer): Guard the traversal 'insn_conditions' with
16380         the check on GCC version.
16381
16382 2006-02-07  Richard Guenther  <rguenther@suse.de>
16383
16384         PR c++/26140
16385         Revert
16386         2006-01-30  Richard Guenther  <rguenther@suse.de>
16387         PR c++/23372
16388         * gimplify.c (gimplify_target_expr): Handle easy cases
16389         without creating a temporary.
16390
16391 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
16392
16393         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
16394         use of float in probability computations.  Use edge probabilities
16395         in place of statically computed probabilities.
16396         (min_spec_prob): New static variable.
16397         (schedule_insns): Initialize it.
16398         (GET_SRC_PROB): Removed.
16399         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
16400
16401 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
16402
16403         PR debug/24444
16404         * config/ia64/unwind-ia64.c: Revert last change.
16405         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
16406         (INCOMING_FRAME_SP_OFFSET): Define.
16407
16408 2006-02-06  Roger Sayle  <roger@eyesopen.com>
16409
16410         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
16411
16412 2006-02-07  Ben Elliston  <bje@au.ibm.com>
16413
16414         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
16415         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
16416         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
16417         (ix86_return_in_memory): Handle TDmode.
16418         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
16419         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
16420
16421 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
16422
16423         * reorg.c (dbr_schedule): Use dump_file instead of file.
16424
16425 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
16426
16427         PR target/25917
16428         * config/ia64/predicates.md (extr_len_operand): New predicate.
16429         * config/ia64/ia64.md (extv): Tighten constraints.
16430         (extzv): Ditto.
16431         (*tbit_and_2): Ditto.
16432         (*tbit_and_3): Ditto.
16433         (*tbit_or_2): Ditto.
16434         (*tbit_or_3): Ditto.
16435         (*bit_zero): Ditto.
16436         (*bit_one): Ditto.
16437
16438 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
16439
16440         PR target/23359
16441         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
16442
16443 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
16444
16445         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
16446         loop_optimizer_init and loop_optimizer_finalize
16447         * tree-ssa-sink.c (execute_sink_code): Ditto.
16448         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
16449         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
16450         tree_ssa_loop_done): Ditto.
16451         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
16452         * sched-ebb.c: Include output.h.
16453         (schedule_ebbs): Do not use dump argument.
16454         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
16455         * loop.c (loop_dump_stream): Removed.
16456         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
16457         argument.
16458         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
16459         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
16460         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
16461         loop_iterations, strength_reduce, record_biv, record_giv,
16462         final_giv_value, check_final_value, check_ext_dependent_givs,
16463         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
16464         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
16465         dump_file instead of loop_dump_stream.
16466         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
16467         argument dump_file.
16468         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
16469         dump argument.
16470         * flow.c (life_analysis, rest_of_handle_life): Ditto.
16471         * haifa-sched.c: Include output.h
16472         (schedule_insns, sched_init): Do not use dump argument.
16473         * mode-switching.c (optimize_mode_switching): Ditto.
16474         * modulo-sched.c (stats_file): Removed.
16475         (print_node_sched_params): Do not call argument dump_file.
16476         (sms_schedule_by_order, loop_canon_p, sms_schedule,
16477         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
16478         of stats_file.
16479         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
16480         use dump argument.
16481         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
16482         rtl_loop_init, rtl_loop_done): Ditto.
16483         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
16484         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
16485         Ditto.
16486         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
16487         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
16488         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
16489         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
16490         * emit-rtl.c (renumber_insns): Ditto.
16491         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
16492         expand_gimple_basic_block, tree_expand_cfg): Ditto.
16493         * regclass.c (regclass): Ditto.
16494         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
16495         remove_ssa_form, rewrite_out_of_ssa): Ditto.
16496         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
16497         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
16498         Ditto.
16499         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
16500         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
16501         to regclass.
16502         * gcse.c (gcse_file, debug_stderr): Removed.
16503         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
16504         rest_of_handle_gcse): Do not use dump argument.
16505         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
16506         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
16507         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
16508         compute_code_hoist_vbeinout, compute_code_hoist_data,
16509         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
16510         compute_store_table, build_store_vectors, insert_insn_start_bb,
16511         insert_store, remove_reachable_equiv_notes, replace_store_insn,
16512         store_motion): Use dump_file instead of gcse_file.
16513         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
16514         * profile.c (profile_dump_file): Removed.
16515         (branch_prob): Use dump_file instead of profile_dump_file.
16516         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
16517         dump_file.
16518         * tree-ssa-copy.c (dump_copy_of): Ditto.
16519         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
16520         dump file to life_analysis.
16521         * bt-load.c (branch_target_load_optimize): Ditto.
16522         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
16523         renumber_insns.
16524         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
16525         regclass, dbr_schedule): Declaration changed.
16526         * sched-int.h (sched_init): Declaration changed.
16527         * tree-profile.c (tree_profile_dump_file): Removed.
16528         (tree_profile_hooks): Removed profile_dump_file hook.
16529         * rtl-profile (rtl_profile_dump_file): Removed.
16530         (rtl_profile_hooks): emoved profile_dump_file hook.
16531         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
16532         changed.
16533         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
16534         * tree-cfg.c (build_tree_cfg): Ditto.
16535         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
16536         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
16537         Declaration changed.
16538         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
16539         life_analysis and schedule_insns.
16540         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
16541         life_analysis.
16542         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
16543         dbr_schedule.
16544         * config/mips/mips.c (mips_reorg): Ditto.
16545         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
16546         schedule_ebbs.
16547
16548 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
16549
16550         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
16551         (s390_mangle_fundamental_type): New.
16552         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
16553         Define.
16554
16555         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
16556         (alpha_mangle_fundamental_type): New.
16557         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
16558         Define.
16559
16560         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
16561         Define.
16562         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
16563         Define.
16564         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
16565         (sparc_mangle_fundamental_type): New.
16566
16567 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
16568
16569         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
16570         (s390x-*-linux*): Likewise.
16571         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
16572         * config/s390/t-linux: New file.
16573
16574 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
16575
16576         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
16577         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
16578
16579 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
16580
16581         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
16582         (ANTIC_SAFE_LOADS): New macro.
16583         (find_or_generate_expression): Add prototype.
16584         (set_contains_value): Allow null set for sake of not always having
16585         to allocate ANTIC_SAFE_LOADS.
16586         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
16587         Allow COMPONENT_REF too.
16588         (valid_in_set): Allow COMPONENT_REF.
16589         Check ANTIC_SAFE_LOADS too.
16590         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
16591         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
16592         rename.
16593         (can_PRE_operation): Add COMPONENT_REF.
16594         (create_component_ref_by_pieces): New function.
16595         (create_expression_by_pieces): Use create_component_ref_by_pieces.
16596         (insert_aux): Move AGGREGATE_TYPE_P check here.
16597         (compute_avail): Set bb local stmt uids.
16598         (pass_pre): Use TODO_update_ssa_only_virtuals.
16599
16600 2006-02-06  Ben Elliston  <bje@au.ibm.com>
16601
16602         * configure.ac: Unconditionally disable decimal float by default.
16603         * configure: Regenerate.
16604
16605 2006-02-06  Ben Elliston  <bje@au.ibm.com>
16606
16607         * read-rtl.c (read_name): Terminate reading on EOF.
16608
16609 2006-02-06  Ben Elliston  <bje@au.ibm.com>
16610
16611         * dfp.c (decimal_real_arithmetic): Change second argument type
16612         from int to enum tree_code. Do not always return true, but now
16613         return result of any call to decimal_do helper functions.
16614         * dfp.h (decimal_real_arithmetic): Update prototype.
16615
16616 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
16617
16618         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
16619
16620 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
16621
16622         PR tree-opt/25251
16623         * tree-cfg.c (cleanup_dead_labels): Also don't remove
16624         forced labels.
16625
16626 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
16627
16628         * tree-vrp.c (cfg_loops): Removed.
16629         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
16630         Use current_loops instead of cfg_loops.  Pass flags to
16631         loop_optimizer_init.
16632         * cfgloopmanip.c (fix_loop_structure): Update only available
16633         information.
16634         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
16635         loop_optimizer_init.
16636         * modulo-sched.c (build_loops_structure): Removed.
16637         (sms_schedule): Use loop_optimizer_init.
16638         * loop-init.c (loop_optimizer_init): Use flags to determine
16639         which properties of loops to prepare.
16640         (rtl_loop_init): Pass flags to loop_optimizer_init.
16641         * tree-ssa-sink.c (execute_sink_code): Ditto.
16642         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
16643         * tree-ssa-pre.c (init_pre): Ditto.
16644         * cfgloop.h (LOOPS_NORMAL): New.
16645         (loop_optimizer_init): Declaration changed.
16646
16647 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16648
16649         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
16650         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
16651         pa/t-pa.
16652         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
16653         pa/t-pa.
16654         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
16655         pa/x-ada.
16656         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
16657         * pa/t-pa64: Delete quadlib.c rule.
16658         * pa/x-ada: Revert last change.
16659         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
16660
16661 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
16662
16663         PR rtl-optimization/26087
16664         * rtlanal.c (canonicalize_condition): Do not cross basic block
16665         boundaries.
16666
16667 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
16668
16669         PR debug/24444
16670         * config/ia64/ia64.c: Include debug.h.
16671         (MAX_ARTIFICIAL_LABEL_BYTES): New.
16672         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
16673         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
16674         (process_epilogue, process_set, process_for_unwind_directive):
16675         Output unwind info only if requested.  Add CFA info if requested.
16676         Add new arguments as needed.  Adjust callers.
16677         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
16678         incorrect default.
16679         (DWARF2_FRAME_INFO): Define to zero.
16680         * config/ia64/unwind-ia64.c: Remove code that compensated for
16681         the CFA offset error fixed above.
16682         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
16683         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
16684         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
16685         -funwind-tables and -fexceptions to enable frame info.
16686         (dwarf2out_frame_init): Define initial CFA even if
16687         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
16688         DWARF2_UNWIND_INFO is nonzero, not just defined.
16689         (dwarf2out_frame_finish): Output non-EH call frame info only
16690         if DWARF2_FRAME_INFO is nonzero.
16691         (convert_cfa_to_loc_list,
16692         compute_frame_pointer_to_cfa_displacement): Define even if
16693         unwind info is not supported.
16694         (gen_subprogram_die): Use the above unconditionally.  Remove
16695         legacy alternate code.
16696         * toplev.c (compile_file): Compile in call to
16697         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
16698         (lang_dependent_init): Ditto for dwarf2out_frame_init.
16699
16700 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
16701             Jakub Jelinek  <jakub@redhat.com>
16702
16703         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
16704         IBM extended float format long double as "g" on powerpc*-linux.
16705
16706 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16707
16708         PR target/25926
16709         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
16710         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
16711
16712 2006-02-03  Jason Merrill  <jason@redhat.com>
16713
16714         PR c++/25979
16715         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
16716
16717         PR middle-end/25977
16718         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
16719         on the return slot if it's an NRV.
16720
16721 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
16722
16723         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
16724         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
16725         rewrite_use): Do not handle USE_OUTER.
16726         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
16727         add_iv_outer_candidates, may_replace_final_value,
16728         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
16729         (find_interesting_uses_op): Functionality of
16730         find_interesting_uses_outer_or_nonlin moved here.
16731         (find_interesting_uses_outside): Use find_interesting_uses_op.
16732
16733 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
16734
16735         PR target/25960
16736         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
16737
16738 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
16739             Ulrich Weigand  <uweigand@de.ibm.com>
16740
16741         PR target/25864
16742         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
16743         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
16744         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
16745         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
16746         and dxr fields.
16747         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
16748         (s390_rtx_costs): Use the new fields to calculate rtx costs.
16749         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
16750         Define secondary reloads for TFmode moves.
16751         (constant_modes): Add TFmode.
16752         (NR_C_MODES): Set to 8.
16753         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
16754         builtin define.
16755         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
16756         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
16757         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
16758         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
16759         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
16760         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
16761         (FPR mode macro): Add TFmode.
16762         (DSF mode macro): New.
16763         (<de>, <dee> mode attributes): Removed.
16764         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
16765         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
16766         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
16767         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
16768         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
16769         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
16770         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
16771         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
16772         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
16773         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
16774         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
16775         "*negabs<mode>2", "sqrt<mode>2"):
16776         Changed <de> to <xde>. R constraint replaced by <Rf>.
16777         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
16778         <Rf>.
16779         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
16780         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
16781         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
16782         splitters.
16783         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
16784         "extenddftf2", "extendsftf2"): New expanders.
16785         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
16786         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
16787         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
16788         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
16789         New options.
16790         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
16791         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
16792         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
16793         __floatditf): Add a GCC_4.1.0 symbol version tag.
16794         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
16795         the new options.
16796
16797 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
16798
16799         PR target/25377
16800         * config/i386/i386.c (ix86_function_ok_for_sibcall):
16801         Use targetm.binds_local_p instead of TREE_PUBLIC.
16802
16803 2006-02-02  Roger Sayle  <roger@eyesopen.com>
16804
16805         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
16806         on INTEGER_TYPEs to indicate that it denotes a character type.
16807         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
16808         signed_char_type_node, unsigned_char_type_node and char_type_node.
16809         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
16810         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
16811         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
16812
16813 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
16814             Daniel Berlin  <dberlin@dberlin.org>
16815
16816         * tree-tailcall.c (arg_needs_copy_p): New function.
16817         (eliminate_tail_call): Use arg_needs_copy_p.
16818         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
16819         (add_virtual_phis): New function.
16820
16821 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
16822
16823         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
16824         #ignore instead of #scratch for %g7 .register directive.
16825
16826 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
16827
16828         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
16829         object files.
16830
16831 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
16832
16833         * flow.c (calculate_global_regs_live): Assert that there aren't any
16834         EDGE_FAKE edges.
16835
16836 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
16837
16838         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
16839         what its name says.
16840         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
16841         bsi_after_labels iterator.
16842         * tree-if-conv.c (find_phi_replacement_condition,
16843         replace_phi_with_cond_modify_expr): Likewise.
16844         * tree-scalar-evolution.c (scev_const_prop): Likewise.
16845         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
16846
16847 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
16848
16849         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
16850
16851 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
16852
16853         PR 25990
16854         * tree-cfg.c (move_block_to_fn): Clear out the basic block
16855         array after growing it.
16856
16857 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
16858
16859         PR middle-end/24901
16860         * fold-const.c (fold_checksum_tree): Change type of buf.
16861
16862 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
16863
16864         * reload.c (push_secondary_reload): Initialize t_icode.
16865
16866 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
16867
16868         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
16869         -msoft-float -mlong-double-128 only issue a warning, but don't
16870         swich to DFmode long double.
16871
16872 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
16873
16874         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
16875         has a constant equivalent, iterate over equivalents for arg0,
16876         calling simplify_relational_operation and if there's a result
16877         cheaper than X, apply fold_rtx and return the result.
16878
16879 2006-02-01  Jan Hubicka  <jh@suse.cz>
16880
16881         * opts.c (no_unit_at_a_time_default): New global variable.
16882         (decode_options): Use it.
16883         * opts.h (no_unit_at_a_time_default): Declare.
16884
16885 2006-02-01  Paul Brook  <paul@codesourcery.com>
16886
16887         * function.c (assign_parm_setup_reg): Use function argument promotion
16888         rules.
16889         * expr.c (expand_expr_real_1): Use function argument promotion rules
16890         for PARM_DECLs.
16891
16892 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
16893
16894         * gcc.c (process_command): Change j to 'unsigned int'.
16895
16896 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
16897
16898         PR middle-end/26001
16899         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
16900         Use the corrected index for the character
16901         out of the string constant.
16902
16903 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
16904
16905         * mode-switching.c (optimize_mode_switching): Fix size
16906         allocated for bb_info[n_entities].
16907
16908 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
16909
16910         * gcc.c (main): Correct type that is allocated for
16911         explicit_link_files.
16912
16913 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
16914
16915         * config/s390/s390.c (init_alignment_context): Set
16916         ALIAS_SET_MEMORY_BARRIER on the MEM.
16917         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
16918
16919 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
16920
16921         PR middle-end/25933
16922         * loop-unroll.c (unroll_loop_runtime_iterations): Free
16923         dom_bbs pointer.
16924         * tree-ssa-live.c (type_var_init): Allocate bitmap after
16925         call to tpa_init.
16926
16927 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
16928
16929         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
16930         * regrename.c: Ditto.
16931         * tree-ssa-loop-im.c: Ditto.
16932         * tree-dump.c: Ditto.
16933         * tree-complex.c: Ditto.
16934         * genrecog.c: Ditto.
16935         * tree-ssa-threadupdate.c: Ditto.
16936         * tracer.c: Ditto.
16937         * java/class.c: Ditto.
16938         * java/jcf-parse.c: Ditto.
16939         * java/resource.c: Ditto.
16940         * java/except.c: Ditto.
16941         * java/jvspec.c: Ditto.
16942         * java/jcf-write.c: Ditto.
16943         * java/jcf-path.c: Ditto.
16944         * java/gjavah.c: Ditto.
16945         * java/zextract.c: Ditto.
16946         * java/jcf-io.c: Ditto.
16947         * java/jcf.h: Ditto.
16948         * java/buffer.c: Ditto.
16949         * java/lang.c: Ditto.
16950         * java/parse-scan.y: Ditto.
16951         * java/lex.c: Ditto.
16952         * java/lex.h: Ditto.
16953         * cfgloopmanip.c: Ditto.
16954         * postreload-gcse.c: Ditto.
16955         * tree-ssa-loop-manip.c: Ditto.
16956         * postreload.c: Ditto.
16957         * tree-ssa-loop-ch.c: Ditto.
16958         * loop.c: Ditto.
16959         * ipa-cp.c: Ditto.
16960         * cppspec.c: Ditto.
16961         * diagnostic.c: Ditto.
16962         * final.c: Ditto.
16963         * genoutput.c: Ditto.
16964         * gcc.c: Ditto.
16965         * cfghooks.c: Ditto.
16966         * cfgloopanal.c: Ditto.
16967         * objc/objc-act.c: Ditto.
16968         * gcov.c: Ditto.
16969         * genextract.c: Ditto.
16970         * genautomata.c: Ditto.
16971         * pretty-print.c: Ditto.
16972         * genemit.c: Ditto.
16973         * cgraphunit.c: Ditto.
16974         * flow.c: Ditto.
16975         * df-scan.c: Ditto.
16976         * haifa-sched.c: Ditto.
16977         * dominance.c: Ditto.
16978         * dbxout.c: Ditto.
16979         * tree-ssa-loop-ivopts.c: Ditto.
16980         * df-core.c: Ditto.
16981         * mode-switching.c: Ditto.
16982         * modulo-sched.c: Ditto.
16983         * graph.c: Ditto.
16984         * ipa-pure-const.c: Ditto.
16985         * cse.c: Ditto.
16986         * fix-header.c: Ditto.
16987         * web.c: Ditto.
16988         * tree-stdarg.c: Ditto.
16989         * ipa-utils.c: Ditto.
16990         * loop-init.c: Ditto.
16991         * ipa-inline.c: Ditto.
16992         * cfganal.c: Ditto.
16993         * global.c: Ditto.
16994         * alloc-pool.c: Ditto.
16995         * dwarf2out.c: Ditto.
16996         * opts.c: Ditto.
16997         * genattrtab.c: Ditto.
16998         * tree-ssa-loop-ivcanon.c: Ditto.
16999         * predict.c: Ditto.
17000         * timevar.c: Ditto.
17001         * lcm.c: Ditto.
17002         * fortran/gfortranspec.c: Ditto.
17003         * regmove.c: Ditto.
17004         * local-alloc.c: Ditto.
17005         * langhooks.c: Ditto.
17006         * function.c: Ditto.
17007         * tree-vectorizer.c: Ditto.
17008         * gcse.c: Ditto.
17009         * ipa-type-escape.c: Ditto.
17010         * alias.c: Ditto.
17011         * tree-if-conv.c: Ditto.
17012         * profile.c: Ditto.
17013         * ipa.c: Ditto.
17014         * tree-data-ref.c: Ditto.
17015         * loop-unroll.c: Ditto.
17016         * treelang/treetree.c: Ditto.
17017         * calls.c: Ditto.
17018         * bt-load.c: Ditto.
17019         * ggc-common.c: Ditto.
17020         * except.c: Ditto.
17021         * coverage.c: Ditto.
17022         * cselib.c: Ditto.
17023         * tree-cfgcleanup.c: Ditto.
17024         * tree-ssa-pre.c: Ditto.
17025         * cfgcleanup.c: Ditto.
17026         * loop-invariant.c: Ditto.
17027         * loop-iv.c: Ditto.
17028         * ipa-prop.c: Ditto.
17029         * print-tree.c: Ditto.
17030         * conflict.c: Ditto.
17031         * ggc-page.c: Ditto.
17032         * sched-deps.c: Ditto.
17033         * regclass.c: Ditto.
17034         * tree-object-size.c: Ditto.
17035         * combine.c: Ditto.
17036         * bb-reorder.c: Ditto.
17037         * resource.c: Ditto.
17038         * var-tracking.c: Ditto.
17039         * cfgloop.c: Ditto.
17040         * df-problems.c: Ditto.
17041         * reg-stack.c: Ditto.
17042         * tlink.c: Ditto.
17043         * gccspec.c: Ditto.
17044         * sched-rgn.c: Ditto.
17045         * tree-ssa-structalias.c: Ditto.
17046         * tree-ssa-reassoc.c: Ditto.
17047         * config/darwin-c.c: Ditto.
17048         * config/darwin.c: Ditto.
17049         * config/arm/arm.c: Ditto.
17050         * cfgrtl.c: Ditto.
17051         * collect2.c: Ditto.
17052         * reload1.c: Ditto.
17053
17054 2006-01-31  Nicolas Pitre  <nico@cam.org>
17055
17056         * arm.md (smaxsi3): Make aware of smax_m1.
17057         (smax_m1): New.
17058
17059 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
17060
17061         * config/m68k/lb1sf68.asm: Use moveq to load small constants.
17062
17063 2006-01-31  Richard Guenther  <rguenther@suse.de>
17064
17065         * doc/invoke.texi (-msselibm): Document.
17066         * target.h (expand_library_builtin): New target hook.
17067         * builtins.c (expand_builtin): Use expand_library_builtin.
17068         (default_expand_library_builtin): New function.
17069         * gcc.c (LINK_GCC_MATH_SPEC): Define.
17070         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
17071         (link_gcc_math_spec): Declare.
17072         (static_specs): Add link_gcc_math_spec.
17073         * expr.h (default_expand_library_builtin): Declare.
17074         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
17075         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
17076         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
17077         * config/i386/i386.opt (msselibm): New target option.
17078         * config/i386/i386.c (ix86_builtin_function_variants): New array.
17079         (ix86_init_sse_abi_builtins): New function.
17080         (ix86_expand_library_builtin): Likewise.
17081         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
17082         (override_options): Handle error conditions wrt -msselibm.
17083         (ix86_builtins): Add function codes for SSE2 ABI builtins.
17084         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
17085         * doc/extend.texi (__builtin_sse2_*): Document new target specific
17086         builtins.
17087
17088 2006-01-31  Richard Guenther  <rguenther@suse.de>
17089         Paolo Bonzini  <bonzini@gnu.org>
17090
17091         * doc/install.texi (--disable-libgcc-math): Document.
17092
17093 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
17094
17095         * expr.h (expand_normal): new inline function.
17096         * builtins.c: use it, use EXPAND_NORMAL explicitely.
17097         * dojump.c: use it.
17098         * dwarf2out.c: use it.
17099         * expr.c: use it.
17100         * calls.c: use it.
17101         * expmed.c: use it.
17102         * except.c: use it.
17103         * config/sparc/sparc.c: use it.
17104         * config/i386/i386.c: use it.
17105         * config/rs6000/rs6000.c: use it.
17106         * config/arm/arm.c: use it.
17107         * config/mips/mips.c: use it.
17108         * stmt.c: use it, use EXPAND_NORMAL explicitely.
17109
17110 2006-01-30  Roger Sayle  <roger@eyesopen.com>
17111
17112         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
17113         argv to the appropriate type.
17114
17115 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
17116
17117         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
17118         unreachable code.
17119
17120 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17121
17122         PR target/26018
17123         * config/s390/s390.c (struct machine_function): New flag
17124         decomposed_literal_pool_addresses_ok_p.
17125         (s390_reorg): Set it before final stage of literal pool transforms.
17126         (s390_decompose_address): Only accept displacements of the form
17127         (minus (label_ref ...) (label_ref ...)) if that flag is set.
17128
17129 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
17130
17131         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
17132         the comparison routine return.
17133
17134 2006-01-30  Michael Matz  <matz@suse.de>
17135
17136         * global.c (find_reg): Only evict for global regs.
17137         Take n_refs into account and dump more info.
17138
17139 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
17140
17141         PR target/14798:
17142         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
17143         (pragma_trap, pragma_nosave_low_regs): Likewise.
17144         (current_function_anonymous_args): Likewise.
17145         (sh_deferred_function_attributes): New variable.
17146         (sh_deferred_function_attributes_tail): Likewise.
17147         (print_operand): For '@', look up trap_exit attribute.
17148         (calc_live_regs): Look up trapa_handler attribute.  For trapa
17149         handlers, save/restore fpscr, but don't do any other
17150         interrupt-specific saves.
17151         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
17152         Fix check for partially saved registers to check for SHmedia.
17153         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
17154         (sh_output_function_epilogue): Don't clear any of the removed
17155         variables.
17156         (sh_insert_attributes): Don't check pragma_interrupt.
17157         Insert deferred attributes.  Check that interrupt attribute is
17158         present for other attributes that require its presence.
17159         (sh_attribute_table): Add new attributes trapa_handler and
17160         nosave_low_regs.
17161         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
17162         Don't check for pragma_interrupt.  Don't store argument.
17163         * sh.h (pragma_interrupt, sp_switch): Don't declare.
17164         (sh_deferred_function_attributes): Declare.
17165         (sh_deferred_function_attributes_tail): Likewise.
17166         * sh.md (sp_switch_1): Add operand.  Change generator caller.
17167         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
17168         (*return_i): Don't use when trap_exit attribute is in effect.
17169         (*return_trapa): New insn pattern.
17170         * sh-c.c: New file.
17171         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
17172         setting c_target_objs and cxx_target_objs.
17173         * t-sh: Add rule for sh-c.o.
17174
17175 2006-01-30  Richard Guenther  <rguenther@suse.de>
17176
17177         PR c++/23372
17178         * gimplify.c (gimplify_target_expr): Handle easy cases
17179         without creating a temporary.
17180
17181 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
17182
17183         * vec.h (safe_grow): Remove duplicated line.
17184
17185 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
17186
17187         PR 25874
17188         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
17189         (expand_omp): ... here.
17190         (expand_omp_parallel): Only remove barriers for combined
17191         parallel+workshare constructs.
17192
17193 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
17194
17195         Revert
17196
17197         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
17198         * tree.c (build_qualified_type): Chain the new type to the original
17199         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
17200         a POINTER_TYPE or a REFERENCE_TYPE respectively.
17201         (build_pointer_type_for_mode): Only return unqualified types.
17202         (build_reference_type_for_mode): Likewise.
17203
17204 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
17205
17206         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
17207         * Makefile.in (CXX_COMPAT_WARN): Define.
17208         * configure: Regenerate.
17209
17210 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
17211
17212         PR tree-opt/25911
17213         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
17214         to an if check.
17215
17216 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
17217
17218         * toplev.c: Fix thinko.
17219
17220 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
17221             Marcin Dalecki  <martin@dalecki.de>
17222
17223         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
17224         (push_srcloc): Use XNEW.
17225         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
17226
17227 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
17228
17229         * df-core.c (df_set_blocks): Deleted all variable.
17230
17231 2006-01-28  Ian Lance Taylor  <ian@airs.com>
17232
17233         * cgraphunit.c (cgraph_assemble_pending_functions): Call
17234         cgraph_output_pending_asms.
17235
17236 2006-01-28  Zack Weinberg  <zackw@panix.com>
17237
17238         * c.opt: Add -W(no-)overlength-strings.
17239         * doc/invoke.texi: Document it.
17240         * c-opts.c (c_common_handle_option): -pedantic implies
17241         -Woverlength-strings, if not explicitly disabled already.
17242         (c_common_post_options): -Woverlength-strings defaults to off, and
17243         is always off for C++.
17244         * c-common.c (fix_string_type): Issue warning about strings longer
17245         than is portable only if warn_overlength_strings.  Rearrange code
17246         a little for clarity.
17247         * configure.in: Check for -Wno-overlength-strings as well before
17248         enabling -pedantic in stage 1.
17249         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
17250         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
17251
17252         * genconditions.c (write_header, write_one_condition)
17253         (write_conditions, write_writer): Consolidate very long strings
17254         that were broken up to fit in C89 portable limit.  Don't use
17255         printf when fputs will do.
17256
17257 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
17258
17259         * combine.c (simplify_comparison <AND>): Check
17260         TRULY_NOOP_TRUNCATION before start using a subreg.
17261
17262         * config/mips/mips.md (*branch_zero<mode>,
17263         *branch_zero<mode>_inverted, *branch_equality<mode>,
17264         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
17265         Remove mode check from comparisons.
17266
17267 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
17268
17269         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
17270
17271 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
17272
17273         * expmed.c (const_mult_add_overflow_p): Remove.
17274         * expr.h: Remove the prototype for const_mult_add_overflow_p.
17275
17276         * recog.c (validate_replace_rtx_subexp): Remove.
17277         * recog.h: Remove the prototype for
17278         validate_replace_rtx_subexp.
17279
17280         * integrate.h: Remove the prototype for
17281         copy_decl_for_inlining.
17282         * rtl.h: Remove the prototype for mark_constant_function.
17283         * tree-vectorizer.h: Remove the prototype for
17284         vect_strip_conversion.
17285
17286         * modulo-sched.c (create_partial_schedule,
17287         free_partial_schedule, reset_partial_schedule): Make them
17288         static.
17289
17290         * hooks.c (hook_bool_rtx_int_false): Remove.
17291         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
17292
17293 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
17294
17295         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
17296         and -mlong-double-128 are incompatible.
17297         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
17298         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
17299         (TARGET_LIBGCC2_CFLAGS): Define.
17300         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
17301         (TARGET_LIBGCC2_CFLAGS): Same.
17302         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
17303
17304 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
17305
17306         PR c/19606.
17307         * c-typeck.c (build_binary_op): Perform implicit casts of
17308         operands before shortening them.
17309
17310         * cfgloopmanip.c (split_loop_bb): Remove.
17311         * cfgloop.h: Remove the prototype for split_loop_bb.
17312
17313         * cfgloop.c (flow_loop_outside_edge_p): Remove.
17314         * cfgloop.h: Remove the prototype for
17315         flow_loop_outside_edge_p.
17316
17317         * emit-rtl.c (init_virtual_regs): Make it static.
17318         * function.h: Remove the prototype for init_virtual_regs.
17319
17320         * recog.c (peephole2_optimize): Make it static.
17321         * recog.h: Remove the prototype for peephole2_optimize.
17322
17323 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
17324
17325         * df-scan.c (df_record_entry_block_defs): Check if
17326         INCOMING_RETURN_ADDR_RTX is defined.
17327
17328 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
17329             Kenneth Zadeck <zadeck@naturalbridge.com>
17330
17331         PR rtl-optimization/24762
17332         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
17333         * targhooks.c (hook_void_bitmap): New hook prototype.
17334         * targhoohs.h (hook_void_bitmap): Ditto.
17335         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
17336         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
17337         * target.h (live_on_entry): New function pointer.
17338         * df-scan.c (df_all_hard_regs): Removed.
17339         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
17340         (df_scan_free_internal): Added df->entry_block_defs.
17341         (df_scan_alloc): Ditto.
17342         (df_scan_dump): Ditto.
17343         (df_uses_record): Plumbed flag field properly thru calls.
17344         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
17345         This part fixes PR24762.
17346         (df_bb_refs_record): Added code to make the frame and arg
17347         pointers live in EH blocks.
17348         (df_refs_record): Added call to df_record_entry_block_defs.
17349         (df_record_entry_block_defs): New function.
17350         * df-core.c: Added comments to describe new artifical defs.
17351         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
17352         (entry_block_defs): New field in struct df.
17353         (df_all_hard_regs): Deleted.
17354         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
17355         * df-problems.c (df_ru_bb_local_compute_process_def):
17356         Added code to handle artifical defs in the entry to a function.
17357         (df_ru_bb_local_compute): Ditto.
17358         (df_rd_bb_local_compute_process_def): Ditto.
17359         (df_rd_bb_local_compute): Ditto.
17360         (df_lr_bb_local_compute): Ditto.
17361         (df_ur_bb_local_compute): Ditto.
17362         (df_urec_bb_local_compute): Ditto.
17363         (df_chain_create_bb): Ditto.
17364         (df_ur_local_finalize): Removed entry.
17365         (df_urec_init): Ditto.
17366         (df_urec_local_finalize): Ditto.
17367         (df_ri_bb_compute): Added detection of last use of pseudos.
17368         * Makefile.in (df-scan.o): Updated dependencies.
17369         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
17370         * config/mips/mips.c (mips_set_live_on_entry): Added.
17371         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
17372         for target hook.
17373         * dce.c (marked_insn_p): Added code to handle artifical defs.
17374
17375 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
17376
17377         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
17378         intrinsic.
17379         (_mm_cvtsi128_si64): Likewise.
17380         (_mm_cvtsd_si64): Likewise.
17381         (_mm_cvttsd_si64): Likewise.
17382         (_mm_cvtsi64_sd): Likewise.
17383         (_mm_cvtsi64_si128): Likewise.
17384         * config/i386/mmintrin.h (_m_from_int64): Likewise.
17385         (_mm_cvtsi64_m64): Likewise.
17386         (_m_to_int64): Likewise.
17387         (_mm_cvtm64_si64): Likewise.
17388         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
17389         (_mm_cvttss_si64): Likewise.
17390         (_mm_cvtsi64_ss): Likewise.
17391         (_mm_cvtss_f32): Likewise.
17392
17393 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
17394
17395         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
17396         for pragma redefine_extname.
17397
17398 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
17399
17400         PR target/25864
17401         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
17402         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
17403         -mno-minimal-toc to previous content.
17404         (bispecs): Remove goal.
17405         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
17406         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
17407         compatibility aliases on powerpc-*-*gnu*.
17408         * config/rs6000/libgcc-ppc-glibc.ver: New file.
17409         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
17410         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
17411         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
17412         (ldblspecs): New goal.
17413         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
17414         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
17415         _df_to_tf.
17416         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
17417         L_sf_to_tf or L_df_to_tf is defined.
17418
17419 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
17420             Alan Modra  <amodra@bigpond.net.au>
17421
17422         PR target/25864
17423         * config/rs6000/linux.h (POWERPC_LINUX): Define.
17424         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
17425         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
17426         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
17427         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
17428         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
17429         (rs6000_override_options): Initialize rs6000_ieeequad.
17430         Initialize TFmode format to ibm_extended_format if not
17431         TARGET_IEEEQUAD.
17432         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
17433         ieeelongdouble.
17434         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
17435         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
17436         (function_arg_advance): IBM long double passed in two FPRs, not
17437         split.
17438         (function_arg): IBM long double passed in FPRs.
17439         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
17440         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
17441         Only multireg GPR aligned.
17442         (rs6000_init_libfuncs): Enable IBM long double functions if not
17443         IEEEQUAD.
17444         (rs6000_generate_compare): Use IBM long double compare if not
17445         TARGET_IEEEQUAD.
17446         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
17447         (TARGET_IEEEQUAD): Define.
17448         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
17449         not TARGET_IEEEQUAD.
17450         * config/rs6000/rs6000.md: Enable TFmode patterns if
17451         !TARGET_IEEEQUAD.
17452         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
17453         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
17454         and -mlong-double-128 are incompatible.
17455         * doc/invoke.texi (-mabi): Collect options together.  Add
17456         ibmlongdouble and ieeelongdouble.
17457
17458 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
17459
17460         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
17461         opaque type.
17462         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
17463         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
17464         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
17465         * rtl.h (rtunion_def): Remove rt_ptr.
17466         (X0PTR): Delete.
17467         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
17468         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
17469         * config/i386/winnt.c (i386_pe_mark_dllexport)
17470         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
17471
17472 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
17473
17474         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
17475
17476 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
17477
17478         PR other/24829
17479         PR target/24831
17480         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
17481         pthread_key_delete.  From John David Anglin.  gthrw-ify
17482         pthread_getunique_np only if it it's not a macro.  Delete
17483         UNUSED macro.
17484         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
17485         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
17486         __gthread_objc_condition_signal, __gthread_key_delete): Add
17487         "__attribute__ ((__unused__))" to unused arguments.
17488         (__gthread_recursive_mutex_init_function): Add missing return.
17489         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
17490         gthr-posix95.h: Use macro-based approach for name redirection
17491         on targets missing weakref.
17492
17493 2006-01-26  Zack Weinberg  <zackw@panix.com>
17494
17495         * genconditions.c (write_header): In generated code, #ifdef out
17496         all includes and fake declarations, except includes of bconfig.h
17497         and system.h, unless GCC_VERSION >= 3001.  Do not include
17498         gensupport.h in any case.
17499         (write_conditions): Generate a definition of struct c_test.  Add
17500         a comment to the generated #endif.
17501         (write_one_condition): Escape backslashes in string too.
17502         (write_writer): Generated code must escape backslashes and quote
17503         marks (but not newlines) in the strings it writes.
17504         * Makefile.in (build/gencondmd.o): Update dependencies.
17505
17506 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
17507
17508         PR target/25961
17509         * Makefile.in (insn-automata.o): Add header file dependencies.
17510         * genautomata.c: Add includes.
17511
17512 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
17513
17514         PR target/25961
17515         * Makefile.in (insn-automata.o): Add -Wno-error flag.
17516
17517 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
17518
17519         * configure.ac: Expect target tools paths to be passed from the toplevel
17520         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
17521         AS_SET_VAR_IF.
17522         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
17523
17524 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
17525
17526         PR c/25892
17527         * c.opt (Wpointer-sign): Init to -1.
17528         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
17529         OPT_pedantic, to 0 otherwise.
17530         * doc/invoke.texi: Update.
17531
17532 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
17533
17534         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
17535         constants provided by 80387 instructions in the destination mode.
17536
17537 2006-01-26  Richard Guenther  <rguenther@suse.de>
17538             Andrew Pinski  <pinskia@physics.uc.edu>
17539
17540         PR tree-opt/21470
17541         partial PR tree-opt/17064
17542         * tree-ssa-structalias.c (intra_create_variable_infos):
17543         Create heap variables for incoming parameters if
17544         flag_argument_noalias > 1.
17545         (find_what_p_points_to): Look through default defs of
17546         parameter decls.
17547
17548 2006-01-26  Jeff Law  <law@redhat.com>
17549
17550         PR ada/25900
17551         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
17552         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
17553         within the VR_RANGE, use the VR_RANGE as the result, not the
17554         VR_ANTI_RANGE.
17555         (adjust_range_with_scev): Reject ranges from SCEV which are out of
17556         bounds for the type.
17557
17558 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
17559
17560         * tree-ssa-alias.c (maybe_create_global_var): Change
17561         subvar walking to an assertion that we don't have subvar'd variables.
17562
17563 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
17564
17565         PR C/25861
17566         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
17567         Use a new variable, inner.  PARM_DECLs are always non-weak.
17568
17569 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
17570
17571         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
17572         --disable-checking.
17573
17574 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
17575
17576         * config/mips/mips.md (*clear_upper32): New combiner pattern.
17577
17578 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
17579
17580         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
17581         (smax_insn, smin_insn, smax_0, smin_0): New.
17582
17583 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
17584
17585         PR target/25947
17586         * config/cris/cris.c (cris_order_for_addsi3): New function.
17587         * config/cris/cris-protos.h: Prototype it.
17588         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
17589         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
17590         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
17591         (split for "op.S1 [rx=rx+i],ry (swapped)")
17592         (split for "op(s|u).S1 [rx=rx+i],ry")
17593         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
17594         Apply cris_order_for_addsi3 when generating addsi3 insns.
17595
17596 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
17597
17598         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
17599         (TREE_BLOCK): Add call to EXPR_CHECK.
17600
17601 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
17602
17603         PR 25886
17604         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
17605         * tree-pretty-print.c (dump_omp_clause): Extract from ...
17606         (dump_omp_clauses): ... here.
17607         (dump_generic_node): Handle OMP_CLAUSE.
17608         * tree.c (omp_clause_num_ops): New.
17609         (omp_clause_code_name): New.
17610         (tree_code_size): Handle OMP_CLAUSE.
17611         (tree_size): Likewise.
17612         (make_node): Document handling of OMP_CLAUSE.
17613         (tree_node_structure): Handle OMP_CLAUSE.
17614         (omp_clause_check_failed): New.
17615         (omp_clause_range_check_failed): New.
17616         (omp_clause_operand_check_failed): New.
17617         (build_omp_clause): New.
17618         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
17619         * tree.h (enum omp_clause_code): Declare.
17620         (OMP_CLAUSE_SUBCODE_CHECK): Define.
17621         (OMP_CLAUSE_RANGE_CHECK): Define.
17622         (OMP_CLAUSE_ELT_CHECK): Define.
17623         (omp_clause_check_failed): Declare.
17624         (omp_clause_operand_check_failed): Declare.
17625         (omp_clause_range_check_failed): Declare.
17626         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
17627         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
17628         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
17629         (OMP_CLAUSE_LASTPRIVATE): Likewise.
17630         (OMP_CLAUSE_IF_EXPR): Likewise.
17631         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
17632         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
17633         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
17634         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
17635         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
17636         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
17637         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
17638         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
17639         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
17640         (OMP_CLAUSE_CODE): Define.
17641         (OMP_CLAUSE_SET_CODE): Define.
17642         (OMP_CLAUSE_CODE): Define.
17643         (OMP_CLAUSE_OPERAND): Define.
17644         (struct tree_omp_clause): Declare.
17645         (union tree_node): Add field 'omp_clause'.
17646         * treestruct.def (TS_OMP_CLAUSE): Define.
17647         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
17648         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
17649         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
17650         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
17651         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
17652         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
17653         (OMP_CLAUSE): Define.
17654         * print-tree.c (print_node): Handle OMP_CLAUSE.
17655         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
17656         * c-typeck.c: Likewise.
17657         * gimplify.c: Likewise.
17658         * c-omp.c: Likewise.
17659         * tree-nested.c: Likewise.
17660         * tree-inline.c: Likewise.
17661         * c-parser.c: Likewise.
17662         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
17663         clauses.
17664
17665 2006-01-25  Roger Sayle  <roger@eyesopen.com>
17666
17667         PR rtl-optimization/25703
17668         * combine.c (try_combine): Handle zero_extract and strict_low_part
17669         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
17670
17671 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
17672
17673         * global.c: Fix comment typos.
17674
17675 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
17676
17677         PR target/25758
17678         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
17679         Use output_addr_const instead of assemble_name.
17680
17681 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
17682
17683         * Makefile.in (sched-vis.o): Update dependencies.
17684         * haifa-sched.c (sched_finish): Clear current_sched_info.
17685         * cfg.c (dump_bb_info): New, split from dump_flow_info.
17686         (dump_flow_info): Call it.
17687         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
17688         a slim RTL dump.
17689         * basic-block.h (dump_bb_info): Declare.
17690         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
17691         option, and apply options only for dump files whose TDF_RTL,
17692         TDF_TREE, or TDF_IPA bits match.
17693         * rtl.h: Declare new functions exported from sched-vis.c.
17694         * sched-vis.c: Enable also if scheduling is not used.
17695         (print_value): Print the mode of registers if not inside scheduling.
17696         (print_insn): Make it work outside the scheduler.  Beautify the output
17697         a bit.
17698         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
17699
17700 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
17701
17702         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
17703         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
17704         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
17705         depending on the value of CONSTANT_POOL_ADDRESS_P.
17706         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
17707         SYMBOL_REF_DECL.
17708         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
17709         rather than SYMBOL_REF_DECL.
17710         (rtx_constant_pool): Remove const_rtx_sym_htab.
17711         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
17712         (init_varasm_status): Don't initialize const_rtx_sym_htab.
17713         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
17714         Remove handling of const_rtx_sym_htab.
17715         (find_pool_constant): Delete.
17716         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
17717         rather than find_pool_constant.
17718         (get_pool_constant_for_function): Delete.
17719         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
17720         find_pool_constant.
17721         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
17722         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
17723         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
17724         (SYMBOL_REF_CONSTANT): New macro.
17725         (get_pool_constant_for_function): Delete.
17726         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
17727         rather than SYMBOL_REF_DECL.
17728         (i386_pe_mark_dllimport): Likewise.
17729         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
17730         rather than SYMBOL_REF_DECL.
17731         * config/darwin.c (machopic_indirect_data_reference): Likewise.
17732         (machopic_indirect_call_target): Likewise.
17733
17734 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
17735
17736         * flow.c (delete_noop_moves): Add missing EOL to dump message.
17737
17738 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
17739
17740         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
17741
17742 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
17743
17744         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
17745
17746 2006-01-24  David Daney  <ddaney@avtrex.com>
17747
17748         PR java/25816
17749         * configure.ac (enable_tls): New enable option.
17750         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
17751         * configure: Regenerate.
17752         * doc/install.texi (--enable-tls): Document new option.
17753         (--disable-tls): Ditto.
17754
17755 2006-01-24  Richard Henderson  <rth@redehat.com>
17756
17757         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
17758         * alias.c (true_dependence): Respect it.
17759         (canon_true_dependence, write_dependence_p): Likewise.
17760         * builtins.c (get_builtin_sync_mem): Set it.
17761
17762 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
17763
17764         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
17765         efficient way.
17766
17767 2006-01-24  DJ Delorie  <dj@redhat.com>
17768
17769         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
17770         for storing constants in single-bit bitfields.
17771
17772 2006-01-25  Ben Elliston  <bje@au.ibm.com>
17773
17774         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
17775
17776 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
17777
17778         PR tree-opt/25860
17779         * tree-ssa-pre.c (phi_translate): Return NULL
17780         for AGGREGATE_TYPE's.
17781
17782 2006-01-24  Zack Weinberg  <zackw@panix.com>
17783
17784         * genautomata.c (process_state_for_insn_equiv_partition):
17785         Use xcalloc for insn_arcs_array.
17786         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
17787         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
17788
17789 2006-01-24  Richard Henderson  <rth@redhat.com>
17790
17791         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
17792         update all callers.
17793
17794 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
17795
17796         PR rtl-optimization/25890
17797         PR rtl-optimization/25905
17798         * combine.c (expand_compound_operation, expand_field_assignment):
17799         Fail if the bitfield's final position is out of bounds.
17800
17801 2006-01-24  Ian Lance Taylor  <ian@airs.com>
17802
17803         PR middle-end/25930
17804         * cgraphunit.c (cgraph_output_in_order): Don't clear
17805         cgraph_asm_nodes until after asm strings have been output.
17806
17807 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
17808
17809         * fix-header.c (read_scan_file): Add new parameter imultilib when
17810         calling register_include_chains.
17811
17812 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
17813
17814         * omp-low.c: Update documentation.
17815
17816 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
17817             Daniel Berlin  <dberlin@dberlin.org>
17818
17819         PR tree-opt/25315
17820         PR tree-opt/25857
17821         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
17822         return from the function.
17823
17824 2006-01-22  Zack Weinberg  <zackw@panix.com>
17825
17826         * rtl.def (match_code): Add second argument.
17827         * genpreds.c (write_extract_subexp): New function.
17828         (write_match_code): Add path argument.  Use write_extract_subexp.
17829         (write_predicate_expr): Pass path to write_match_code.
17830         (mark_mode_tests): MATCH_CODE applied to a subexpression does
17831         not perform a mode test.
17832         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
17833         a subexpression does not constrain the top-level code set.
17834         * read-rtl.c (read_rtx_variadic): New function.
17835         (read_rtx_1): Use it; allow AND and IOR to be variadic.
17836         * doc/md.texi: Document new notation.
17837         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
17838         (cmpsi_operand): ... here, using new notation.
17839
17840 2006-01-22  Zack Weinberg  <zackw@panix.com>
17841
17842         * varray.c: Remove GENERATOR_FILE #ifdefs.
17843
17844 2006-01-22  Zack Weinberg  <zackw@panix.com>
17845
17846         * genautomata.c (output_reserved_units_table): Emit nothing if
17847         description->query_units_num is zero.  Remove extra blank line.
17848         (output_cpu_unit_reservation_p): Short circuit
17849         if description->query_units_num is zero.
17850
17851 2006-01-22  Zack Weinberg  <zackw@panix.com>
17852
17853         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
17854         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
17855         nor any of the random handful of variables that used to be necessary
17856         when this program was linked with rtlanal.o.  Prune set of forward
17857         function declarations.
17858         (struct attr_desc): Remove static_p field.
17859         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
17860         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
17861         (attr_string): Do not read the character one past the length of
17862         the string.
17863         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
17864         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
17865         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
17866         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
17867         (make_automaton_attrs): New.
17868         (main): Do not call into genautomata.  Call local gen_bypass
17869         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
17870         Remove special case for insn_alts.
17871         * genautomata.c: Include gensupport.h; not genattrtab.h nor
17872         varray.h (leftover from previous change).  Prune set of forward
17873         function declarations.  Remove state_alts fields from all
17874         structures.  Remove state_alts_table from struct automaton.
17875         Make everything except main static.  Do not maintain num_dfa_decls.
17876         Do not maintain state_alts fields of various structures.
17877         (process_decls): Don't validate condexp for dm_insn_reserv decls.
17878         (add_arc): Remove state_alts argument.  All callers updated.
17879         (output_reserved_units_table): Emit #ifdef here...
17880         (output_tables): ...not here.  Don't generate state_alts tables.
17881         (expand_automata): Don't generate attributes.
17882         (write_automata): Don't generate state_alts functions.
17883         (main): New function.
17884         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
17885         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
17886         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
17887         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
17888         (BYPASS_P_FUNC_NAME, output_state_alts_table)
17889         (output_automata_list_state_alts_code, output_internal_state_alts_func)
17890         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
17891         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
17892         Delete.
17893         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
17894         * genattrtab.h: Delete file.
17895         * Makefile.in (OBJS-common): Add insn-automata.o.
17896         (insn-automata.o): New rule.
17897         (simple_generated_c): Add insn-automata.c.
17898         (build/genattrtab.o, build/genautomata.o): Update dependencies.
17899         (genprogmd): Add automata.
17900         (build/genattrtab): Needs no extra objects nor libraries.
17901         (build/genautomata): Needs build/vec.o and -lm.
17902
17903 2006-01-22  Zack Weinberg  <zackw@panix.com>
17904
17905         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
17906         (output_dfa_max_issue_rate, locked_states_num): Delete.
17907         (struct automaton): Add locked_states field.
17908         (output_dead_lock_vect): Save number of locked states in
17909         automaton->locked_states.  If it is zero, don't print anything.
17910         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
17911         (output_internal_dead_lock_func): Only test the dead_lock_vect
17912         for automata that have locked states.
17913         (output_statistics): Always print the number of locked states for
17914         each automaton.  Calculate total number of locked states here.
17915         (write_automata): Don't call output_dfa_max_issue_rate.
17916         * genattrtab.c: Define length_unit_log as a const variable.
17917         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
17918         max_insn_queue_index const.
17919         * final.c (length_unit_log): Declare const.
17920         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
17921
17922 2006-01-22  Zack Weinberg  <zackw@panix.com>
17923
17924         * genautomata.c: Include vec.h, not varray.h.
17925         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
17926         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
17927         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
17928         VEC_* macros operating on appropriately typed vectors, or to
17929         malloced arrays when the size is known in advance.  Const-ify
17930         many char* variables and function arguments.  No functional changes.
17931         * Makefile.in (build/varray.o): Delete rule.
17932         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
17933         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
17934
17935 2006-01-22  Zack Weinberg  <zackw@panix.com>
17936
17937         * gensupport.c: Define get_insn_name and record_insn_name here.
17938         (read_md_rtx): Call record_insn_name as appropriate.
17939         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
17940         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
17941         * genpreds.c, genrecog.c: Don't define get_insn_name nor
17942         record_insn_name.
17943         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
17944         (BUILD_VARRAY): Delete.
17945         (genprognormal): Rename genprogmd.  Fold in all programs from
17946         genprognoprint; also attrtab.
17947         (build/genattrtab): Just mention genautomata.o and varray.o.
17948         Reorganize a bit, add comments to make the categories clearer.
17949
17950 2006-01-22  Zack Weinberg  <zackw@panix.com>
17951
17952         * genconditions.c (condition_table, add_condition): Delete.
17953         (write_conditions): Don't emit n_insn_conditions nor
17954         insn_elision_unavailable.  Issue the gcc version #ifdef here,
17955         inside the table, with no #else clause ...
17956         (write_header): ...not here.
17957         (write_writer): New function.
17958         (main): Don't initialize condition_table.  Use add_c_test.
17959         Call write_writer.
17960         * gensupport.c (init_md_reader_args_cb): Handle multiple input
17961         files on the command line.
17962         (maybe_eval_c_test): Don't check insn_elision_unavailable.
17963         Return -1 if there is no entry in the table, don't abort.
17964         (add_c_test, traverse_c_tests): New functions.
17965         * gensupport.h (insn_elision_unavailable, insn_conditions)
17966         (n_insn_conditions): Delete declarations.
17967         (add_c_test, traverse_c_tests): Declare.
17968         * read-rtl.c: Include gensupport.h.
17969         (read_conditions): New function.
17970         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
17971         (read_rtx_1): If we get EOF when we were looking for an initial
17972         open paren, return 0.  Call read_conditions when appropriate.
17973         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
17974         dummy-conditions.o.  Eliminate references to insn-conditions.o,
17975         or change them to build/gencondmd.o, as appropriate.  Remove
17976         insn-constants.h from $(simple_generated_h) and insn-conditions.c
17977         from $(simple_generated_c).  For all files remaining in those
17978         two lists, add insn-conditions.md to the generator command line.
17979         Give insn-constants.h/s-constants their own rules.  Add rules
17980         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
17981         (build/read-rtl.o): Depend on gensupport.h.
17982         (genprognormal): Include preds.
17983         (genprogearly): Rename genprognoprint; only difference is now that
17984         they don't link with $(BUILD_PRINT).
17985         * dummy-conditions.c: Delete.
17986
17987 2006-01-22  Zack Weinberg  <zackw@panix.com>
17988
17989         * genextract.c: Don't include insn-config.h.  Do include vec.h.
17990         Declare vectors of int, char, and locstr.
17991         (locstr): New typedef.
17992         (struct extraction): Make all array fields into bare pointers.
17993         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
17994         (insn_code_number): Delete.
17995         (accum_extract): New struct.
17996         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
17997         (gen_insn): Take insn_code_number as an argument.  Use an
17998         accum_extract structure instead of loading data directly into
17999         a struct extraction, and having to know how big it might get.
18000         (walk_rtx): Operate entirely on an accum_extract structure.
18001         (print_path): Avoid unnecessary use of printf.
18002         (print_header): New function, split out of main.  Distinguish
18003         more carefully between an unrecognizable insn and an insn that
18004         has the code number of a define_expand.
18005         (main): Pass insn_code_number to gen_insn.  Call print_header
18006         only after parsing.  Avoid unnecessary use of printf.
18007         * Makefile.in (build/vec.o): New rule.
18008         (build/genextract): Depend on build/vec.o.
18009         (build/genextract.o): Don't depend on insn-config.h.
18010
18011 2006-01-22  Zack Weinberg  <zackw@panix.com>
18012
18013         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
18014         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
18015         practical.  Eliminate per-generator-program link rules.
18016
18017 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
18018
18019         PR middle-end/24437
18020         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
18021         with a call expr to ...
18022         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
18023
18024 2006-01-23  Richard Guenther  <rguenther@suse.de>
18025
18026         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
18027         before make_edge with conditional EDGE_TRUE_VALUE.
18028
18029 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
18030         Jan Hubicka  <jh@suse.cz>
18031         Richard Guenther  <rguenther@suse.de>
18032
18033         PR rtl-optimization/25654
18034         * cfgexpand.c (aggregate_contains_union_type): New function.
18035         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
18036         for structure variables that contain a union type.
18037
18038 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
18039
18040         * gengtype.c (new_structure): Return the structure.
18041         (create_option): Add an extra "next" argument.
18042         (create_field): New function.
18043         (adjust_field_rtx_def): Use create_option and create_field.
18044         Remove a now-unnecessary call to find_structure.
18045         (adjust_field_tree_def): Likewise.
18046         (note_yacc_type): Remove an unnecessary call to find_structure.
18047         * gengtype.h (new_structure): Return the structure.
18048         (create_option): Add an extra argument.
18049         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
18050         (option): Adjust calls to create_option.
18051
18052 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
18053
18054         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
18055
18056 2006-01-22  Paul Brook  <paul@codesourcery.com>
18057         Peter Barada  <peter@the-baradas.com>
18058
18059         * config/m68k/m68k.md: Add Coldfire FPU support.
18060         Define FP mode macro and associated attributes.
18061         Use it for float mode patterns.
18062         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
18063         (LIBCALL_VALUE): Use m68k_libcall_value.
18064         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
18065         (m68k_function_value): Ditto.
18066         (emit_move_sequence): Ditto.
18067         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
18068         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
18069         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
18070         (MULTILIB_EXCEPTIONS): Ditto.
18071         * config/m68k/m68k.opt: Add mcfv4e.
18072         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
18073         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
18074         (m68k_output_function_prologue): Save ColdFire FPU registers.
18075         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
18076         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
18077         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
18078         ColdFire FPU registers.
18079         (m68k_libcall_value, m68k_function_value): New functions.
18080         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
18081         (LIBCALL_VALUE): Use m68k_libcall_value.
18082         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
18083         (MASK_COLDFIRE): Add MASK_CFV4E.
18084         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
18085         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
18086         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
18087         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
18088         (GO_IF_LEGITIMATE_ADDRESS): Use it.
18089         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
18090         * doc/invoke.tex: Document -mcfv4e on m68k.
18091
18092 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
18093
18094         * doc/contribute.texi: Change CVS to SVN and update the corresponding
18095         URL.
18096
18097 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18098
18099         PR c++/16190
18100         * c-opts.c (c_common_handle_option): Don't include
18101         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
18102         * doc/invoke.texi (C++ Dialect Options): Document that
18103         -Wnon-virtual-dtor is no longer included in -Wall.
18104
18105 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
18106
18107         * gcov.c (print_version), gcov-dump.c (print_version),
18108         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
18109         dates.
18110
18111 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
18112
18113         * df-scan.c (problem_SCAN): Added NULL reset function.
18114         (df_scan_reset_blocks): Added code to call reset block function
18115         (df_bb_refs_delete) Fixed comment.
18116         (df_insn_refs_delete): Made tolerant of deleting non existent info
18117         for dataflow problems that need to be reset.
18118         * df-core.c (df_set_blocks): Ditto.
18119         * df.h (struct df_problem): Added reset_fun.
18120         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
18121         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
18122         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
18123         functions to clear out all references to def-use or use-def chains.
18124
18125 2006-01-21  Ben Elliston  <bje@au.ibm.com>
18126
18127         * varasm.c (assemble_real): Initialise data array.
18128
18129 2006-01-20  Paul Brook  <paul@codesourcery.com>
18130
18131         Merge from csl-arm-branch.
18132         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
18133         * config/arm/arm.md (movdi): Force operands[1] to a register
18134         if we have a non-register source.
18135         (*arm_movdi, *movdf_soft_insn): Require that one of the
18136         operands be a register.
18137         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
18138         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
18139
18140 2006-01-20  DJ Delorie  <dj@redhat.com>
18141
18142         * varasm.c (initializer_constant_valid_p): Allow pointers
18143         initialized from integer constants of lesser precision.
18144         (output_constant): Allow non-int-sized pointer modes to be
18145         initialized from integer constants.
18146
18147 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
18148
18149         PR libstdc++/25524
18150         * cppdefault.h (struct default_include): Add multilib flag.
18151         * cppdefault.c (cpp_include_defaults): Set it.
18152         * c.opt (-imultilib): New option.
18153         * c-opts.c (imultilib): New.
18154         (c_common_handle_option): Handle -imultilib.
18155         (c_common_post_options): Likewise.
18156         * c-incpath.c (add_standard_paths, register_include_chains):
18157         Likewise.
18158         * c-incpath.h (register_include_chains): Add extra parameter.
18159         * gcc.c (do_spec_1): Generate -imultilib option.
18160         (The Specs Language): Update %I description.
18161         (process_command): Update copyright notice.
18162         * doc/cppopts.texi (-imultilib): Document.
18163         * doc/invoke.texi (-imultilib): Include in option summary.
18164         (%I): Update specs documentation.
18165
18166 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
18167
18168         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
18169
18170 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
18171
18172         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
18173         label numbers.
18174
18175 2006-01-20  Richard Guenther  <rguenther@suse.de>
18176         Steven Bosscher <stevenb.gcc@gmail.com>
18177
18178         PR rtl-optimization/24626
18179         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
18180         EDGE_TRUE_VALUE if in RTL mode.
18181
18182         Revert
18183         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
18184         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
18185
18186 2006-01-20  Dirk Mueller  <dmueller@suse.com>
18187
18188         PR c++/5520
18189         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
18190         instead of a special NOP marker.
18191         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
18192         NOP marker handling.
18193         * c-common.h (empty_body_warning): Add forward declaration.
18194         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
18195         Now uses IS_EMPTY_STMT() instead of special NOP markers.
18196
18197 2006-01-20  Paul Brook  <paul@codesourcery.com>
18198
18199         * Makefile.in (lang_checks): Keep going if mkdir fails.
18200
18201 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
18202
18203         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
18204         be able to clean out basic block when not necessary.
18205         (df_scan_free): Fixed to properly delete information if df is
18206         unused before calling df_finish.
18207         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
18208         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
18209         or comment typos.
18210         (df_bb_refs_delete): New function.
18211         (df_refs_delete): Moved per block code to df_bb_refs_delete.
18212         * df-core.c (df_set_blocks): Added code to properly clean out
18213         unused blocks if they are not part of the blocks to consider.
18214         Added additional null check.
18215         (df_compact_blocks): Added basic block parameter to free_bb_fun to
18216         be able to clean out basic block when not necessary
18217         * df.h (df_free_bb_function): Ditto.
18218         (df_bb_refs_delete): New function.
18219         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
18220         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
18221         basic block parameter to be able to clean out basic block when not
18222         necessary.
18223         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
18224         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
18225         Fixed to properly delete information if df is unused before
18226         calling df_finish.
18227
18228 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
18229
18230         PR rtl-optimization/25799
18231         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
18232         Corrected confluence operator to remove bits from op2 before oring
18233         with op1 rather than removing bits from op1.
18234         (df_ru_transfer_function): Corrected test on wrong bitmap which
18235         caused infinite loop.  Both of these problems were introduced in
18236         the dataflow rewrite.
18237
18238 2006-01-19  DJ Delorie  <dj@redhat.com>
18239
18240         * reload1.c (find_reload_regs): Note the details of reload
18241         failures in the dump file.
18242         (spill_failure): Likewise.
18243
18244 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
18245
18246         * loop-iv.c: Include df.h and hashtab.h.
18247         (enum iv_grd_result): New enum.
18248         (DF_REF_IV, DF_REF_IV_SET): New macros.
18249         (struct biv_entry): New.
18250         (df, bivs): New global variables.
18251         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
18252         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
18253         Removed.
18254         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
18255         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
18256         analyzed_for_bivness_p, record_biv): New functions.
18257         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
18258         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
18259         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
18260         UD chains.
18261         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
18262         analysed.
18263         (iv_number_of_iterations): Use new interface to iv analysis.
18264         * loop-unroll.c: Do not include varray.h.
18265         (analyze_iv_to_split_insn): Use new interface to iv
18266         analysis.
18267         * loop-unswitch.c (may_unswitch_on): Ditto.
18268         * df.c (df_bitmaps_free): Only work for bbs for that structures are
18269         allocated.
18270         (df_bb_modify): Realloc tables to the new index.
18271         (df_find_use): New function.
18272         * df.h (df_find_use): Declare.
18273         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
18274         outmode.
18275         * cfgloop.h (struct rtx_iv): Remove analysed field.
18276         (iv_get_reaching_def): Removed.
18277         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
18278         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
18279         (loop-iv.o): Add df.h and hashtab.h dependency.
18280         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
18281
18282 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
18283
18284         PR target/25668
18285         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
18286         Double TFmode.
18287         (__floatundisf, __floatundidf): Likewise.
18288         * libgcc2.h (IS_IBM_EXTENDED): Define.
18289
18290 2006-01-19  DJ Delorie  <dj@redhat.com>
18291
18292         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
18293
18294 2006-01-19  Paul Brook  <paul@codesourcery.com>
18295
18296         * config/arm/arm.c (arm_compute_func_type): Treat all functions
18297         as nothrow when unwinding tables are disabled.
18298
18299 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18300
18301         PR testsuite/25171
18302         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
18303         of bit-field" when in system header.
18304
18305 2006-01-19  DJ Delorie  <dj@redhat.com>
18306
18307         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
18308         the 16 bit shift limit of the m16c.
18309
18310 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
18311
18312         PR target/22099
18313         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
18314         * config/i386/i386.c (output_set_got): Output the label if we have one
18315         for the TARGET_DEEP_BRANCH_PREDICTION case.
18316
18317 2006-01-19  Jan Hubicka  <jh@suse.cz>
18318             H.J. Lu  <hongjiu.lu@intel.com>
18319             Evandro Menezes <evandro.menezes@amd.com>
18320
18321         * invoke.texi (generic): Document
18322         (i686) Update.
18323         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
18324         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
18325         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
18326         (x86_use_incdec, x86_pad_returns): New variables
18327         (TARGET_CPU_DEFAULT_generic): New constant
18328         (TARGET_CPU_DEFAULT_NAMES): Add generic.
18329         (enum processor_type): Add generic32 and generic64.
18330         * i386.md (cpu attribute): Add generic32/generic64
18331         (movhi splitter): Behave sanely when both partial_reg_dependency and
18332         partial_reg_stall are set.
18333         (K8 splitters): Enable for generic as well.
18334         * predicates.md (incdec_operand): Use TARGET_INCDEC
18335         (aligned_operand): Avoid memory mismatch stalls.
18336         * athlon.md: Enable for generic64, new patterns for 128bit moves.
18337         * ppro.md: Enable for generic32
18338         * i386.c (generic64_cost, generic32_cost): New.
18339         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
18340         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
18341         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
18342         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
18343         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
18344         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
18345         x86_partial_reg_dependency, x86_memory_mismatch_stall,
18346         x86_accumulate_outgoing_args, x86_prologue_using_move,
18347         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
18348         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
18349         Enable for generic.
18350         (x86_use_incdec, x86_pad_returns): New.
18351         (override_options): Add generic32 and generic64, translate "generic"
18352         to generic32/generic64 and "i686" to "generic32", refuse
18353         "generic32"/"generic64" as arch target.
18354         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
18355         (ix86_reorg): Honor PAD_RETURNS.
18356
18357 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
18358
18359         * tree-pretty-print.c (dump_generic_node): Handle
18360         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
18361         * cgraph.c (cgraph_expand_queue): Rename from
18362         cgraph_analyze_queue.  Update all users.
18363         * cgraphunit.c (cgraph_assemble_pending_functions): Process
18364         cgraph_expand_queue.
18365         (cgraph_expand_all_functions): Likewise.
18366         (cgraph_finalize_pending_functions): Remove.  Update callers.
18367
18368         * tree.h (OMP_DIRECTIVE_P): Define.
18369         (OMP_PARALLEL_FN): Define.
18370         (OMP_PARALLEL_DATA_ARG): Define.
18371         (OMP_SECTIONS_SECTIONS): Define.
18372         * tree-pass.h (pass_expand_omp): Declare.
18373         * omp-low.c (struct omp_region): Declare.
18374         (struct omp_context): Remove fields 'parallel_type',
18375         'parallel_start_ix' and 'parallel_start_additional_args'.
18376         Update all users.
18377         (struct omp_for_data): Rename from struct expand_omp_for_data.
18378         (omp_regions): New static variable.
18379         (root_omp_region): New static variable.
18380         (find_omp_clause): Make static.
18381         (is_in_combined_parallel_ctx): Remove.
18382         (is_combined_parallel): New.
18383         (extract_omp_for_data): Move earlier in the file.
18384         (workshare_safe_to_combine_p): New.
18385         (get_ws_args_for): New.
18386         (determine_parallel_type): Move earlier in the file.
18387         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
18388         child function.
18389         (omp_copy_decl): Likewise.
18390         (create_omp_child_function): Likewise.
18391         (lookup_omp_region): New.
18392         (dump_omp_region): New.
18393         (debug_omp_region): New.
18394         (debug_all_omp_regions): New.
18395         (new_omp_region): New.
18396         (scan_omp_parallel): If parallel_nesting_level > 1, the
18397         directive is nested within another parallel directive.
18398         Set OMP_PARALLEL_FN.
18399         (scan_omp_for): Do not try to handle combined parallel+for
18400         cases.
18401         Remove FIXME comment.
18402         (scan_omp_nested): Remove.
18403         (scan_omp_1): Do not call scan_omp_nested when
18404         parallel_nesting_level is > 1.
18405         Do not change the DECL_CONTEXT of local variables found.
18406         (lookup_decl_in_outer_ctx): New.
18407         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
18408         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
18409         (lower_reduction_clauses): Rename from expand_reduction_clauses.
18410         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
18411         If CTX is nested, lookup VAR in the outer context when
18412         building copy assignment.
18413         (lower_send_clauses): Rename from expand_send_clauses.
18414         If CTX is nested, lookup VAR in the outer context when
18415         building copy assignments.
18416         (lower_send_shared_vars): Rename from expand_send_shared_vars.
18417         If CTX is nested, lookup VAR in the outer context when
18418         building copy assignments.
18419         (expand_parallel_call): Rename from build_parallel_call.
18420         Handle combined parallel+workshare cases.
18421         Re-implement to emit code into the CFG.
18422         (list2chain): New.
18423         (expand_omp_parallel): Re-implement to emit code into the CFG.
18424         Call move_sese_region_to_fn to outline the sub-graph
18425         containing the parallel region.
18426         (expand_omp_for_1): Remove.
18427         (expand_omp_for_generic): Re-implement to emit code into the
18428         CFG.
18429         (expand_omp_for_static_nochunk): Likewise.
18430         (expand_omp_for_static_chunk): Likewise.
18431         (expand_omp_for): Likewise.
18432         (expand_omp_sections): Likewise.
18433         (remove_exit_barriers): New.
18434         (expand_omp_synch): New.
18435         (expand_omp): New.
18436         (build_omp_regions_1): New.
18437         (build_omp_regions): New.
18438         (execute_expand_omp): New.
18439         (gate_expand_omp): New.
18440         (pass_expand_omp): Define.
18441         (lower_omp_sections): Rename from expand_omp_sections.
18442         Set OMP_SECTIONS_SECTIONS.
18443         (lower_omp_single_simple): Rename from expand_omp_single_simple.
18444         (lower_omp_single_copy): Rename from expand_omp_single_copy.
18445         (lower_omp_single): Rename from expand_omp_simple.
18446         (lower_omp_master): Rename from expand_omp_master.
18447         (lower_omp_ordered): Rename from expand_omp_ordered.
18448         (lower_omp_critical): Rename from expand_omp_critical.
18449         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
18450         (lower_omp_for): Re-implement.
18451         (lower_omp_parallel): Re-implement.
18452         (lower_regimplify): Rename from expand_regimplify.
18453         (lower_omp_1): Rename from expand_omp_1.
18454         If there are syntax errors in the program, replace every
18455         OpenMP directive with NOP.
18456         Call lower_omp_* instead of expand_omp_*.
18457         (lower_omp): Rename from expand_omp.
18458
18459         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
18460         * tree-gimple.h (enum omp_parallel_type): Remove.
18461         (gimple_boolify): Declare extern.
18462         (find_omp_clause, determine_parallel_type): Remove.
18463
18464         * gimple-low.c (lower_omp_directive): New.
18465         (lower_stmt): Call it.
18466         (record_vars_into): Move from ...
18467         (record_vars): ... here.
18468         Call record_vars_into with current_function_decl.
18469
18470         * gimplify.c (struct gimplify_ctx): Remove fields
18471         combined_pre_p and combined_ctxp.  Update users.
18472         (get_formal_tmp_var): Add documentation.
18473         (gimple_boolify): Make extern.
18474         (gimplify_expr_in_ctx): Remove.  Update callers.
18475         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
18476         will always be a BIND_EXPR.
18477         (gimplify_expr): Handle OMP_RETURN_EXPR.
18478         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
18479         (OMP_PARALLEL): Add 3 operands.
18480         (OMP_SECTIONS): Add 1 operand.
18481         (OMP_RETURN_EXPR): Define.
18482
18483         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
18484         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
18485         * tree-iterator.c (alloc_stmt_list): Assert that we are not
18486         creating a circular free list.
18487         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
18488
18489         * tree-flow.h (move_sese_region_to_fn): Declare.
18490         (record_vars_into): Declare.
18491         * tree-cfg.c (make_omp_sections_edges): New.
18492         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
18493         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
18494         OMP_SECTIONS and OMP_SECTION.
18495         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
18496         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
18497         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
18498         (gather_blocks_in_sese_region): New.
18499         (struct move_stmt_d): Declare.
18500         (move_stmt_r): New.
18501         (move_block_to_fn): New.
18502         (move_sese_region_to_fn): New.
18503
18504         * passes.c (init_optimization_passes): Schedule
18505         pass_expand_omp after pass_init_datastructures.
18506
18507         * tree-ssa-operands.c (get_expr_operands): Handle
18508         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
18509         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
18510
18511 2006-01-19  Jeff Law  <law@redhat.com>
18512
18513         * tree-vrp.c (extract_range_from_assert): Refine the result range
18514         if the variable referenced by the ASSERT_EXPR has a range and
18515         either the tentative result range or the previous range is a
18516         VR_ANTI_RANGE.
18517
18518 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
18519
18520         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
18521
18522 2006-01-19  Jan Hubicka  <jh@suse.cz>
18523
18524         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
18525
18526 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
18527
18528         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
18529         (expand_compound_operation, expand_field_assignment): Fail if the
18530         bit lengths of an extract operation are out of range.
18531         (make_extraction): Compute wanted_inner_mode based on the position
18532         and length of the extraction.  Make it extraction_mode for non-constant
18533         positions, and do not modify offset in that case.  When generating a
18534         new MEM, use a mode that can hold the extraction while keeping correct
18535         alignment.  Remove code that supported MEMs wrapped by USEs.
18536         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
18537
18538 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
18539
18540         * config/s390/s390.md ("Y", "y"): New mode attribute.
18541         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
18542         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
18543         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
18544         "*addsi3_imm_cc", "*addsi3_carry1_cc",
18545         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
18546         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
18547         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
18548         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
18549         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
18550         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
18551         "addsi3", "subsi3"): Insn patterns removed.
18552         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
18553         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
18554         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
18555         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
18556         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
18557         "*sub<mode>3_cconly2"): New insn patterns.
18558         ("addsi3", "subsi3"): New expanders.
18559
18560 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
18561
18562         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
18563         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
18564         existing STMT_VINFO_VECTYPE if available.
18565         (vect_mark_relevant): Add special handling for stmts that are
18566         marked as STMT_VINFO_IN_PATTERN_P.
18567         (vect_analyze_loop): Call vect_pattern_recog.
18568         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
18569         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
18570         stmt_info.
18571         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
18572         (vect_recog_func_ptr): New function-pointer type.
18573         * tree-vect-patterns.c: New file.
18574         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
18575         (vect_recog_dot_prod_pattern, vect_pattern_recog):
18576         (vect_pattern_recog_1): New functions.
18577         (vect_pattern_recog_funcs): New array of function pointers.
18578
18579         * tree-vectorizer.h (ternary_op): New enum value.
18580         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
18581         declaration. Revised documentation. Removed redundant dump prints.
18582         Removed redundant argument. Added support for reduction patterns.
18583         (vectorizable_reduction): Added support for reduction patterns.
18584         (vect_transform_stmt): Added support for patterns.
18585
18586         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
18587         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
18588         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
18589         (expand_widen_pattern_expr): New function.
18590         (init_optabs): Initialize new optabs udot_prod_optab,
18591         sdot_prod_optab.
18592         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
18593         (sdot_prod_optab, udot_prod_optab): Define new optabs.
18594         (expand_widen_pattern_expr): New function declaration.
18595         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
18596         tree-codes.
18597         * tree-inline.c (estimate_num_insns_1): Added cases for new
18598         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
18599         * tree-pretty-print.c (dump_generic_node): Likewise.
18600         (op_prio): Likewise.
18601         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
18602         * tree-ssa-operands.c (get_expr_operands): Added case for
18603         DOT_PROD_EXPR.
18604         * tree-vect-patterns.c (widened_name_p): New function.
18605         (vect_recog_dot_prod_pattern): Added function implementation.
18606         * tree-vect-transform.c (get_initial_def_for_reduction): Added
18607         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
18608         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
18609         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
18610
18611         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
18612         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
18613         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
18614         (init_optabs): Initialize new optabs widen_ssum_optab,
18615         widen_usum_optab.
18616         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
18617         (widen_ssum_optab, widen_usum_optab): Define new optabs.
18618         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
18619         use instead of type of def.
18620         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
18621         function implementation.
18622         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
18623         widen_ssumv8hi): New.
18624
18625         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
18626         patterns.
18627
18628 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
18629
18630         PR c/25805
18631         * c-decl.c (add_flexible_array_elts_to_size): New function.
18632         (finish_decl): Use it.
18633
18634 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
18635
18636         * diagnostic.h: Include options.h.
18637         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
18638         dependancies for diagnostic.h.
18639         * Makefile.in (DIAGNOSTIC_H): Add options.h.
18640
18641 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
18642
18643         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
18644         (ssa_ro_call_cache_valid): Ditto.
18645         * tree-ssa-alias.c (sort_tags_by_id): New function.
18646         (init_transitive_clobber_worklist): Ditto.
18647         (add_to_worklist): Ditto.
18648         (mark_aliases_call_clobbered): Ditto.
18649         (compute_tag_properties): Ditto.
18650         (set_initial_properties): Ditto.
18651         (compute_call_clobbered): Ditto.
18652         (compute_may_aliases):  Call compute_call_clobbered and grouping.
18653         (compute_flow_sensitive_aliasing): Remove clobbering related code.
18654         (compute_flow_insensitive_aliasing): Grouping now happens in our
18655         caller.
18656         (setup_pointers_and_addressables): Remove clobbering related code.
18657         (add_may_alias): Ditto.
18658         (replace_may_alias): Ditto.
18659         (get_nmt_for): Ditto.
18660         (create_global_var):
18661         (is_escape_site): Return an escape_type enumeration.
18662         * tree-flow-inline.h (is_call_clobbered): Global var does not
18663         imply call clobbered.
18664         (mark_call_clobbered): Take a reason for marking this. Remove
18665         marking of globalness, and cache invalidation.
18666         (clear_call_clobbered): Remove cache invalidation code.
18667         * tree-dfa.c (dump_variable): If details is on, dump the reason
18668         for escaping.
18669         * tree-outof-ssa.c (create_temp): Copy escape mask from original
18670         variable.
18671         * tree-flow.h (struct ptr_info_def): Add escape mask member.
18672         (struct var_ann_d): Ditto.
18673         (enum escape_type): New.
18674         (mark_call_clobbered): Adjust prototype.
18675         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
18676         are never call clobbered.
18677         Record reasons for escaping.
18678         * tree-ssa-structalias.h (is_escape_site): Update prototype.
18679         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
18680         (ssa_ro_call_cache_valid): Ditto.
18681         (clobbered_v_may_defs): Ditto.
18682         (clobbered_vuses): Ditto.
18683         (ro_call_vuses): Ditto.
18684         (clobber_stats): New.
18685         (init_ssa_operands): Zero out clobber stats.
18686         (fini_ssa_operands): Print out clobber stats.
18687         (get_call_expr_operands): Pass callee fndecl to
18688         add_call_read_ops).
18689         (add_call_clobber_ops): Remove use of cache.
18690         Add use of PURE_CONST information.
18691         (add_call_read_ops): Remove use of cache.
18692         Add use of static not_read information.
18693
18694 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
18695
18696         Introduce TLS descriptors for i386 and x86_64.
18697         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
18698         (TARGET_ANY_GNU_TLS): New macro.
18699         (enum tls_dialect): Added TLS_DIALECT_GNU2.
18700         (struct machine_function): Add tls_descriptor_call_expanded_p.
18701         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
18702         (ix86_current_function_calls_tls_descriptor): Likewise.
18703         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
18704         (override_options): Introduce gnu2 tls dialect.
18705         (ix86_frame_pointer_required): Functions containing TLSCALLs are
18706         not leaves.
18707         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
18708         Likewise.
18709         (legitimize_tls_address): Adjust logic for GNU2 TLS.
18710         (ix86_init_machine_status): Initialize new field.
18711         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
18712         (ix86_tls_module_base): New.
18713         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
18714         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
18715         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
18716         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
18717         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
18718         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
18719         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
18720         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
18721         * config/i386/predicates.md (tls_modbase_operand): New.
18722         (tp_or_register_operand): New.
18723
18724 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
18725
18726         * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
18727         (look_for_address_of): Ditto.
18728         (ipa_init): Walk the function decls.
18729         (static_execute): Don't set readonly on FUNCTION_DECL's.
18730
18731 2006-01-18  Roger Sayle  <roger@eyesopen.com>
18732
18733         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
18734         for shifts where the source and destination registers are different.
18735
18736 2006-01-18  Paul Brook  <paul@codesourcery.com>
18737
18738         Merge from csl-arm-branch.
18739         2005-03-14  Julian Brown  <julian@codesourcery.com>
18740         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
18741         (aeabi_llsl): Likewise.
18742         (ashrdi3): Likewise.
18743         (aeabi_lasr): Likewise.
18744         (lshrdi3): Likewise.
18745         (aeabi_llsr): Likewise.
18746         2005-03-10  Julian Brown  <julian@codesourcery.com>
18747         * config.gcc: Disable shared libgcc for SymbianOS.
18748         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
18749
18750 2006-01-18  DJ Delorie  <dj@redhat.com>
18751
18752         * c-pragma.c (handle_pragma_diagnostic): New.
18753         (init_pragma): Register it.
18754         * doc/extend.texi: Document it.
18755
18756         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
18757         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
18758         (diagnostic_context): Add classify_diagnostic[].
18759         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
18760         as errors if they're overridden to DK_WARNING.
18761         (diagnostic_initialize): Initialize classify_diagnostic[].
18762         (diagnostic_set_kind_override): New.
18763         (diagnostic_report_diagnostic): Check for kind changes.
18764         * opts.c (common_handle_option): Take lang_mask.  Update callers.
18765         Handle OPT_Werror_.
18766         * common.opt (Werror=): New.
18767         * doc/invoke.texi: Document -Werror=*
18768
18769 2006-01-18  Jeff Law  <law@redhat.com>
18770
18771         * tree-vrp.c (test_for_singularity): Correct test for new
18772         min limit.  Use operand_equal_p rather than pointer equality
18773         for testing if new min/max values are equal.
18774
18775         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
18776         using range information until after propagation and folding.
18777
18778 2006-01-18  Richard Henderson  <rth@redhat.com>
18779             Aldy Hernandez  <aldyh@redhat.com>
18780             Jakub Jelinek  <jakub@redhat.com>
18781             Diego Novillo  <dnovillo@redhat.com>
18782
18783         * omp-low.c: New file.
18784         * c-omp.c: New file.
18785
18786 2006-01-18  Richard Henderson  <rth@redhat.com>
18787             Jakub Jelinek  <jakub@redhat.com>
18788             Diego Novillo  <dnovillo@redhat.com>
18789
18790         * doc/invoke.texi: Document -fopenmp.
18791         * tree-dump.h (debug_function): Declare.
18792         * hooks.c (hook_bool_tree_bool_false): New function.
18793         (hook_tree_tree_null): Remove.
18794         (hook_tree_tree_tree_null): New.
18795         * hooks.h: Update to match.
18796         * tree-pretty-print.c (debug_tree_chain): New.
18797         (print_generic_expr): Handle TDF_CHAIN.
18798         (dump_generic_node): Handle BLOCK.
18799         Do not abort with incomplete SWITCH_EXPRs.
18800         Do not dump body of an OpenMP directive if TDF_SLIM is given.
18801         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
18802         print space after directive name.
18803         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
18804         Handle OMP_MASTER and OMP_ORDERED.
18805         Handle printing of OMP_BODY just in one place, goto
18806         dump_omp_body in the rest of OMP_* nodes that have
18807         OMP_BODY.
18808         Don't handle clause nodes here.  Update omp statements to
18809         use dump_omp_clauses.
18810         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
18811         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
18812         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
18813         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
18814         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
18815         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
18816         Adjust output for GOMP_PARALLEL.
18817         (dump_omp_clauses): New.
18818         (print_declaration): Dump DECL_VALUE_EXPR.
18819         (op_symbol_1): Split out of op_symbol.
18820         (dumping_stmts): Remove.  Update all users.
18821         * cgraph.c (cgraph_analyze_queue): New.
18822         (cgraph_add_new_function): New.
18823         * cgraph.h (cgraph_analyze_queue): Declare.
18824         (cgraph_add_new_function): Declare.
18825         (cgraph_lower_function): Remove.
18826         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
18827         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
18828         and TYPE_P nodes in its default clause.
18829         (empty_body_p): New.
18830         (tree_range_check_failed): New.
18831         (build5_stat): New.
18832         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
18833         OMP_CLAUSE_REDUCTION_MERGE,
18834         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
18835         OMP_CLAUSE_PRIVATE_DEBUG,
18836         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
18837         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
18838         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
18839         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
18840         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
18841         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
18842         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
18843         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
18844         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
18845         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
18846         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
18847         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
18848         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
18849         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
18850         (TREE_RANGE_CHECK): New.
18851         (empty_body_p): Declare.
18852         (enum omp_clause_default_kind): New.
18853         (build_string_literal): Declare.
18854         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
18855         (build5_stat, build5): Declare.
18856         * tree-pass.h (TDF_CHAIN): Define.
18857         * tree-pass.h (PROP_gimple_lomp): Define.
18858         (pass_lower_omp): Declare.
18859         * diagnostic.h (debug_tree_chain): Declare.
18860         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
18861         mode_for_size.
18862         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
18863         * builtins.c (build_string_literal): Make extern.
18864         * gcc.c (include_spec_function): New.
18865         (static_spec_functions): Add it.
18866         (main): Move load of libgomp.spec ...
18867         (LINK_COMMAND_SPEC): ... here.
18868         (link_gomp_spec): New.
18869         (static_specs): Include it.
18870         (LINK_COMMAND_SPEC): Add link_gomp.
18871         (GOMP_SELF_SPECS): New.
18872         (driver_self_specs): Include it.
18873         (switch_matches): Don't mark inline.
18874         (main): Load libgomp.spec.
18875         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
18876         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
18877         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
18878         * tree-gimple.h (enum omp_parallel): Declare.
18879         (determine_parallel_type): Declare.
18880         (omp_firstprivatize_variable): Declare.
18881         (omp_reduction_init): Declare.
18882         (diagnose_omp_structured_block_errors): Declare.
18883         (struct walk_stmt_info): Add want_return_expr.
18884         (struct walk_stmt_info): Add want_bind_expr, want_locations.
18885         (find_omp_clause): Declare.
18886         (insert_field_into_struct): Declare.
18887         (struct walk_stmt_info): Move from tree-nested.c
18888         (walk_stmts): Declare.
18889         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
18890         to 200505.
18891         * cgraphunit.c (cgraph_lower_function): Make static.
18892         (cgraph_finalize_pending_functions): New.
18893         (cgraph_finalize_function): Call it.
18894         (cgraph_finalize_compilation_unit): Likewise.
18895         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
18896         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
18897         (BT_FN_UINT_UINT): New.
18898         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
18899         DEF_FUNCTION_TYPE_VAR_4): Document.
18900         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
18901         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
18902         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
18903         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
18904         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
18905         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
18906         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
18907         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
18908         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
18909         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
18910         into separate files.
18911         (DEF_GOMP_BUILTIN): New.
18912         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
18913         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
18914         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
18915         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
18916         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
18917         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
18918         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
18919         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
18920         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
18921         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
18922         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
18923         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
18924         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
18925         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
18926         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
18927         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
18928         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
18929         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
18930         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
18931         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
18932         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
18933         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
18934         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
18935         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
18936         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
18937         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
18938         * sync-builtins.def: New file, moved from builtins.def.
18939         * omp-builtins.def: New file, moved from builtins.def.
18940         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
18941         * gimple-low.c (lower_function_body): Clear data.
18942         (lower_stmt): Do not handle COMPOUND_EXPR.
18943         Remove call to print_node_brief.
18944         * c-tree.h (c_finish_omp_clauses): New prototype.
18945         (C_DECL_THREADPRIVATE_P): Define.
18946         (lookup_name_no_remap, c_omp_remap_private): Remove
18947         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
18948         (check_for_loop_decls): Update decl.
18949         (lookup_name_no_remap, c_omp_remap_private): Declare.
18950         (build_indirect_ref, build_modify_expr, pushdecl,
18951         pushdecl_top_level): Move to c-common.h.
18952         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
18953         before the switch, but just in the 2 places that need it.
18954         * c-decl.c (diagnose_mismatched_decls): Do not check for
18955         mismatched thread-local attributes when OLDDECL is marked
18956         threadprivate and NEWDECL has no thread-local attributes.
18957         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
18958         (c_gimple_diagnostics_recursively): Rename from
18959         c_warn_unused_result_recursively.  Invoke
18960         diagnose_omp_structured_block_errors.
18961         (check_for_loop_decls): Return a singular decl found.
18962         * langhooks.c (lhd_omp_predetermined_sharing): Return
18963         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
18964         (lhd_omp_firstprivatize_type_sizes): New.
18965         (lhd_omp_assignment): New.
18966         (lhd_omp_predetermined_sharing): New.
18967         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
18968         (struct lang_hooks_for_types): Add
18969         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
18970         omp_predetermined_sharing, omp_disregard_value_expr,
18971         omp_private_debug_clause, omp_clause_default_ctor,
18972         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
18973         (c_finish_omp_clauses): New.
18974         (c_finish_bc_stmt): Diagnose break within omp for.
18975         (c_begin_omp_parallel, c_finish_omp_parallel): New.
18976         (build_unary_op): Return error_mark after reporting
18977         a readonly_error.
18978         (build_modify_expr): Likewise.
18979         * gimplify.c: Include optabs.h and pointer-set.h.
18980         (enum gimplify_omp_var_data): Declare.
18981         (struct gimplify_omp_ctx): Declare.
18982         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
18983         and combined_ctxp.
18984         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
18985         (push_gimplify_context, pop_gimplify_context): Allow nesting.
18986         (splay_tree_compare_decl_uid): New.
18987         (new_omp_context): New.
18988         (delete_omp_context): New.
18989         (gimple_add_tmp_var): Call omp_add_variable.
18990         (gimplify_bind_expr): Likewise.
18991         (gimplify_var_or_parm_decl): If omp_notice_variable returned
18992         true, disregard DECL_VALUE_EXPR on the decl if any.
18993         (gimplify_expr_in_ctx): New.
18994         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
18995         omp_add_variable, omp_notice_variable, omp_is_private
18996         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
18997         gimplify_adjust_omp_clauses, gimplify_omp_parallel
18998         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
18999         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
19000         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
19001         gimplify_omp_atomic): New.
19002         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
19003         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
19004         OMP_CRITICAL and OMP_ATOMIC.
19005         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
19006         * c-pragma.h (enum pragma_kind): Add
19007         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
19008         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
19009         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
19010         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
19011         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
19012         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
19013         PRAGMA_OMP_THREADPRIVATE.
19014         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
19015         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
19016         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
19017         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
19018         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
19019         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
19020         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
19021         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
19022         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
19023         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
19024         * tree-ssa-dce.c (find_control_dependence): Do not assume that
19025         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
19026         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
19027         OpenMP directives.
19028         (struct nesting_info): Add field_map,
19029         suppress_expansion, debug_var_chain.
19030         (create_nesting_tree): Initialize them.
19031         (lookup_field_for_decl): Use field_map.
19032         (get_nonlocal_debug_decl, get_local_debug_decl): New.
19033         (convert_local_omp_clauses): New.
19034         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
19035         (walk_body): Split out of walk_function.
19036         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
19037         (convert_nonlocal_reference): Handle omp statements.
19038         (convert_local_reference): Likewise.
19039         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
19040         (unnest_nesting_tree): New.
19041         (lower_nested_functions): Call it.
19042         (insert_field_into_struct): Make extern.
19043         (struct walk_stmt_info): Move to tree-gimple.h.
19044         (walk_stmts): Make extern.
19045         * omp-builtins.def: New file.
19046         * tree-iterator.c (expr_only): Clarify comment.
19047         * c-common.h (pushdecl_top_level, pushdecl,
19048         build_modify_expr, build_indirect_ref,
19049         c_finish_omp_master, c_finish_omp_critical,
19050         c_finish_omp_ordered, c_finish_omp_barrier,
19051         c_finish_omp_atomic, c_finish_omp_flush,
19052         c_finish_omp_for, c_split_parallel_clauses,
19053         omp_clause_default_kind, c_omp_sharing_predetermined,
19054         c_omp_remap_decl): Declare.
19055         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
19056         (OBJS-common): Add omp-low.o.
19057         (c-omp.o, omp-low.o): Add.
19058         (gimplify.o): Add dependency on $(OPTABS_H).
19059         (GTFILES): Add omp-low.c.
19060         (gt-stringpool.h): Add.
19061         * tree-cfg.c (set_bb_for_stmt): Do not update the
19062         block-to-labels map if we are currently expanding to RTL.
19063         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
19064         checks.
19065         Handle IDENTIFIER_NODE.
19066         (tree_verify_flow_info): Do not ICE when emitting error
19067         messages about invalid labels.
19068         (dump_function_to_file): Reset CFUN before emitting the body
19069         of the function.
19070         (debug_function): New.
19071         * passes.c (init_optimization_passes): Schedule
19072         pass_lower_omp.
19073         * langhooks-def.h (lhd_omp_predetermined_sharing,
19074         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
19075         Declare.
19076         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
19077         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
19078         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
19079         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
19080         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
19081         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
19082         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
19083         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
19084         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
19085         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
19086         (LANG_HOOK_DECLS): Use them.
19087
19088 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
19089             Richard Henderson  <rth@redhat.com>
19090             Jakub Jelinek  <jakub@redhat.com>
19091             Diego Novillo  <dnovillo@redhat.com>
19092
19093         * c-parser.c (pragma_omp_clause): Define.
19094         (c_parser_declaration_or_fndef): Document OpenMP syntax.
19095         (c_parser_compound_statement): Likewise.
19096         (c_parser_statement): Likewise.
19097         (c_parser_pragma): Handle omp pragmas.
19098         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
19099         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
19100         (c_parser_omp_clause_name, check_no_duplicate_clause,
19101         c_parser_omp_variable_list,
19102         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
19103         c_parser_omp_clause_copyprivate,
19104         c_parser_omp_clause_default,
19105         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
19106         c_parser_omp_clause_lastprivate,
19107         c_parser_omp_clause_nowait,
19108         c_parser_omp_clause_num_threads,
19109         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
19110         c_parser_omp_clause_reduction,
19111         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
19112         c_parser_omp_all_clauses, c_parser_omp_structured_block,
19113         c_parser_omp_atomic, c_parser_omp_barrier,
19114         c_parser_omp_critical, c_parser_omp_flush,
19115         c_parser_omp_for_loop, c_parser_omp_for,
19116         c_parser_omp_master, c_parser_omp_ordered,
19117         c_parser_omp_sections_scope, c_parser_omp_sections,
19118         c_parser_omp_parallel, c_parser_omp_single,
19119         c_parser_omp_construct, c_parser_omp_threadprivate): New.
19120         * c-pragma.c (init_pragma): Do omp pragma registration here.
19121         * c.opt (fopenmp): New flag.
19122
19123 2006-01-18  Eric Christopher  <echristo@apple.com>
19124
19125         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
19126         * config/darwin.h (GOMP_SELF_SPECS): Define.
19127
19128 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
19129
19130         * rtl.h: Remove the prototype for reg_alloc.
19131
19132 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19133
19134         PR target/25731
19135         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
19136         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
19137         sjlj and dwarf2 exception handling.
19138         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
19139         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
19140         * pa/pa.c (function_value): Treat complex and vector types as
19141         aggregates.
19142         (function_arg): Likewise.  Only pass scalar floats in the floating
19143         point argument registers.
19144         * pa/t-slibgcc-dwarf-ver: New file.
19145         * pa/t-slibgcc-sjlj-ver: New file.
19146         * pa/t-slibgcc-elf-ver: Delete file.
19147
19148 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
19149
19150         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
19151         unlikely_test_section_p test.
19152
19153 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
19154
19155         * mode-switching.c (optimize_mode_switching): Make it static.
19156         * basic-block.h: Remove the prototype for
19157         optimize_mode_switching.
19158
19159         * modulo-sched.c (sms_schedule): Make it static.
19160         * rtl.h: Remove the prototype for sms_schedule.
19161
19162         * postreload-gcse.c (gcse_after_reload_main): Make it static.
19163         * rtl.h: Remove the prototype for gcse_after_reload_main.
19164
19165         * reg-stack.c (reg_to_stack): Make it static.
19166         * rtl.h: Remove the prototype for reg_to_stack.
19167
19168         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
19169         Make them static.
19170         * rtl.h: Remove the prototypes for regrename_optimize and
19171         copyprop_hardreg_forward.
19172
19173 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
19174
19175         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
19176         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
19177         Test against the appropriate null constant for the mode.
19178         If 'fixup_overlap' is true, swap the operands if they overlap.
19179         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
19180         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
19181         alpha_split_tmode_pair and adjust for above change.
19182         * config/alpha/alpha.md (movtf_internal): Adjust call to
19183         alpha_split_tfmode_pair and rely on it to swap the operands.
19184         (movti_internal): New insn and post-reload splitter.
19185         (movti): New expander.
19186
19187 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
19188
19189         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
19190         operands.
19191
19192 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
19193
19194         * rtlanal.c (global_reg_mentioned_p_1,
19195         global_reg_mentioned_p): Remove.
19196         * rtl.h: Remove the prototype for global_reg_mentioned_p.
19197
19198         * flow.c (initialize_uninitialized_subregs): Make it static.
19199         * rtl.h: Remove the prototype for
19200         initialize_uninitialized_subregs.
19201
19202         * function.c (instantiate_virtual_regs): Make it static.
19203         * function.h: Remove the prototype for
19204         instantiate_virtual_regs.
19205
19206         * regmove.c (regmove_optimize, combine_stack_adjustments):
19207         Make them static.
19208         * rtl.h: Remove the prototypes for regmove_optimize and
19209         combine_stack_adjustments.
19210
19211 2006-01-17  Roger Sayle  <roger@eyesopen.com>
19212
19213         * config/i386/i386.c (COSTS_N_BYTES): New macro.
19214         (size_cost): Encode costs in bytes so that a reg-reg addition is
19215         equivalent to COSTS_N_INSNS(1).
19216         (override_options): Use the size_cost.branch_cost as the default
19217         ix86_branch_cost when optimizing for size.
19218
19219 2006-01-18  Ben Elliston  <bje@au.ibm.com>
19220
19221         * Makefile.in (D32PBIT_FUNCS): New.
19222         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
19223         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
19224         D64PBIT_FUNCS and D128PBIT_FUNCS.
19225         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
19226         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
19227         D128PBIT are set.
19228         (decnumber_dep): Define.
19229         * doc/libgcc.texi (Decimal float library routines): New node.
19230         * config/dfp-bit.h, config/dfp-bit.c: New files.
19231
19232 2006-01-18  Ben Elliston  <bje@au.ibm.com>
19233
19234         * expr.c (emit_move_change_mode): Always adjust addresses, not
19235         just during reload.  Copy replacements only during reload.
19236         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
19237         emit_move_via_integer.
19238
19239 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
19240
19241         * Makefile.in (check-%, check-consistency): Use $${srcdir}
19242         instead of $(srcdir) and ${srcdir}.
19243
19244 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
19245
19246         PR target/592
19247         PR middle-end/11135
19248         * arm.h (struct machine_function): Add pic_reg.
19249         * arm.c (arm_pic_register): Make unsigned.
19250         (arm_override_options): Only set arm_pic_register if
19251         TARGET_SINGLE_PIC_BASE.
19252         (use_return_insn): Only test for a pic register if it is fixed.
19253         (arm_compute_save_reg0_reg12_mask): Likewise.
19254         (thumb_compute_save_reg_mask): Likewise.
19255         (legitimate_pic_operand): Factor out some known invariants.
19256         (legitimize_pic_address): If we don't have a fixed pic register,
19257         then set up a pseudo in the function entry sequence.  Handle the
19258         pic base being in a pseudo.
19259         (arm_load_pic_register): Handle the pic register being in a pseudo.
19260         (arm_expand_prologue): Only set up the pic register if it is fixed.
19261         (thumb_expand_prologue): Likewise.
19262         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
19263         (pic_load_addr_based_insn): Likewise.
19264         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
19265         fixed.
19266
19267 2006-01-18  Ben Elliston  <bje@au.ibm.com>
19268
19269         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
19270         decimal float modes for all floating point registers.
19271
19272         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
19273         match_code "mem" with match_test "macho_lo_sum_memory_operand".
19274
19275 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
19276
19277         PR c/25682
19278         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
19279         even when the pointer is not NULL.
19280
19281 2006-01-16  Ian Lance Taylor  <ian@airs.com>
19282
19283         * common.opt (ftoplevel-reorder): New option.
19284         * cgraph.c (cgraph_asm_nodes): New global variable.
19285         (cgraph_asm_last_node): New static variable.
19286         (cgraph_order): New global variable.
19287         (cgraph_create_node): Set new order field.
19288         (cgraph_varpool_node): Likewise.
19289         (decide_is_variable_needed): Return true if not
19290         flag_toplevel_reorder.
19291         (cgraph_add_asm_node): New function.
19292         * cgraph.h (struct cgraph_node): Add order field.
19293         (struct cgraph_varpool_node): Add order field.
19294         (struct cgraph_asm_node): Define.
19295         (cgraph_asm_nodes, cgraph_order): Declare.
19296         (cgraph_add_asm_node): Declare.
19297         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
19298         function.
19299         (cgraph_varpool_assemble_pending_decls): Call it.
19300         (cgraph_output_pending_asms): New static function.
19301         (cgraph_finalize_compilation_unit): Call it.
19302         (struct cgraph_order_sort): Define.
19303         (cgraph_output_in_order): New static function.
19304         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
19305         !flag_toplevel_reorder case.
19306         * c-parser.c: Include "cgraph.h".
19307         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
19308         assemble_asm.
19309         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
19310         than -fno-unit-at-a-time.
19311         * doc/invoke.texi (Option Summary): Mention
19312         -fno-toplevel-reorder.
19313         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
19314         -funit-at-a-time documentation.
19315
19316 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
19317             Kazu Hirata  <kazu@codesourcery.com>
19318
19319         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
19320
19321 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
19322
19323         * Makefile.in (FUNCTION_H): New.  Use it instead of
19324         function.h throughout the file.
19325         * function.h: Include tree.h.
19326
19327 2006-01-17  Ben Elliston  <bje@au.ibm.com>
19328
19329         * recog.c: Separate some functions with whitespace.
19330
19331 2006-01-16  Richard Henderson  <rth@redhat.com>
19332
19333         Merge from gomp branch:
19334         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
19335         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
19336         and rename from struct inline_data.  Rename callee* to dst*;
19337         caller* to src*; add copy_decl hook, transform_call_graph_edges,
19338         transform_new_cfg, transform_return_to_modify, and
19339         transform_lang_insert_block flags; remove cloning_p, versioning_p,
19340         update_clones_p.
19341         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
19342         (copy_decl_for_dup): Remove.
19343         * tree-inline.c (struct inline_data): Move to header.
19344         (insert_decl_map): Export.
19345         (remap_decl): Update for member name changes.  Use copy_decl hook.
19346         Allow for replacement to be a non-decl.  Remove dead code.
19347         (remap_type_1): Check for existing mapping.
19348         (remap_type): Export.
19349         (remap_decls): Update for member name changes.
19350         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
19351         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
19352         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
19353         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
19354         (tree_function_versioning, build_duplicate_type): Likewise.
19355         (copy_body_r): Likewise.  Export.
19356         (copy_decl_for_dup): Split into ...
19357         (copy_decl_for_dup_finish, copy_decl_to_var,
19358         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
19359         (replace_ref_tree, inlining_p): Remove.
19360
19361 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
19362
19363         * ifcvt.c (if_convert): Make it static.
19364         * rtl.h: Remove the prototype for if_convert.
19365
19366         * local-alloc.c (local_alloc): Make it static.
19367         * rtl.h: Remove the prototype for local_alloc.
19368
19369         * loop.c (loop_optimize): Make it static.
19370         * cfgloop.h: Remove the prototype for loop_optimize.
19371         * rtl.h: Likewise.
19372
19373 2006-01-16  DJ Delorie  <dj@redhat.com>
19374
19375         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
19376         mems.
19377
19378 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19379
19380         * pa.md: Disparage copies between general and floating-point registers
19381         in 32-bit move patterns.
19382
19383 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
19384
19385         PR testsuite/25741
19386         * Makefile.in (check-%): Depend on site.exp instead of
19387         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
19388         directories.
19389
19390 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
19391
19392         * global.c (global_alloc): Make it static.
19393         * rtl.h: Remove the prototype for global_alloc.
19394
19395 2006-01-16  Richard Guenther  <rguenther@suse.de>
19396
19397         * tree-ssa-alias.c (struct used_part): Add write_only field.
19398         (get_or_create_used_part_for): Initialize it to true.
19399         (create_overlap_variables_for): Don't create structure variables
19400         for structures that only are written to.
19401         (find_used_portions): Handle MODIFY_EXPR to track whether a
19402         structure is only written to.
19403
19404 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
19405
19406         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
19407         static.
19408         * basic-block.h: Remove the prototype for
19409         partition_hot_cold_basic_blocks.
19410
19411 2006-01-16  Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
19412
19413         * cppspec.c (lang_specific_spec_functions): Remove.
19414         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
19415         * gcc.h (lang_specific_spec_functions): Remove.
19416         * gccspec.c (lang_specific_spec_functions): Remove.
19417
19418 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
19419
19420         * combine.c (record_value_for_reg): Invalidate registers
19421         if INSN is null.
19422         (record_dead_and_set_regs_1): Likewise, by passing them to
19423         record_value_for_reg.
19424         (record_dead_and_set_regs): Invalidate stores made by a
19425         call.  We do not combine across a call, but we still
19426         relied on equivalences.
19427
19428 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
19429
19430         * tree-vrp.c (extract_range_from_binary_expr): Cope with
19431         vrp_int_const_binop returning non-constant nodes.
19432
19433 2006-01-16  Paul Brook  <paul@codesourcery.com>
19434
19435         * config/m68k/m68k.c (output_move_const_into_data_reg):
19436         Output correct mnemonic for mvz and mvs.
19437
19438 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
19439
19440         * rtl-factoring.c: Add sequence abstraction algorithm.
19441         * cfgcleanup.c (outgoing_edges_match): Extra checks.
19442         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
19443         ABNORMAL edges.
19444         (block_has_preserve_label): New function.
19445         * common.opt: Register new pass.
19446         * Makefile.in: Ditto.
19447         * passes.c: Ditto.
19448         * timevar.def: Ditto.
19449         * tree-pass.h: Ditto.
19450         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
19451         * rtl.h (make_jump_insn_raw): Add forward decl.
19452         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
19453
19454 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
19455             Roger Sayle  <roger@eyesopen.com>
19456
19457         * fold-const.c (fold_minmax): New static function.
19458         (fold_binary) <MIN_EXPR>: Call it.
19459         <MAX_EXPR>: Likewise.
19460         * stor-layout.c (place_field): Use DECL_SIZE consistently
19461         in the computation of the new record size.
19462
19463 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
19464
19465         * cse.c (cse_condition_code_reg): Make it static.
19466         * rtl.h: Remove the prototype for cse_condition_code_reg.
19467
19468         * combine.c (combine_instructions): Make it static.
19469         * rtl.h: Remove the prototype for combine_instructions.
19470
19471 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19472
19473         PR target/25168
19474         * tree.c (get_file_function_name_long): Concatenate the first global
19475         object name with a string derived from the input filename of the object
19476         for type "F".
19477
19478 2006-01-16  Ben Elliston  <bje@au.ibm.com>
19479
19480         * config/i386/winnt-stubs.c: Update FSF address.
19481         * config/xtensa/ieee754-df.S: Ditto.
19482         * config/xtensa/ieee754-sf.S: Ditto.
19483
19484 2006-01-14  Ian Lance Taylor  <ian@airs.com>
19485
19486         * ifcvt.c (noce_init_if_info): New static function, broken out of
19487         noce_process_if_block.
19488         (noce_process_if_block): Call noce_init_if_info.
19489         (check_cond_move_block): New static function.
19490         (cond_move_process_if_block): New static function.
19491         (process_if_block): Call cond_move_process_if_block.
19492
19493 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
19494
19495         * cselib.c (hash_table): Rename to cselib_hash_table.
19496         (cselib_clear_table, discard_useless_values,
19497         remove_useless_values, cselib_lookup_mem, cselib_lookup,
19498         cselib_init, cselib_finish): Adjust uses of hash_table.
19499
19500 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
19501
19502         PR tree-optimization/25485
19503         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
19504         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
19505         is known to be false and true, respectively.
19506
19507 2006-01-14  Richard Guenther  <rguenther@suse.de>
19508
19509         PR tree-optimization/22548
19510         PR tree-optimization/22555
19511         PR tree-optimization/22501
19512         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
19513         * params.def (salias-max-array-elements): New parameter.
19514         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
19515         * doc/invoke.texi (salias-max-array-elements): Document.
19516         * tree-flow-inline.h (var_can_have_subvars): We also handle
19517         arrays now.
19518         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
19519         COMPONENT_REF.
19520         * tree-ssa-structalias.c (params.h): Include.
19521         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
19522         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
19523         (get_constraint_for): For ADDR_EXPR operating on something
19524         containing an ARRAY_REF, add all subvars to the solution.
19525         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
19526         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
19527         for creating MUST_DEFs.
19528         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
19529
19530 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
19531
19532         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
19533         functions.
19534         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
19535         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
19536         number_of_iterations_le): New functions.
19537         (number_of_iterations_special): Removed.
19538         (number_of_iterations_exit): Do not use number_of_iterations_special.
19539         * tree.c (unsigned_type_for): Always return integer type.
19540
19541 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
19542         Richard Guenther  <rguenther@suse.de>
19543
19544         PR rtl-optimization/24257
19545         * gcse.c (find_moveable_store): Only consider a store movable
19546         when the SET_SRC of the insn can be assigned to a register.
19547
19548 2006-01-14  Ian Lance Taylor  <ian@airs.com>
19549
19550         * tree.c (tree_not_class_check_failed): New function.
19551         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
19552         (tree_not_class_check_failed): Declare.
19553
19554 2006-01-13  Ian Lance Taylor  <ian@airs.com>
19555
19556         * reload1.c (do_output_reload): Add assertion rejecting a
19557         CALL_INSN.
19558
19559 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
19560
19561         * combine.c (struct reg_stat): Add new fields truncation_label and
19562         truncated_to_mode.
19563         (record_value_for_reg): Reset truncated_to_mode.
19564         (record_truncated_value): New function.
19565         (check_promoted_subreg): Call it.  Rename to check_conversions.
19566         (combine_instructions): Rename check_promoted_subreg to
19567         check_conversions.
19568         (reg_truncated_to_mode): New function.
19569         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
19570         (gen_lowpart_or_truncate): New function.
19571         (force_to_mode): Use it instead of gen_lowpart.
19572
19573 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
19574
19575         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
19576         VAR is a tag, not its type tag.
19577
19578 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
19579
19580         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
19581         alternatives to match style of other entries.
19582         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
19583
19584 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
19585
19586         PR tree-optimization/25771
19587         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
19588         SSA_NAMES.
19589
19590 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
19591
19592         PR tree-opt/24365
19593         * tree-inline.c (declare_return_variable): If the return variable
19594         was marked as a non gimple complex, set the return slot variable
19595         to be a non gimple comple variable.
19596
19597 2006-01-13  Richard Guenther  <rguenther@suse.de>
19598
19599         * builtins.c (expand_builtin_sincos): New function.
19600         (expand_builtin_mathfn_3): Remove dead code, sin and cos
19601         do not set errno.
19602         (expand_builtin): Expand sincos using expand_builtin_sincos.
19603
19604 2006-01-12  DJ Delorie  <dj@redhat.com>
19605
19606         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
19607         shift counts, separate SI shifts for m32c vs m16c, pass shift type
19608         so that constant shifts can be split.
19609         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
19610         (m32c_valid_pointer_mode): Make static.
19611         (shift_gen_func_for): New.
19612         (m32c_prepare_shift): Use it.  Split large const shifts into
19613         multiple shifts.
19614         * config/m32c/predicates.md (shiftcount_operand): Allow more
19615         general operands.
19616         (longshiftcount_operand): New.
19617         * doc/md.texi (Machine Constraints): Document In6.
19618
19619 2006-01-13  Ben Elliston  <bje@au.ibm.com>
19620
19621         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
19622         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
19623         documentation.
19624
19625 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
19626
19627         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
19628         to try to avoid clobbering pieces of structures when we know
19629         something about the whole structure.
19630         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
19631
19632 2006-01-13  Ben Elliston  <bje@au.ibm.com>
19633
19634         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
19635         return in memory, as this is no limitation is no longer present.
19636
19637 2006-01-12  DJ Delorie  <dj@redhat.com>
19638
19639         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
19640         mova with fb, and for fb+0 -> An.
19641
19642         * config/m32c/mov.md (peephole2): Fix enabling logic.
19643
19644         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
19645         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
19646         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
19647         FINI_ARRAY_SECTION_ASM_OP): Define.
19648
19649         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
19650         variable.
19651         (m32c_legitimize_reload_address): New logic to reload FB to An.
19652         (m32c_output_reg_push): Add newline.
19653         (m32c_output_reg_pop): Likewise.
19654
19655 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
19656
19657         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
19658
19659 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
19660
19661         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
19662
19663 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
19664
19665         * config/sh/predicates.md (sh_rep_vec): Add parallel to
19666         match_code.
19667
19668 2006-01-11  Ben Elliston  <bje@au.ibm.com>
19669
19670         * rtlanal.c (find_reg_note): Assert insn is not null.
19671
19672 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
19673
19674         * df-scan.c (df_hard_reg_init): Move declaration of i outside
19675         ifdef.
19676
19677 2006-01-11  Jeff Law  <law@redhat.com>
19678
19679         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
19680         hold edge pairs.
19681         (mark_threaded_blocks, register_jump_thread): New functions.
19682         (thread_through_all_blocks): Remove unwanted argument.  No
19683         longer rely on e->aux to communicate thread target info.
19684         Call mark_threaded_blocks.  Release the threaded_blocks
19685         bitmap and threaded_edges vector when complete.
19686         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
19687         (threaded_blocks): Remove.
19688         (tree_ssa_dominator_optimize): Remove initialization and
19689         finalization of threaded_blocks.  Simplify call to
19690         thread_through_all_blocks.
19691         (thread_across_edge): Call register_jump_thread rather than
19692         storing thread information into e->aux.
19693         (free_all_edge_infos): Simplify now that e->aux is no longer
19694         used to communicate with thread_through_all_blocks.
19695         * tree-flow.h (thread_through_all_blocks): Update prototype.
19696         (register_jump_thread): Prototype.
19697
19698 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
19699
19700         * df-core.c (df_compact_blocks, df_bb_replace): Use
19701         SET_BASIC_BLOCK instead of BASIC_BLOCK.
19702
19703 2006-01-11  Richard Guenther  <rguenther@suse.de>
19704
19705         PR tree-optimization/25734
19706         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
19707         stop propagation after successful propagation to the LHS.
19708
19709 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
19710
19711         * basic-block.h (control_flow_graph): Change the type of
19712         x_basic_block_info to VEC(basic_block,gc) *.
19713         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
19714         basic_block_info.
19715         (SET_BASIC_BLOCK): New.
19716         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
19717         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
19718         * cfgbuild.c (find_basic_blocks): Likewise.
19719         * cfglayout.c (fixup_reorder_chain): Likewise.
19720         * cfgrtl.c (create_basic_block_structure,
19721         rtl_create_basic_block): Likewise.
19722         * ifcvt.c (find_if_case_1): Likewise.
19723         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
19724         Likewise.
19725
19726 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
19727
19728         * Makefile.in: Removed rotted odf.c entry.
19729
19730 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
19731
19732         PR target/25706
19733         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
19734         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
19735         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
19736         output pattern modifier, not %e.
19737         * config/cris/cris.c (cris_op_str): Update comment about pattern
19738         modifier.
19739         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
19740         before falling through into...
19741         <case 'E'>: Redefined from old 'e' case.
19742
19743 2006-01-11  Jan Hubicka  <jh@suse.cz>
19744
19745         PR target/25042
19746         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
19747
19748 2006-01-11  Jan Hubicka  <jh@suse.cz>
19749
19750         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
19751         * i386.c (x86_decompose_lea): Kill.
19752         (ix86_rtx_costs): Kill.
19753
19754 2006-01-11  Jan Hubicka  <jh@suse.cz>
19755
19756         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
19757         * cgraph.h (cgraph_node): Add inline_decl.
19758         (cgraph_insert_node_to_hashtable): Declare.
19759         (save_inline_function_body): Declare.
19760         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
19761         clones.
19762         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
19763         (cgraph_function_versioning): Update call of tree_function_versioning.
19764         (save_inline_function_body): New function.
19765         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
19766         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
19767         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
19768         (cgraph_default_inline_p): Likewise.
19769         (cgraph_decide_inlining_incrementally): Likewise.
19770         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
19771         (copy_bb): Kill saving; do updating of clones.
19772         (copy_cfg_body): Kill saving.
19773         (initialize_inlined-parameters): Likewise.
19774         (expand_call_inline): Likewise.
19775         (save_body): Kill.
19776         (tree_function_versioning): New parameter "update_clones".
19777         (inlining_p): Kill saving.
19778         * tree-inline.h (tree_function_versioning): Update prototype.
19779         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
19780         saving.
19781
19782 2006-01-11  Ian Lance Taylor <ian@airs.com>
19783
19784         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
19785         Allow undoing set of machine mode.
19786         (do_SUBST): Use enums instead of is_int.
19787         (do_SUBST_MODE): New function.
19788         (SUBST_MODE): New macro.
19789         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
19790         reg and trying to replace reg_regno_rtx with a new register.
19791         (undo_all): Use new enums, handle undoing a PUT_MODE change.
19792         (simplify_set): Use SUBST_MODE.
19793         (distribute_notes): Remove code that tried to update reg notes
19794         for regno_reg_rtx changes.
19795
19796 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
19797
19798         PR tree-optimization/23109
19799         PR tree-optimization/23948
19800         PR tree-optimization/24123
19801
19802         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
19803         * tree-cfg.c (single_noncomplex_succ): New.
19804         * tree-flow.h (single_noncomplex_succ): Declare it.
19805         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
19806         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
19807         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
19808         insert_bb, register_division_in, insert_reciprocals,
19809         replace_reciprocal, free_bb): New.
19810         (execute_cse_reciprocals_1): Rewritten.
19811         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
19812         Do not commit any edge insertion.  Always compute dominators and
19813         create the allocation pool.
19814         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
19815         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
19816         * targhooks.c (default_min_divistions_for_recip_mul): New.
19817         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
19818         * passes.c (init_optimization_passes): Run recip after tree loop
19819         optimizations.
19820         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
19821
19822 2006-01-11  Danny Berlin <dberlin@dberlin.org>
19823             Kenneth Zadeck <zadeck@naturalbridge.com>
19824
19825         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
19826         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
19827         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
19828         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
19829         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
19830         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
19831         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
19832         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
19833         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
19834         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
19835         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
19836         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
19837         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
19838         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
19839         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
19840         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
19841         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
19842         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
19843         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
19844         DF_SCAN_POST_ALLOC): New macros.
19845         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
19846         df_free_bb_function, df_local_compute_function, df_init_function,
19847         df_dataflow_function, df_confluence_function_0,
19848         df_confluence_function_n, df_transfer_function,
19849         df_finalizer_function, df_free_function, df_dump_problem_function,
19850         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
19851         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
19852         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
19853         df_urec_bb_info, ) New types.
19854         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
19855         variables.
19856         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
19857         df_analyze_simple_change_some_blocks,
19858         df_analyze_simple_change_one_block, df_compact_blocks,
19859         df_bb_replace, df_bb_regno_last_use_find,
19860         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
19861         df_insn_regno_def_p, df_find_def, df_find_use,
19862         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
19863         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
19864         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
19865         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
19866         debug_df_chain, df_get_dependent_problem, df_chain_create,
19867         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
19868         df_grow_bb_info, df_chain_dump, df_print_bb_index,
19869         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
19870         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
19871         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
19872         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
19873         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
19874         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
19875         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
19876         df_ref_remove, df_insn_refs_delete, df_refs_delete,
19877         df_reorganize_refs, df_set_state, df_hard_reg_init,
19878         df_read_modify_subreg_p) New public functions.
19879         * df-core.c: The core dataflow solver and glue routines for rtl
19880         dataflow.
19881         (df_init, df_add_problem, df_set_blocks, df_finish,
19882         df_hybrid_search_forward, df_hybrid_search_backward,
19883         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
19884         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
19885         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
19886         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
19887         df_reg_defined, df_find_use, df_reg_used, df_dump,
19888         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
19889         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
19890         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
19891         debug_df_useno, reset_df_after_reload): New functions.
19892         * df-scan.c: The scanning fuctions, once in df.c, completely
19893         rewritten so that they now fully model the functionality of
19894         register usage at the backend.
19895         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
19896         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
19897         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
19898         df_grow_insn_info, df_rescan_blocks, df_ref_create,
19899         df_get_artificial_defs, df_get_artificial_uses,
19900         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
19901         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
19902         df_refs_delete, df_reorganize_refs, df_set_state,
19903         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
19904         df_def_record_1, df_defs_record, df_uses_record,
19905         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
19906         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
19907         df_record_exit_block_uses, df_hard_reg_init): New functions.
19908
19909         * df-problems.c: Seven concrete dataflow problems that use the
19910         scanning in df-scan.c and are solved by the engine in df-core.c.
19911         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
19912         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
19913         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
19914         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
19915         df_ru_free_bb_info, df_ru_alloc,
19916         df_ru_bb_local_compute_process_def,
19917         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
19918         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
19919         df_ru_transfer_function, df_ru_free, df_ru_dump,
19920         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
19921         df_rd_free_bb_info, df_rd_alloc,
19922         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
19923         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
19924         df_rd_transfer_function, df_rd_free, df_rd_dump,
19925         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
19926         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
19927         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
19928         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
19929         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
19930         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
19931         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
19932         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
19933         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
19934         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
19935         df_urec_mark_reg_change, df_urec_check_earlyclobber,
19936         df_urec_mark_reg_use_for_earlyclobber,
19937         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
19938         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
19939         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
19940         df_urec_dump, df_urec_add_problem, df_chain_alloc,
19941         df_chain_create_bb_process_use, df_chain_create_bb,
19942         df_chain_finalize, df_chain_free, df_chains_dump,
19943         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
19944         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
19945         df_reg_lifetime): New functions.
19946         * df.c: Deleted file.
19947         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
19948         consistent with new df api.
19949         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
19950         rest_of_handle_sms): Ditto.
19951         * web.c (unionfind_union, union_defs, entry_register, web_main):
19952         Ditto.
19953         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
19954         invariant_expr_equal_p, find_defs, check_dependencies,
19955         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
19956         free_inv_motion_data, move_loop_invariants): Ditto.
19957         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
19958         Update dependencies.
19959         (odf.c): Added defective entry that was deleted later in day.
19960         * sched-deps.c (sched_analyze_1): Ditto.
19961
19962 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
19963
19964         * tree-ssa-operands.c (get_expr_operands): Record addressable
19965         variables directly.  Do not call add_stmt_operands for CONST_DECLs
19966         and ARRAY_DECLs.
19967         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
19968         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
19969
19970 2006-01-11  Ben Elliston  <bje@au.ibm.com>
19971
19972         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
19973         function returns true in the positive case.
19974
19975 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19976
19977         PR target/20754
19978         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
19979         for SI, DI, SF and DF modes.  Add alternatives to copy between
19980         general and floating point registers to the 32-bit patterns.
19981         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
19982         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
19983         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
19984         generating 64-bit code.
19985         * config/pa/pa.c (output_move_double): Handle copies between general
19986         and floating registers.
19987
19988 2006-01-10  Stuart Hastings  <stuart@apple.com>
19989
19990         * config/i386/i386.md (set_got): Update.
19991         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
19992         (builtin_setjmp_receiver): Mach-O support.
19993         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
19994         (GOT_SYMBOL_NAME): Define.
19995         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
19996         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
19997         * config/i386/i386.c (override_options): Revise for Darwin.
19998         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
19999         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
20000         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
20001         * config/i386/i386-protos.h (output_set_got): Likewise.
20002         * config/darwin.c (machopic_legitimize_pic_address): Update
20003         regs_ever_live[].
20004
20005 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
20006
20007         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
20008         when MODE isn't BLKmode.
20009
20010 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
20011
20012         PR rtl-optimization/25367
20013         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
20014
20015 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
20016
20017         PR target/25718
20018         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
20019         for a negative bound.
20020
20021 2006-01-10  Richard Guenther  <rguenther@suse.de>
20022
20023         * tree-ssa-structalias.c (get_constraint_for_component_ref):
20024         Never override with anything constraint.
20025
20026 2006-01-10  Jan Beulich  <jbeulich@novell.com>
20027
20028         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
20029         256 bits when optimize_size.
20030
20031 2006-01-10  Jan Beulich  <jbeulich@novell.com>
20032
20033         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
20034         MASK_ALIGN_DOUBLE.
20035         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
20036         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
20037         arguments.
20038
20039 2006-01-10  Ben Elliston  <bje@au.ibm.com>
20040
20041         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
20042         float modes.
20043         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
20044         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
20045         (USE_FP_FOR_ARG): Reject decimal float modes.
20046         (function_arg_advance): Likewise.
20047         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
20048         (rs6000_handle_altivec_attribute): Do not permit decimal floating
20049         point types in AltiVec vectors.
20050         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
20051         (rs6000_libcall_value): Likewise.
20052
20053 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
20054
20055         * config/xtensa/ieee754-df.S: New file.
20056         * config/xtensa/ieee754-sf.S: New file.
20057         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
20058         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
20059         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
20060
20061 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
20062
20063         * config/sh/predicates.md (binary_float_operator,
20064         binary_logical_operator, commutative_float_operator,
20065         equality_comparison_operator, greater_comparison_operator,
20066         less_comparison_operator, logical_operator,
20067         noncommutative_float_operator, shift_operator,
20068         symbol_ref_operand, unary_float_operator): Remove redundant
20069         conditionals.
20070
20071 2006-01-09  Jeff Law  <law@redhat.com>
20072
20073         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
20074         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
20075         now unused arguments.  Callers updated.
20076         (eliminate_redundant_computations): Remove now unused arguments,
20077         callers updated.
20078         (local_fold): Remove, no longer used.
20079         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
20080         and moved to...
20081         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
20082         (simplify_cond): New function.
20083         (forward_propagate_into_cond): Call simplify_cond.
20084
20085 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
20086
20087         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
20088         (*vec_extractv2di_1_sse): New.
20089
20090 2006-01-09  Ben Elliston  <bje@au.ibm.com>
20091
20092         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
20093
20094 2006-01-08  Richard Guenther  <rguenther@suse.de>
20095
20096         * tree-ssa-structalias.c (get_constraint_for): Remove
20097         anyoffset argument.
20098         (get_constraint_for_component_ref): Likewise.
20099         (do_deref): Likewise.
20100         (get_constraint_for): Likewise.
20101         (do_structure_copy): Likewise.
20102         (handle_ptr_arith): Likewise.
20103         (find_func_aliases): Likewise.  Remove unused need_anyoffset
20104         variable.
20105
20106 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
20107             Kaz Kojima  <kkojima@gcc.gnu.org>
20108
20109         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
20110         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
20111         (EXTRA_CONSTRAINT_C16): Remove.
20112         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
20113         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
20114         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
20115         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
20116         constants of SHmedia.  Handle nested constant expressions of
20117         SHmedia correctly.
20118         (andcosts): Fix the costs for SHmedia constants.
20119         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
20120         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
20121         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
20122         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
20123         (movv4hi_i, movv2si_i): Likewise.
20124         (movsi_const): Adjust the second operand of ior so to match with
20125         the Csu constraint.
20126         (movdi_const, movdi_const_32bit): Likewise.
20127         (movdi_const_16bit+1): Don't sign-extend LOW.
20128         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
20129         step.
20130         (*double_shori): Fix the split condition.  Use GEN_INT instead
20131         of get_int_mode calls.  Mask lower 16-bit of the argument of
20132         the last GEN_INT.
20133         (sym2GOTPLT): Remove.
20134         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
20135         gen_rtx_UNSPEC.
20136         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
20137         instead of EXTRA_CONSTRAINT_C16.
20138
20139 2006-01-07  Ian Lance Taylor  <ian@airs.com>
20140             David Edelsohn  <edelsohn@gnu.org>
20141
20142         PR rtl-optimization/25662
20143         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
20144         for constant operands instead of simplify_gen_binary.
20145         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
20146         after trying simplify_binary_operation
20147
20148 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
20149
20150         * tree.c (iterative_hash_expr): Hash decls based on UID.
20151
20152 2006-01-06  Eric Christopher  <echristo@apple.com>
20153
20154         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
20155         (TARGET_UNWIND_EMIT): Fix spelling.
20156         * target.h (gcc_target): Add except_table_label.
20157         * except.c (output_function_exception_table): Use.
20158         * varasm.c (default_emit_except_table_label): New.
20159         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
20160         define.
20161         (asm_out): Add here.
20162         * output.h (default_emit_except_table_label): Prototype.
20163         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
20164         * config/darwin.c (darwin_emit_except_table_label): Define.
20165         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
20166
20167 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
20168
20169         PR tree-optimization/18527
20170         * tree-ssa-loop-niter.c (number_of_iterations_cond,
20171         number_of_iterations_special, number_of_iterations_exit):
20172         Move base and step of an iv to a single structure.  Add
20173         no_overflow flag, and use it in # of iterations analysis.
20174         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
20175         folded_casts argument.
20176         (simple_iv): Pass base and step in a structure.  Set no_overflow
20177         flag.
20178         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
20179         Evaluate expensiveness of computing # of iterations instead of
20180         the final expression.
20181         * tree-scalar-evolution.h (affine_iv): New structure.
20182         (simple_iv): Declaration changed.
20183         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
20184         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
20185         find_givs_in_stmt): Changed due to simple_iv change.
20186
20187 2006-01-06  Jeff Law  <law@redhat.com>
20188
20189         PR ada/24994
20190         * tree-cfg.c (bsi_replace): Rename final argument from
20191         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
20192         change (stmt -> orig_stmt).
20193         * tree-eh.c (verify_eh_throw_stmt_node): New function.
20194         (bsi_remove): Add new argument.  Remove EH information
20195         if requested.
20196         (verify_eh_throw_table_statements): New function.
20197         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
20198         updated.
20199         * tree-optimize.c (execute_free_cfg_annotations): Verify
20200         the EH throw statement table after removing annotations.
20201         * except.h (verify_eh_throw_table_statements): Prototype.
20202         * tree-flow.h (bsi_remove): Update prototype.
20203         * tree-vrp.c (remove_range_assertions): Add new argument to
20204         bsi_remove call.
20205         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
20206         * tree-complex.c (expand_complex_div_wide): Likewise.
20207         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
20208         * tree-tailcall.c (eliminate_tailcall): Likewise.
20209         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
20210         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
20211         * tree-nrv.c (tree_nrv): Likewise.
20212         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
20213         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
20214         (combine_blocks): Likewise.
20215         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
20216         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
20217         (cleanup_control_flow): Likewise.
20218         (remove_forwarder_block): Likewise.
20219         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
20220         * tree-sra.c (sra_replace): Likewise.
20221         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
20222         (forward_propagate_single_use_vars): Likewise.
20223         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
20224         * tree-inline.c (expand_call_inline): Likewise.
20225         * tree-vect-transform.c (vect_transform_loop): Likewise.
20226         * tree-outof-ssa.c (rewrite_trees): Likewise.
20227         * tree-cfg.c (make_goto_expr_edges): Likewise.
20228         (cleanup_dead_labels): Likewise.
20229         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
20230         (bsi_move_before, bsi_move_after): Likewise.
20231         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
20232         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
20233
20234 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
20235
20236         PR tree-opt/25528
20237         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
20238         and IMAGPART_EXPR.
20239         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
20240         on non gimple variables.  Also add checks at the top for decls and
20241         mtags.
20242         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
20243         complex types.
20244         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
20245         and IMAGPART_EXPR for creating MUST_DEFs.
20246         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
20247         and NAME_MEMORY_TAG separately from the DECLs.
20248
20249 2006-01-06  Richard Guenther  <rguenther@suse.de>
20250
20251         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
20252         annotation, if necessary.
20253         * tree-ssa-pre.c (create_expression_by_pieces): Remove
20254         redundant calls to update_stmt.
20255         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
20256         Likewise.
20257
20258 2006-01-05  Richard Henderson  <rth@redhat.com>
20259
20260         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
20261
20262 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
20263
20264         * c-typeck.c: Update copyright date.
20265
20266 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
20267
20268         * c-typeck.c (build_c_cast): Always warn when casting
20269         from a pointer to an integer of different size, even if
20270         the node was constant.
20271
20272 2006-01-05  Richard Guenther  <rguenther@suse.de>
20273
20274         PR tree-optimization/22555
20275         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
20276         if one structure field is an array.
20277         * tree-ssa-operands.c (get_expr_operands): Continue scanning
20278         operands even if we found a subvar, but ignore VOPs in this
20279         case.
20280         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
20281         for renaming.
20282         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
20283
20284 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
20285
20286         PR middle-end/24998
20287         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
20288
20289 2006-01-05  Richard Guenther  <rguenther@suse.de>
20290             Diego Novillo  <dnovillo@redhat.com>
20291
20292         * tree-pass.h (TODO_remove_unused_locals): Define.
20293         * gimple-low.c (expand_var_p, remove_useless_vars,
20294         pass_remove_useless_vars): Remove.  Update all users.
20295         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
20296         (remove_unused_locals): New function.
20297         * tree-flow.h (remove_unused_locals): Declare.
20298         * passes.c (execute_todo): Call remove_unused_locals if
20299         TODO_remove_unused_locals is set.
20300         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
20301         * tree-ssa-dce.c (pass_dce): Likewise.
20302         * tree-outof-ssa.c (pass_del_ssa): Likewise.
20303
20304 2006-01-05  Richard Guenther  <rguenther@suse.de>
20305
20306         * tree-flow.h (struct fieldoff): Decompose field to
20307         type, size and decl.
20308         * tree-ssa-alias.c (create_sft): Take type as parameter.
20309         (create_overlap_variables_for): Store type, size and decl
20310         in the fieldoff structure.
20311         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
20312         of struct fieldoff.
20313         (push_fields_onto_fieldstack): Likewise.
20314         (create_variable_info_for): Likewise.  Use offset for the
20315         SFT name if the decl is not available.
20316
20317 2006-01-04  Paul Brook  <paul@codesourcery.com>
20318
20319         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
20320
20321 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
20322
20323         * lambda-code.c (can_put_in_inner_loop): Relax
20324         restrictions.
20325         (can_put_after_inner_loop): New function.
20326         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
20327         (perfect_nestify): Change to make copies and modify uses.
20328
20329 2006-01-04  Richard Henderson  <rth@redhat.com>
20330
20331         Merge from gomp branch:
20332         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
20333         via integer constant.
20334         (pragma_lex): Remove.
20335         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
20336         rather than parsing it.
20337         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
20338         handle_pragma_extern_prefix): Add %< %> quotes.
20339         (registered_pragmas): New.
20340         (c_register_pragma_1): New.
20341         (c_register_pragma): Use it.
20342         (c_register_pragma_with_expansion): Likewise.
20343         (c_invoke_pragma_handler): New.
20344         (init_pragma): Use cpp_register_deferred_pragma directly for
20345         pch_preprocess.
20346         * c-pragma.h (enum pragma_kind): New.
20347         (pragma_handler): New.
20348         (c_invoke_pragma_handler): Declare.
20349         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
20350         CPP_PRAGMA_EOL.
20351         * c-common.h (c_common_pch_pragma): Update decl.
20352         * Makefile.in (c-parser.o): Update dependencies.
20353         (GTFILES): Add c-pragma.h.
20354         * c-parser.c (struct c_token): Add pragma_kind.
20355         (struct c_parser): Add in_pragma.
20356         (c_lex_one_token): Always initialize keyword and pragma_kind.
20357         Extract data for CPP_PRAGMA.
20358         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
20359         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
20360         Don't allow CPP_PRAGMA_EOL if in_pragma.
20361         (c_parser_consume_pragma): New.
20362         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
20363         (c_parser_skip_to_end_of_parameter): Likewise.
20364         (c_parser_skip_to_end_of_block_or_statement): Likewise.
20365         (c_parser_skip_to_pragma_eol): New.
20366         (c_parser_external_declaration): Handle CPP_PRAGMA.
20367         (c_parser_compound_statement_nostart): Likewise.
20368         (c_parser_statement_after_labels): Likewise.
20369         (c_parser_pragma): New.
20370         (pragma_lex): Likewise.
20371         (c_parser_pragma_pch_preprocess): New.
20372         (c_parser_new): Merge into ...
20373         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
20374
20375 2006-01-04  Jeff Law  <law@redhat.com>
20376
20377         PR ada/24994
20378         * tree-cfg.c (bsi_replace): Remove the original statement
20379         from the EH throw statement table.
20380
20381 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
20382
20383         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
20384         make the prototype extern "C" and add throw ().
20385
20386         PR target/25554
20387         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
20388         and pos non-negative and pos + len <= 32.
20389         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
20390         drop pos + len < HOST_BITS_PER_WIDE_INT test.
20391         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
20392
20393         PR c/25559
20394         * c-common.c (handle_vector_size_attribute): Reject zero vector size
20395         as well as sizes not multiple of component size.
20396
20397         PR debug/25562
20398         * function.c (instantiate_expr): New function.
20399         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
20400         walk its DECL_VALUE_EXPR with instantiate_expr.
20401
20402         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
20403         DW_OP_deref{,_size} if address isn't going to be added.
20404
20405 2006-01-04  Ben Elliston  <bje@au.ibm.com>
20406
20407         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
20408         * config/fp-bit.c: Likewise.
20409
20410 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
20411
20412         * dominance.c: Add comment about why we use DFS numbering
20413         of dominance tree.
20414
20415 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
20416             Richard Henderson  <rth@redhat.com>
20417
20418         Merge from gomp-branch:
20419         * varasm.c (assemble_variable): Handle thread-local COMMON data.
20420         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
20421
20422 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
20423
20424         PR rtl-optimization/25578
20425         * combine.c (combine_simplify_rtx, force_to_mode): Don't
20426         pass a parameter to simplify_shift_const if changing ASHIFTRT
20427         to LSHIFTRT.
20428
20429 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
20430
20431         * builtins.c (get_builtin_sync_mem): New function.
20432         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
20433         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
20434         Call get_builtin_sync_mem to generate mem rtx.
20435
20436 2006-01-03  Richard Guenther  <rguenther@suse.de>
20437
20438         PR c/25183
20439         * stmt.c (add_case_node): Make sure to clear overflow flags
20440         from ranges.
20441
20442 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
20443
20444         Merge from gomp-branch.
20445         * config/sparc/sync.md: New file.
20446         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
20447         UNSPECV_LDSTUB): New constants.
20448         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
20449         * config/sparc/predicates.md (memory_reg_operand): New predicate.
20450         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
20451         prototype.
20452
20453 2006-01-03  Roger Sayle  <roger@eyesopen.com>
20454
20455         * combine.c (reg_subword_p): New predicate to test whether the
20456         destination of a set refers to a subword/piece of a register.
20457         (try_combine): Generalize the code to merge the setting of a
20458         pseudo to a constant followed by a set of a subword of that
20459         register to a constant.
20460
20461 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
20462
20463         * basic-block.h (control_flow_graph): Change the type of
20464         x_label_to_block_map to VEC(basic_block,gc) *.
20465         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
20466         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
20467
20468         * tree-ssa-propagate.c (cfg_blocks): Change the type to
20469         VEC(basic_block,heap) *.
20470         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
20471         ssa_prop_fini): Adjust the uses of cfg_blocks.
20472
20473 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
20474
20475         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
20476         COMPONENT_REFs.
20477         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
20478         hashing trees instead of a pointer hash.
20479         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
20480         compare for MEM_EXPR.
20481
20482         PR rtl-optimization/25130
20483         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
20484         when comparing MEMs for GCSE
20485
20486 2006-01-03  Ben Elliston  <bje@au.ibm.com>
20487
20488         * targhooks.h (default_decimal_float_supported_p): Declare.
20489         * targhooks.c (default_decimal_float_supported_p): Define.
20490         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
20491         `default_decimal_float_supported_p'.
20492         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
20493
20494 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
20495
20496         * combine.c (apply_distributive_law <SUBREG>): Check
20497         TRULY_NOOP_TRUNCATION.
20498
20499 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
20500
20501         * dwarf2out.c (have_switched_text_section): Delete.
20502         (have_multiple_function_sections): New.
20503         (have_location_lists): Make 'bool'.
20504         (add_AT_loc_list): Use 'true' not '1'.
20505         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
20506         (output_loc_list): Use have_multiple_function_sections.
20507         (output_ranges): Likewise.
20508         (dwarf2out_begin_function): Set have_multiple_function_sections if
20509         necessary.
20510         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
20511         Check function_section rather than DECL_SECTION_NAME.
20512         (dwarf2out_finish): Use have_multiple_function_sections.
20513         Don't clear have_location_lists.
20514
20515 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
20516             Jan Hubicka  <jh@suse.cz>
20517
20518         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
20519         case of conditional jump jumping to the next instruction.
20520         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
20521         cases of conditional jump jumping to the next instruction.
20522
20523 2006-01-02  Jan Hubicka  <jh@suse.cz>
20524
20525         * i386.c (*_cost): Add COSTS_N_INSNS.
20526         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
20527
20528 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
20529
20530         PR target/25259
20531         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
20532
20533 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
20534
20535         * config/arm/arm.c (all_fpus): Fix comment typo.
20536         * config/darwin.c: Likewise.
20537         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
20538         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
20539         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
20540
20541 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
20542
20543         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
20544         (rs6000_split_compare_and_swapqhi): New.
20545         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
20546         (sync_compare_and_swapqhi_internal): New.
20547         * config/rs6000/rs6000-protos.h: Declare.