OSDN Git Service

* builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2
3         * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
4         * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
5
6 2007-08-29  Douglas Gregor  <doug.gregor@gmail.com>
7
8         PR c++/33194
9         * tree.c (build_type_attribute_qual_variant): Set canonical types
10         on the final, unqualified attribute variant before building the
11         qualified version.
12
13 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
14
15         * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
16         order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
17
18 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
19
20         Revert
21         2007-08-29  Jie Zhang  <jie.zhang@analog.com>
22         * config/bfin/bfin.md (composev2hi): Put operands into vector
23         with correct order.
24
25 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
26
27         * config/bfin/bfin.md (composev2hi): Put operands into vector
28         with correct order.
29
30 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
31
32         * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
33         attribute when appropriate.
34         (bfin_handle_l1_text_attribute): New.
35         (bfin_handle_l1_data_attribute): New.
36         (bfin_attribute_table): Add attributes: l1_text, l1_data,
37         l1_data_A and l1_data_B.
38         * doc/extend.texi (node Function Attributes): Document l1_text
39         function attribute.
40         (Variable Attributes): Add Blackfin subsection. Document l1_data,
41         l1_data_A and l1_data_B variable attributes.
42
43 2007-08-28  Jie Zhang  <jie.zhang@analog.com>
44
45         * config/bfin/bfin.opt (minline-plt): Add.
46         * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
47         call to global functions.
48         * doc/invoke.texi (Option Summary): Mention -minline-plt.
49         (Blackfin Options): Document -minline-plt.
50
51 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
52
53         * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
54         given a non-function.
55         (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
56
57 2007-08-28  DJ Delorie  <dj@redhat.com>
58
59         * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
60
61 2007-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
62
63         * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
64
65 2007-08-28  Richard Guenther  <rguenther@suse.de>
66
67         * tree.h (struct tree_function_decl): Increase size of
68         function_code bitfield.
69
70 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
71             Kazu Hirata  <kazu@codesourcery.com>
72
73         * gcc/config/m68k/linux.h
74         (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
75         * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
76         (m68k_return_in_memory): New.
77         * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
78         New.
79
80 2007-08-28  Uros Bizjak  <ubizjak@gmail.com>
81
82         PR target/32661
83         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
84         Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
85         operand) when top VEC_SELECT extracts scalar element.
86         * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
87         (*vec_extract_v4sf_mem): Ditto.
88
89 2007-08-28  Jakub Jelinek  <jakub@redhat.com>
90
91         PR middle-end/32370
92         * passes.c (init_optimization_passes): Move pass_df_finish
93         after pass_postreload sublist.
94
95         PR rtl-optimization/33148
96         * simplify-rtx.c (simplify_unary_operation_1): Only optimize
97         (neg (lt X 0)) if X has scalar int mode.
98
99         PR debug/32914
100         * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
101         initializer, use build_vector_from_ctor if possible to create
102         VECTOR_CST out of it.  If vector initializer is not VECTOR_CST
103         even after this, return NULL.
104
105 2007-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
106
107         * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
108
109 2007-08-28  Richard Guenther  <rguenther@suse.de>
110
111         * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
112         (struct tree_function_decl): Make function_code a bitfield.
113         Add disregard_inline_limits flag.
114         * cgraphunit.c (cgraph_process_new_functions): Check
115         DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
116         (cgraph_preserve_function_body_p): Likewise.
117         * ipa-inline.c (compute_inline_parameters): Likewise.
118         * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
119         for GNU C extern inline functions.
120         (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
121         * tree-inline.c (disregard_inline_limits_p): Remove.
122         * tree-inline.h (disregard_inline_limits_p): Likewise.
123         * c-common.c (handle_always_inline_attribute): Set
124         DECL_DISREGARD_INLINE_LIMITS.
125         * langhooks.c (add_builtin_function): Verify the function code
126         fits in the bitfield.
127
128 2007-08-28  Mircea Namolaru  <namolaru@il.ibm.com>
129             Vladimir Yanovsky  <yanov@il.ibm.com>
130             Revital Eres  <eres@il.ibm.com>
131             Andrey Belevantsev  <abel@ispras.ru>
132
133         * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
134         is set.
135         * modulo-sched.c: Add documentation regarding do-loop.
136         (doloop_register_get): Change number of arguments to support
137         the new do-loop pattern and check whether COUNT_REG has no other
138         occurences in the loop besides in the control part.
139         (duplicate_insns_of_cycles): Do not duplicate the insn which
140         changes count_reg as it is already adjusted.
141         (generate_prolog_epilog): New argument to support the new
142         do-loop pattern.  Change the subtract instruction to use
143         expand_simple_binop.  Call duplicate_insns_of_cycles with new
144         argument.
145         (sms_schedule): Call doloop_register_get and
146         generate_prolog_epilog with new argument.  Do not handle loops
147         with single sets insns with subreg in their lhs.
148         * loop-doloop.c (doloop_optimize): Support for another do-loop
149         pattern.
150         (doloop_condition_get): Gets an instruction instead of a pattern
151         and change the return condition when the do-loop pattern is
152         not parallel.
153         * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
154         deps when considering to not create edges.
155
156 2007-08-27  Alexandre Oliva  <aoliva@redhat.com>
157
158         * doc/extend.texi (gnu_inline funtion attribute): Document C++
159         behavior.
160
161 2007-08-27  Jason Merrill  <jason@redhat.com>
162
163         PR c++/31337
164         * gimplify.c (gimplify_modify_expr): Discard the assignment of 
165         zero-sized types after calling gimplify_modify_expr_rhs.
166
167 2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
168
169         * regclass.c (init_reg_autoinc): Fix typo.
170
171 2007-08-27  Daniel Berlin  <dberlin@dberlin.org>
172         
173         Fix PR tree-optimization/33173
174         * tree-ssa-alias.c (find_used_portions): Fix reversed test.
175
176 2007-08-27  H.J. Lu  <hongjiu.lu@intel.com>
177
178         PR target/31385
179         * config/i386/i386.h (VALID_DFP_MODE_P): New.
180         * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
181         GPR.
182
183 2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
184             David Ung  <davidu@mips.com>
185             Nigel Stephens <nigel@mips.com>
186
187         Separate target-specific initialization from general
188         back-end initialization.
189
190         * toplev.c (init_alignments): New, split out from...
191         (process_options): ...here.
192         (backend_init_target):  New, split out from...
193         (backend_init): ...here.
194         (lang_dependent_init_target):  New, split out from...
195         (lang_dependent_init): ...here.
196         (target_reinit): New.
197         * toplev.h (target_reinit): Declare.
198         * expr.c (init_expr_target): Renamed from init_expr_once, since it
199         now can be called more than once.  Update comments.
200         * expr.h (init_expr_target): Likewise.
201         * alias.c (init_alias_target): Renamed from init_alias_once, since it
202         now can be called more than once.  Explicitly zero
203         static_reg_base_value.
204         * emit-rtl.c (init_emit_regs): New, split out from...
205         (init_emit_once): Here.
206         * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
207         non-const, so that changes from command-line arguments can overwrite
208         values provided by the static initializers.
209         (initial_call_really_used_regs): New, used similarly to the above.
210         (initial_reg_names): Likewise.
211         (last_mode_for_init_move_cost): Promoted function-local static to
212         file-scope static to make it accessible outside init_move_cost.
213         (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
214         Do not initialize inv_reg_alloc_order yet, either.  Do initialize
215         reg_names since it is needed for parsing command-line options.
216         (init_move_cost): Use last_mode_for_init_move_cost instead of
217         function-local static.
218         (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
219         call_really_used_regs now.  Reinitialize reg_names.  Also
220         initialize inv_reg_alloc_order.  Zero reg_class_subunion and
221         reg_class_superunion.  Clear losing_caller_save_reg_set.
222         Preserve global registers if called more than once.  Reset
223         move cost, may_move_in_cost, may_move_out_cost, and
224         last_mode_for_init_move_cost.
225         (init_reg_modes_target): Renamed from init_reg_modes_once, since it
226         can now be invoked more than once.  Update comments.
227         (init_regs): Update comments.
228         (fix_register): Update initial_fixed_regs, initial_call_used_regs,
229         and initial_call_really_used_regs, instead of the non-initial 
230         variables.  This allows us to save the command-line register settings
231         after target reinitialization.
232         (init_reg_autoinc): Zero forbidden_inc_dec_classes.
233         * rtl.h (init_emit_regs): Declare.
234         (init_reg_modes_target, init_alias_target): Renamed as described
235         above.
236         * reload1.c (init_reload): Update comments.
237         * optabs.c (init_optabs): Likewise.
238         * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
239         
240 2007-08-26  Chao-ying Fu  <fu@mips.com>
241
242         * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
243         __typeof().
244
245 2007-08-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
246
247         * alias.c (memory_modified_1, memory_modified_in_insn_p):
248         Constify.
249         * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
250         Likewise.
251         * bb-reorder.c (copy_bb_p): Likewise.
252         * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
253         predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
254         block_ends_with_condjump_p): Likewise.
255         * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
256         predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
257         block_ends_with_condjump_p): Likewise.
258         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
259         * cfgrtl.c (can_delete_note_p, can_delete_label_p,
260         rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
261         rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
262         need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
263         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
264         debug_true_const_tree instad of debug_true_tree.
265         * debug.c (do_nothing_debug_hooks): Likewise.
266         * debug.h (ignore_block, debug_true_const_tree): Constify.
267         * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
268         dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
269         decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
270         same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
271         dbx_reg_number, is_based_loc, field_type,
272         simple_type_align_in_bits, simple_decl_align_in_bits,
273         simple_type_size_in_bits, field_byte_offset, insert_float,
274         type_tag, member_declared_type, is_redundant_typedef,
275         secname_for_decl, is_inlined_entry_point): Likewise.
276         * emit-rtl.c (const_next_insn, const_previous_insn,
277         const_next_nonnote_insn, const_prev_nonnote_insn,
278         const_next_real_insn, const_prev_real_insn,
279         const_next_active_insn, const_prev_active_insn, const_next_label,
280         const_prev_label): Likewise.
281         * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
282         Likewise.
283         * haifa-sched.c (may_trap_exp, haifa_classify_insn,
284         find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
285         sched_insn_is_legitimate_for_speculation_p): Likewise.
286         * jump.c (reversed_comparison_code_parts,
287         reversed_comparison_code, reversed_comparison, condjump_label):
288         Likewise.
289         * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
290         * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
291         Likewise.
292         * rtl.h (const_previous_insn, const_next_insn,
293         const_prev_nonnote_insn, const_next_nonnote_insn,
294         const_prev_real_insn, const_next_real_insn,
295         const_prev_active_insn, const_next_active_insn, const_prev_label,
296         const_next_label, modified_between_p, modified_in_p,
297         const_note_storeskeep_with_call_p, condjump_label,
298         reversed_comparison, reversed_comparison_code,
299         reversed_comparison_code_parts, memory_modified_in_insn_p,
300         stack_regs_mentioned): Likewise.
301         * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
302         keep_with_call_p): Likewise.
303         * sched-deps.c (deps_may_trap_p, sched_get_condition,
304         conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
305         sd_lists_size, sd_lists_empty_p): Likewise.
306         * sched-int.h (sched_insns_conditions_mutex_p,
307         haifa_classify_insn, no_real_insns_p,
308         sched_insn_is_legitimate_for_speculation_p, sd_next_list,
309         sd_lists_size, sd_lists_empty_p): Likewise.
310         * sdbout.c (sdb_debug_hooks): Likewise.
311         * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
312         stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
313         -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
314         Likewise.
315         * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
316         tree_can_throw_internal): Likewise.
317         * tree-flow-inline.h (phi_nodes): Likewise.
318         * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
319         tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
320         * tree-gimple.c (const_get_call_expr_in): Likewise.
321         * tree-gimple.h (const_get_call_expr_in): Likewise.
322         * tree.c (const_lookup_attribute, attribute_list_equal,
323         attribute_list_contained): Likewise.
324         * tree.h (attribute_list_equal, attribute_list_contained,
325         const_lookup_attribute): Likewise.
326         * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
327
328 2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>
329
330         * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
331         tree-ssa-pre.c: Remove unnecessary trailing whitespace.
332
333 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
334
335         PR target/32991
336         * config/alpha/constraints.md: Delete "svn:mime-type" property
337         with svn propdel "svn:mime-type".
338
339 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
340
341         PR middle-end/33181
342         * ifcvt.c (noce_get_alt_condition): Make sure that the previous
343         non NOTE insn doesn't cross basic block.
344         (noce_try_abs): Likewise.
345         (noce_process_if_block): Likewise.
346
347 2007-08-26  David Edelsohn  <edelsohn@gnu.org>
348
349         PR target/33151
350         * config/rs6000/predicates.md (offsettable_mem_operand): Memory
351         operand without auto-inc-dec.
352         * config/rs6000/rs6000.md (floatsidf2_internal): Use
353         offsettable_mem_operand.
354         (floatunssidf2_internal): Same.
355         (fix_truncdfsi2_internal): Same.
356         (floatsidf_ppc64): Same.
357         (floatunssidf_ppc64): Same.
358         (fix_trunctfsi2_internal): Same.
359
360 2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>
361
362         PR bootstrap/30620
363         * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
364         pass defines needed for version.c.
365
366 2007-08-25  Joseph Myers  <joseph@codesourcery.com>
367
368         * configure.ac (--debug-prefix-map check): Change assembler
369         version presumed to have feature to 2.18.
370         * configure: Regenerate.
371
372 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
373
374         * c-common.c (vector_types_convertible_p,
375         decl_with_nonnull_addr_p, c_promoting_integer_type_p,
376         self_promoting_args_p): Constify.
377         * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
378         c_promoting_integer_type_p, self_promoting_args_p,
379         anon_aggr_type_p, vector_types_convertible_p): Likewise.
380         * c-decl.c (anon_aggr_type_p): Likewise.
381         * * c-dump.c (dump_stmt): Likewise.
382         * c-objc-common.c (has_c_linkage): Likewise.
383         * c-tree.h (same_translation_unit_p): Likewise.
384         * c-typeck.c (null_pointer_constant_p,
385         tagged_types_tu_compatible_p, function_types_compatible_p,
386         type_lists_compatible_p, lvalue_or_else, lvalue_p,
387         comptypes_internal, struct tagged_tu_seen_cache,
388         same_translation_unit_p, alloc_tagged_tu_seen_cache,
389         c_size_in_bytes): Likewise.
390         * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
391         hash_ptr, eq_ptr): Likewise.
392         * langhooks-def.h (lhd_decl_ok_for_sibcall,
393         LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
394         * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
395         * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
396         Likewise.
397         * optabs.c (optab_for_tree_code): Likewise.
398         * optabs.h (optab_for_tree_code): Likewise.
399         * rtl.h (simplify_rtx): Likewise.
400         * simplify-rtx.c (simplify_rtx): Likewise.
401         * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
402         dump_flag, dump_node): Likewise.
403         * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
404         queue_and_dump_type, dump_flag): Likewise.
405         * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
406         * tree-pass.h (dump_node): Likewise.
407         * tree-vectorizer.c (vect_can_force_dr_alignment_p,
408         supportable_narrowing_operation): Likewise.
409         * tree-vectorizer.h (vect_can_force_dr_alignment_p,
410         supportable_narrowing_operation): Likewise.
411         * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
412         is_negative_overflow_infinity, is_positive_overflow_infinity,
413         is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
414         nonnull_arg_p, get_value_range, vrp_operand_equal_p,
415         update_value_range, add_equivalence, ssa_name_nonnegative_p,
416         ssa_name_nonzero_p, fp_predicate): Likewise.
417         * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
418         * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
419         ssa_name_nonnegative_p): Likewise.
420
421 2007-08-25  Hans Kester  <hans.kester@ellips.nl>
422
423         * config.gcc : Add x86_64-elf target.
424
425 2007-08-25  Jakub Jelinek  <jakub@redhat.com>
426
427         * expr.c (store_expr): Fix order of store_by_pieces arguments.
428
429 2007-08-24  Sandra Loosemore  <sandra@codesourcery.com>
430             Nigel Stephens <nigel@mips.com>
431
432         PR target/11787
433
434         * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
435         (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
436         * expr.c (SET_BY_PIECES_P): Define.
437         (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
438         it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
439         (store_expr): Pass MEMSETP argument to can_store_by_pieces and
440         store_by_pieces.
441         * expr.h (SET_RATIO): Define.
442         (can_store_by_pieces, store_by_pieces): Update prototypes.
443         * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
444         can_store_by_pieces/store_by_pieces.
445         (expand_builtin_memcpy_args): Likewise.
446         (expand_builtin_strncpy): Likewise.
447         (expand_builtin_memset_args): Likewise.  Also remove special case
448         for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
449         decide what to do instead.
450         * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
451         to can_store_by_pieces.
452
453         * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
454         * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
455
456         * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
457         * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
458         * config/mips/mips.h (MIPS_CALL_RATIO): Define.
459         (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
460         (STORE_BY_PIECES_P): Define.
461
462 2007-08-24  Tom Tromey  <tromey@redhat.com>
463
464         * varpool.c (varpool_last_needed_node): Fix comment typo.
465         * c-decl.c (duplicate_decls): Fix comment typo.
466         (clone_underlying_type): Update comment.
467
468 2007-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
469
470         * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
471         alpha_in_small_data_p, alpha_split_complex_arg,
472         alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
473         Constify.
474         * config/arm/arm-protos.h (arm_mangle_type): Likewise.
475         * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
476         Likewise.
477         * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
478         TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
479         * config/darwin-protos.h (darwin_binds_local_p): Likewise.
480         * config/darwin.c (darwin_binds_local_p): Likewise.
481         * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
482         Likewise.
483         * config/i386/i386-protos.h (i386_pe_binds_local_p,
484         i386_pe_valid_dllimport_attribute_p): Likewise.
485         * config/i386/i386.c (ix86_function_regparm,
486         ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
487         x86_can_output_mi_thunk, ix86_mangle_type,
488         TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
489         * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
490         i386_pe_binds_local_p): Likewise.
491         * config/ia64/ia64.c
492         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
493         ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
494         ia64_invalid_conversion, ia64_invalid_unary_op,
495         ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
496         Likewise.
497         * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
498         * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
499         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
500         * config/mips/mips.c (mips_use_blocks_for_constant_p,
501         mips_in_small_data_p, mips_use_anchors_for_symbol_p,
502         mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
503         mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
504         mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
505         * config/pa/pa.c (pa_commutative_p): Likewise.
506         * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
507         Likewise.
508         * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
509         rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
510         rs6000_use_blocks_for_constant_p,
511         rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
512         invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
513         TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
514         * config/s390/s390.c (s390_mangle_type,
515         TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
516         Likewise.
517         * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
518         th_in_small_data_p): Likewise.
519         * config/sh/sh.c (sh_ms_bitfield_layout_p,
520         sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
521         Likewise.
522         * config/sparc/sparc.c (sparc_can_output_mi_thunk,
523         sparc_mangle_type): Likewise.
524         * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
525         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
526         * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
527         Likewise.
528         * hooks.c (hook_bool_mode_const_rtx_false,
529         hook_bool_mode_const_rtx_true,
530         hook_bool_const_tree_hwi_hwi_const_tree_false,
531         hook_bool_const_tree_hwi_hwi_const_tree_true,
532         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
533         hook_constcharptr_const_tree_null,
534         hook_constcharptr_const_rtx_null,
535         hook_constcharptr_const_tree_const_tree_null,
536         hook_constcharptr_int_const_tree_null,
537         hook_constcharptr_int_const_tree_const_tree_null): New.
538         (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
539         hook_bool_tree_hwi_hwi_tree_false,
540         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
541         hook_int_tree_tree_1, hook_constcharptr_tree_null,
542         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
543         hook_constcharptr_int_tree_null,
544         hook_constcharptr_int_tree_tree_null): Delete.
545         (default_can_output_mi_thunk_no_vcall): Constify.
546         * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
547         hook_bool_tree_hwi_hwi_tree_false,
548         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
549         hook_int_tree_tree_1, hook_constcharptr_tree_null,
550         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
551         hook_constcharptr_int_tree_null,
552         hook_constcharptr_int_tree_tree_null): Delete.
553         (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
554         hook_bool_const_tree_hwi_hwi_const_tree_false,
555         hook_bool_const_tree_hwi_hwi_const_tree_true,
556         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
557         hook_constcharptr_const_tree_null,
558         hook_constcharptr_const_rtx_null,
559         hook_constcharptr_const_tree_const_tree_null,
560         hook_constcharptr_int_const_tree_null,
561         hook_constcharptr_int_const_tree_const_tree_null): New.
562         (default_can_output_mi_thunk_no_vcall): Constify.
563         * integrate.c (function_attribute_inlinable_p): Likewise.
564         * integrate.h (function_attribute_inlinable_p): Likewise.
565         * jump.c (rtx_renumbered_equal_p): Likewise.
566         * output.h (decl_readonly_section, categorize_decl_for_section,
567         default_use_anchors_for_symbol_p, default_binds_local_p,
568         default_binds_local_p_1): Likewise.
569         * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
570         Likewise.
571         * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
572         TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
573         TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
574         TARGET_COMP_TYPE_ATTRIBUTES,
575         TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
576         TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
577         TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
578         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
579         TARGET_DWARF_CALLING_CONVENTION): Likewise.
580         * target.h (can_output_mi_thunk, needs_block_p,
581         first_cycle_multipass_dfa_lookahead_guard_spec,
582         vector_alignment_reachable, comp_type_attributes,
583         function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
584         commutative_p, use_blocks_for_constant_p,
585         use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
586         vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
587         invalid_within_doloop, valid_dllimport_attribute_p,
588         split_complex_arg, invalid_arg_for_unprototyped_fn,
589         invalid_conversion, invalid_unary_op, invalid_binary_op):
590         Likewise.
591         * targhooks.c (default_invalid_within_doloop,
592         hook_invalid_arg_for_unprototyped_fn,
593         default_builtin_vector_alignment_reachable): Likewise.
594         (hook_bool_rtx_commutative_p): Delete.
595         (hook_bool_const_rtx_commutative_p): New.
596         * targhooks.h (default_invalid_within_doloop,
597         default_builtin_vector_alignment_reachable,
598         hook_invalid_arg_for_unprototyped_fn): Constify.
599         (hook_bool_rtx_commutative_p): Delete.
600         (hook_bool_const_rtx_commutative_p): New.
601         * varasm.c (bss_initializer_p, decl_default_tls_model,
602         categorize_decl_for_section, decl_readonly_section,
603         default_use_anchors_for_symbol_p, default_binds_local_p,
604         default_binds_local_p_1): Constify.
605
606 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
607
608         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
609         __NO_BUILTIN if -fno-builtin.
610
611 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
612
613         * config/bfin/bfin.c (print_operand): Report error instead of
614         ICE for wrong operand.
615
616 2007-08-24  Michael Matz  <matz@suse.de>
617
618         * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
619
620 2007-08-24  Richard Guenther  <rguenther@suse.de>
621
622         PR middle-end/33166
623         * tree-ssa.c (useless_type_conversion_p): Split into a
624         recursive and a non-recursive part.
625         (useless_type_conversion_p_1): New function.
626         * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
627         from maybe_fold_offset_to_reference is trivially convertible
628         to the desired type before doing the simplification.
629
630 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
631
632         * expr.c (store_expr): Optimize initialization of an array
633         with STRING_CST.
634         * expr.h (builtin_strncpy_read_str): New prototype.
635         * builtins.c (builtin_strncpy_read_str): Remove prototype.
636         No longer static.
637
638 2007-08-24  Uros Bizjak  <ubizjak@gmail.com>
639
640         PR middle-end/33157
641         * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
642         field when initializing if_info structure.
643
644 2007-08-24  Richard Guenther  <rguenther@suse.de>
645
646         * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
647         dependencies.
648         * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
649         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
650         * tree-inline.c (inlinable_function_p): Fold in common parts of
651         the cannot_inline_tree_fn langhook.
652         * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
653         (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
654         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
655         cannot_inline_tree_fn langhook.
656         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
657         cannot_inline_tree_fn member.
658
659 2007-08-24  Richard Guenther  <rguenther@suse.de>
660
661         * expr.c (get_inner_reference): Do computation of bitoffset
662         from offset in a way we can detect overflow reliably.
663
664 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
665
666         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
667
668 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
669
670         * config/bfin/bfin.opt (mfast-fp): Add.
671         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
672         libbffastfp override libgcc if -mfast-fp.
673         * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
674         * doc/invoke.texi (Option Summary): Mention -mfast-fp.
675         (Blackfin Options): Document -mfast-fp.
676
677 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
678
679         PR tree-optimization/32573
680         PR middle-end/32946
681         * tree-data-ref.c (initialize_data_dependence_relation): Clear
682         DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
683         (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
684         (build_classic_dist_vector): Return false rather than true if
685         DDR_ARE_DEPENDENT is non-NULL at the beginning.  Return false
686         if either subscript_dependence_tester_1 or build_classic_dist_vector_1
687         returned false.  Don't call save_dist_v before calling
688         build_classic_dist_vector_1.
689         (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
690         with NULL DDR_ARE_DEPENDENT.  Also free DDR_DIST_VECTS and/or
691         DDR_DIR_VECTS vectors.
692
693 2007-08-23  Brian Sidebotham  <brian.sidebotham@gmail.com>
694
695         * configure.ac (leb128): Modify sed statement to work with any
696         binutils version string.
697         * configure: Regenerate
698
699 2007-08-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
700
701         * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
702         Wrap in RTX_CODE macro guard.
703         * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
704         arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
705         arm_mark_dllimport, arm_pe_encode_section_info,
706         arm_pe_unique_section): Use ISO-C function declarations.
707         * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
708         c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
709         c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
710         Likewise.
711         * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
712         * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
713         defining.
714         * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
715         warnings.
716         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
717         * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
718         (register_move_cost): Use ISO-C function declarations.
719         * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
720         * config/score/score-protos.h (score_declare_object): Add
721         ATTRIBUTE_PRINTF_4.
722         * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
723         warnings.
724         * final.c (profile_function): Avoid empty if-bodies.
725         
726         
727         * calls.c (must_pass_in_stack_var_size,
728         must_pass_in_stack_var_size_or_pad): Constify.
729         * config/alpha/alpha-protos.h (function_value): Likewise.
730         * config/alpha/alpha.c (alpha_return_in_memory,
731         alpha_pass_by_reference, function_value,
732         unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
733         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
734         Likewise.
735         * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
736         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
737         TARGET_PROMOTE_PROTOTYPES): Likewise.
738         * config/arm/arm-protos.h (arm_return_in_memory,
739         arm_pad_arg_upward, arm_function_value): Likewise.
740         * config/arm/arm.c (arm_pass_by_reference,
741         arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
742         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
743         arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
744         Likewise.
745         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
746         * config/avr/avr-protos.h (avr_function_value): Likewise.
747         * config/avr/avr.c (avr_return_in_memory,
748         gas_output_limited_string, gas_output_ascii, avr_function_value,
749         avr_return_in_memory): Likewise.
750         * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
751         * config/bfin/bfin.c (bfin_pass_by_reference,
752         bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
753         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
754         Likewise.
755         * config/cris/cris.c (cris_pass_by_reference,
756         TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
757         * config/crx/crx.c (crx_return_in_memory): Likewise.
758         * config/darwin.c (function_base, machopic_function_base_name):
759         Likewise.
760         * config/fr30/fr30.c (fr30_must_pass_in_stack,
761         TARGET_PROMOTE_PROTOTYPES): Likewise.
762         * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
763         * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
764         * config/i386/i386-protos.h (ix86_return_in_memory,
765         ix86_sol10_return_in_memory): Likewise.
766         * config/i386/i386.c (ix86_function_value,
767         ix86_function_sseregparm, ix86_must_pass_in_stack,
768         type_natural_mode, classify_argument, examine_argument,
769         construct_container, ix86_pass_by_reference, function_value_32,
770         function_value_64, ix86_function_value_1, return_in_memory_32,
771         return_in_memory_64, return_in_memory_ms_64,
772         ix86_return_in_memory, ix86_sol10_return_in_memory,
773         TARGET_PROMOTE_PROTOTYPES): Likewise.
774         * config/ia64/ia64-protos.h (ia64_function_value,
775         ia64_hpux_function_arg_padding): Likewise.
776         * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
777         ia64_function_value, bundle_state_hash, bundle_state_eq_p,
778         ia64_hpux_function_arg_padding): Likewise.
779         * config/iq2000/iq2000-protos.h (function_arg,
780         iq2000_function_value): Likewise.
781         * config/iq2000/iq2000.c (iq2000_return_in_memory,
782         iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
783         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
784         function_arg, iq2000_function_value): Likewise.
785         * config/m32c/m32c-protos.h (m32c_function_value,
786         m32c_promote_function_return): Likewise.
787         * config/m32c/m32c.c (m32c_pass_by_reference,
788         m32c_promote_prototypes, m32c_promote_function_return,
789         m32c_function_value): Likewise.
790         * config/m32r/m32r.c (m32r_return_in_memory,
791         m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
792         m32r_in_small_data_p): Likewise.
793         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
794         Likewise.
795         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
796         m68hc11_function_arg_padding): Likewise.
797         * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
798         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
799         m68k_function_value): Likewise.
800         * config/mcore/mcore-protos.h (mcore_num_arg_regs,
801         mcore_function_value): Likewise.
802         * config/mcore/mcore.c (handle_structs_in_regs,
803         mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
804         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
805         mcore_num_arg_regs, mcore_function_value): Likewise.
806         * config/mips/mips-protos.h (mips_pad_arg_upward,
807         mips_function_value): Likewise.
808         * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
809         mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
810         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
811         TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
812         mips_function_value): Likewise.
813         * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
814         Likewise.
815         * config/mmix/mmix.c (mmix_pass_by_reference,
816         TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
817         mmix_encode_section_info): Likewise.
818         * config/mn10300/mn10300-protos.h (mn10300_function_value):
819         Likewise.
820         * config/mn10300/mn10300.c (mn10300_return_in_memory,
821         mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
822         mn10300_function_value): Likewise.
823         * config/mt/mt-protos.h (mt_function_value): Likewise.
824         * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
825         mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
826         * config/pa/pa-protos.h (function_arg_padding, function_value,
827         pa_return_in_memory): Likewise.
828         * config/pa/pa.c (pa_pass_by_reference,
829         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
830         function_arg_padding, function_value, pa_return_in_memory):
831         Likewise.
832         * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
833         * config/rs6000/rs6000-protos.h (rs6000_function_value,
834         function_arg_padding): Likewise.
835         * config/rs6000/rs6000.c (rs6000_return_in_memory,
836         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
837         rs6000_pass_by_reference, rs6000_must_pass_in_stack,
838         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
839         function_arg_padding, altivec_expand_dst_builtin,
840         altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
841         altivec_init_builtins, rs6000_common_init_builtins,
842         rs6000_function_value): Likewise.
843         * s390/s390-protos.h (s390_function_value): Likewise.
844         * config/s390/s390.c (s390_function_arg_size,
845         s390_pass_by_reference, s390_return_in_memory,
846         s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
847         TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
848         * config/score/score-protos.h (score_function_value): Likewise.
849         * config/score/score.c (score_arg_partial_bytes,
850         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
851         TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
852         score_pass_by_reference, score_add_offset, score_function_value):
853         Likewise.
854         * config/sh/sh-protos.h (sh_attr_renesas_p,
855         sh_promote_prototypes): Likewise.
856         * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
857         sh_callee_copies, sh_promote_prototypes, shcompact_byref,
858         sh_attr_renesas_p): Likewise.
859         * config/sparc/sparc-protos.h (function_value,
860         function_arg_padding): Likewise.
861         * config/sparc/sparc.c (sparc_promote_prototypes,
862         sparc_return_in_memory, sparc_pass_by_reference,
863         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
864         function_arg_record_value_2, function_arg_record_value_1,
865         function_arg_record_value, function_arg_record_value,
866         function_arg_padding, function_value): Likewise.
867         * config/spu/spu-protos.h (spu_function_value): Likewise.
868         * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
869         spu_function_value): Likewise.
870         * config/stormy16/stormy16-protos.h (xstormy16_function_value):
871         Likewise.
872         * config/stormy16/stormy16.c (xstormy16_return_in_memory,
873         xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
874         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
875         Likewise.
876         * config/v850/v850.c (v850_return_in_memory,
877         v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
878         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
879         * config/xtensa/xtensa.c (xtensa_return_in_msb,
880         xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
881         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
882         Likewise.
883         * explow.c (promote_mode, hard_function_value): Likewise.
884         * expr.h (hard_function_value, promote_mode): Likewise.
885         * function.c (aggregate_value_p): Likewise.
886         * hooks.c (hook_bool_const_tree_true): New.
887         * hooks.h (hook_bool_const_tree_true): New.
888         * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
889         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
890         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
891         TARGET_RETURN_IN_MSB): Likewise.
892         * target.h (promote_function_args, promote_function_return,
893         promote_prototypes, return_in_memory, return_in_msb,
894         pass_by_reference, must_pass_in_stack, callee_copies,
895         function_value): Likewise.
896         * targhooks.c (default_return_in_memory,
897         hook_pass_by_reference_must_pass_in_stack,
898         hook_callee_copies_named,
899         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
900         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
901         default_function_value): Likewise. 
902         * targhooks.h (default_return_in_memory,
903         hook_pass_by_reference_must_pass_in_stack,
904         hook_callee_copies_named,
905         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
906         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
907         default_function_value): Likewise.
908         * tree-ssa-structalias.c (const_equiv_class_label_t): New.
909         (equiv_class_label_hash, equiv_class_label_eq): Constify.
910         * tree-vectorizer.c (bb_in_loop_p): Likewise.
911         * tree.c (needs_to_live_in_memory): Likewise.
912         * tree.h (struct tree_type, needs_to_live_in_memory,
913         aggregate_value_p, must_pass_in_stack_var_size,
914         must_pass_in_stack_var_size_or_pad): Likewise.
915         * vmsdbgout.c (write_debug_addr, write_debug_delta4,
916         write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
917         lookup_filename): Likewise.
918
919 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
920
921         PR target/17390
922         * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
923         fake fcomi i387 instruction for !TARGET_CMOVE.
924         (ix86_expand_branch): Expand natural sequence with one jump for
925         all targets, not only TARGET_CMOVE.
926         * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
927         pattern to implement fake fcomi sequence.  Split instruction after
928         reload to correct compare sequences.
929         (*cmpfp_xf_cc): Ditto.
930         (*cmpfp_<mode>_cc): Ditto.
931         (*cmpfp_u_cc): Ditto.
932         (*cmpfp_<mode>_cc): Ditto.
933
934 2007-08-23  Richard Guenther  <rguenther@suse.de>
935
936         * tree-pretty-print.c (dump_generic_node): Annotate
937         GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
938
939 2007-08-23  Richard Guenther  <rguenther@suse.de>
940
941         * builtins.c (expand_builtin_mathfn): Wrap argument in
942         save_expr directly instead of re-building the call.
943         (expand_builtin_mathfn_2): Likewise.
944         (expand_builtin_mathfn_3): Likewise.
945         (expand_builtin_interclass_mathfn): Likewise.
946         (expand_builtin_int_roundingfn): Set arg.
947         (expand_builtin_int_roundingfn_2): Likewise.
948
949 2007-08-23  Paolo Bonzini  <bonzini@gnu.org>
950
951         * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
952         *sse_nand<mode>3, *sse_xor<mode>3): New.
953
954 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
955
956         * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
957         * config/i386/i386.c (print_operand): Handle ';' code.  Output
958         semicolon for TARGET_MACHO.
959         * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
960         emit semicolon after 'lock' prefix.
961         (sync_double_compare_and_swap<mode>): Ditto.
962         (*sync_double_compare_and_swapdi_pic): Ditto.
963         (*sync_compare_and_swap_cc<mode>): Ditto.
964         (sync_double_compare_and_swap_cc<mode>): Ditto.
965         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
966         (sync_old_add<mode>): Ditto.
967         (sync_add<mode>): Ditto.
968         (sync_sub<mode>): Ditto.
969         (sync_ior<mode>): Ditto.
970         (sync_and<mode>): Ditto.
971         (sync_xor<mode>): Ditto.
972
973 2007-08-22  Chao-ying Fu  <fu@mips.com>
974
975         * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
976         in DEF_RTL_EXPR.
977         (copy_rtx): Handle CONST_FIXED.
978         (rtx_equal_p): Likewise.
979         * rtl.h (fixed_value.h): New include.
980         (rtx_def): Add a new field of fixed_value to u.
981         (XCNMPFV): Define for accessing fixed_value.
982         (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
983         Define.
984         * rtl.def (CONST_FIXED): New constant.
985         (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
986         UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
987         US_ASHIFT): New codes.
988         * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
989         us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
990         unsigned_fract_convert, unsigned_sat_fract): Document them.
991         * varasm.c (assemble_integer): Extend to support fixed-point constants
992         by using different machine classes.
993         (decode_addr_const): Handle FIXED_CST.
994         (const_hash_1): Likewise.
995         (compare_constant): Likewise.
996         (copy_constant): Likewise.
997         (const_rtx_hash_1): Handle CONST_FIXED.
998         (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
999         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1000         MODE_VECTOR_UACCUM.
1001         (initializer_constant_valid_p): Handle FIXED_CST.
1002         (output_constant): Support FIXED_POINT_TYPE.
1003         * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
1004         * cse.c (hash_rtx): Support CONST_FIXED.
1005         (exp_equiv_p): Likewise.
1006         (cannon_reg): Likewise.
1007         (fold_rtx): Likewise.
1008         (equiv_constant): Likewise.
1009         (cse_process_notes_1): Likewise.
1010         (count_reg_usage): Likewise.
1011         * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
1012         (rtx_equal_for_cselib_p): Handle CONST_FIXED.
1013         (wrap_constant): Check CONST_FIXED.
1014         (cselib_hash_rtx): Support CONST_FIXED.
1015         (cselib_subst_to_values): Likewise.
1016         * df-scan.c (df_uses_record): Likewise.
1017         * gcse.c (want_to_gcse_p): Likewise.
1018         (oprs_unchanged_p): Likewise.
1019         (oprs_not_set_p): Likewise.
1020         (compute_transp): Likewise.
1021         (extract_mentioned_regs_helper): Likewise.
1022         * genemit.c (gen_exp): Likewise.
1023         * local-alloc.c (equiv_init_varies_p): Likewise.
1024         (contains_replace_regs): Likewise.
1025         (memref_referenced_p): Likewise.
1026         * loop-invariant.c (check_maybe_invariant): Likewise.
1027         (hash_invariant_expr_1): Likewise.
1028         (invariant_expr_equal_p): Likewise.
1029         * postreload-gcse.c (oprs_unchanged_p): Likewise.
1030         * regclass.c (reg_scan_mark_refs): Likewise.
1031         * regrename.c (scan_rtx): Likewise.
1032         * resource.c (mark_referenced_resources): Likewise.
1033         (mark_set_resources): Likewise.
1034         * rtlanal.c (rtx_unstable_p): Likewise.
1035         (rtx_varies_p): Likewise.
1036         (count_occurrences): Likewise.
1037         (reg_mentioned_p): Likewise.
1038         (modified_between_p): Likewise.
1039         (modified_in_p): Likewise.
1040         (volatile_insn_p): Likewise.
1041         (volatile_refs_p): Likewise.
1042         (side_effects_p): Likewise.
1043         (may_trap_p_1): Likewise.
1044         (inequality_comparisons_p): Likewise.
1045         (computed_jump_p_1): Likewise.
1046         (commutative_operand_precedence): Likewise.
1047         * sched-deps.c (sched_analyze_2): Likewise.
1048         * sched-vis.c (print_value): Likewise.
1049         * reload.c (operands_match_p): Likewise.
1050         (subst_reg_equivs): Likewise.
1051         * reload1.c (eliminate_regs_1): Likewise.
1052         (elimination_effects): Likewise.
1053         (scan_paradoxical_subregs): Likewise.
1054         * alias.c (rtx_equal_for_memref_p): Likewise.
1055         * Makefile.in (RTL_BASE_H): Add fixed-value.h.
1056         * emit-rtl.c (const_fixed_htab): New hash table.
1057         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
1058         Declare.
1059         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
1060         const_fixed_from_fixed_value): New functions.
1061         (verify_rtx_sharing): Handle CONST_FIXED.
1062         (copy_rtx_if_shared_1): Likewise.
1063         (reset_used_flags): Likewise.
1064         (set_used_flags): Likewise.
1065         (copy_insn_1): Likewise.
1066         (init_emit_once): Create const_fixed_htab.
1067         Store fixed-point scalar and vector zero and one to const_tiny_rtx.
1068
1069 2007-08-22  Zdenek Dvorak  <ook@ucw.cz>
1070
1071         PR tree-optimization/32949
1072         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
1073         before failing for ivs with non-constant step.
1074
1075 2007-08-22  Hans-Peter Nilsson  <hp@axis.com>
1076
1077         * doc/md.texi (Iterators): Renamed from Macros.  All contents
1078         changed to reflect rename of respectively define_code_macro and
1079         define_mode_macro to define_code_iterator and define_mode_iterator.
1080         (Mode Iterators, Code Iterators): Similar.
1081         * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
1082         (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
1083         (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
1084         (initialize_iterators, find_iterator, check_code_iterator)
1085         (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
1086         (read_mapping, read_rtx_1): Similar.
1087         * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
1088         config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
1089         config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
1090         config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
1091         config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
1092         config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
1093         config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
1094         config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
1095         config/rs6000/sync.md, config/rs6000/rs6000.md,
1096         config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
1097         config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
1098         config/vax/vax.md, config/bfin/bfin.md: Similar.
1099
1100 2007-08-22  David Daney  <ddaney@avtrex.com>
1101
1102         * doc/install.texi (Testing): Mention testing on a simulator.
1103
1104 2007-08-22  Janis Johnson  <janis187@us.ibm.com>
1105
1106         * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
1107
1108         * doc/libgcc.texi (Decimal float library routines): Fix formatting
1109         and rearrange floating point conversion functions into different
1110         categories.
1111
1112 2007-08-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
1113
1114         * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
1115         dfa_post_advance_cycle): New scheduler hooks.
1116         * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1117         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
1118         new hooks.
1119         (TARGET_SCHED): Use them.
1120         * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1121         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
1122         * haifa-sched.c (advance_one_cycle): Invoke new hooks.
1123
1124         * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
1125         function to facilitate debugging.
1126         (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
1127         (output_insn_has_dfa_reservation_p): New static function to output
1128         insn_has_dfa_reservation_p ().
1129         (write_automata): Use it.
1130         * genattr.c (main): Output declaration for
1131         insn_has_dfa_reservation_p ().
1132
1133 2007-08-22  Christian Bruel  <christian.bruel@st.com>   
1134             Richard Guenther <rguenther@suse.de>
1135         
1136         * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
1137         * simplify_rtx (simplify_binary_operation_1): Likewise.
1138                 
1139 2007-08-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1140
1141         PR rtl-optimization/32557
1142         * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
1143         of REGNO (mws->mw_reg).
1144
1145 2007-08-22  Richard Guenther  <rguenther@suse.de>
1146
1147         PR middle-end/33007
1148         * builtins.c (expand_builtin_int_roundingfn): Replace call
1149         argument wrapped with SAVE_EXPR directly.
1150         (expand_builtin_int_roundingfn_2): Likewise.
1151
1152 2007-08-22  Richard Guenther  <rguenther@suse.de>
1153
1154         * tree-inline.c (inlinable_function_p): Restore disregarding
1155         inline limits for GNU extern inline functions.
1156
1157 2007-08-22  Richard Guenther  <rguenther@suse.de>
1158
1159         PR middle-end/32563
1160         * tree.c (host_integerp): Treat sizetype as signed as it is
1161         sign-extended.
1162
1163 2007-08-21  Ian Lance Taylor  <iant@google.com>
1164
1165         PR tree-optimization/33134
1166         * tree-vrp.c (adjust_range_with_scev): Call
1167         set_value_range_to_value.
1168
1169 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
1170
1171         * value-prof.h (gimple_remove_histogram_value): Remove duplicate
1172         prototype.
1173         
1174 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
1175
1176         * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
1177         whitespace.
1178
1179 2007-08-21  Nathan Froyd  <froydnj@codesourcery.com>
1180
1181         * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
1182         cases to set eight bytes at a time.
1183         (expand_block_move): Likewise.
1184         
1185 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
1186
1187         PR debug/32610
1188         * dwarf2out.c (gen_decl_die): Don't call
1189         gen_tagged_type_instantiation_die if decl doesn't have tagged type.
1190
1191 2007-08-21  Paul Brook  <paul@codesourcery.com>
1192             Nathan Sidwell  <nathan@codesourcery.com>
1193             Mark Mitchell  <mark@codesourcery.com>
1194             Joseph Myers  <joseph@codesourcery.com>
1195
1196         * configure.ac: Add --with-pkgversion and --with-bugurl.
1197         * configure: Regenerate.
1198         * doc/install.texi: Document them.
1199         * version.c (version_string): Remove VERSUFFIX.
1200         (VERSUFFIX): Remove.
1201         (pkgversion_string): New.
1202         (bug_report_url): Do not hard-code initializer.
1203         * version.h (pkgversion_string): Declare.
1204         * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
1205         Define.
1206         (version.o): Define PKGVERSION and BUGURL.
1207         (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
1208         (%.pod): Define BUGURL.
1209         * gcc.c (process_command, main): Use pkgversion_string.
1210         * toplev.c (compile_file, print_version): Likewise.
1211         * protoize.c (main): Likewise.
1212         * gcov.c (print_version): Likewise.  Update copyright date.
1213         * gcov-dump.c (print_version): Likewise.  Update copyright date.
1214         * mips-tdump.c (main): Likewise.  Update copyright date.
1215         * mips-tfile.c (main): Likewise.  Update copyright date.
1216         * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
1217         * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
1218         shorten description.
1219         * doc/gcc.texi: Include VERSION_PACKAGE in version description.
1220         * doc/gccint.texi: Likewise.
1221         * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
1222         Update copyright date.
1223
1224 2007-08-21  Uros Bizjak  <ubizjak@gmail.com>
1225
1226         * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
1227         (ix86_expand_strlensi_unroll_1): Ditto.
1228         (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
1229         (ix86_expand_carry_flag_compare): Update comment.
1230
1231 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
1232
1233         PR middle-end/32912
1234         * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
1235         (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
1236
1237 2007-08-21  Richard Guenther  <rguenther@suse.de>
1238
1239         * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
1240
1241 2007-08-21  Richard Guenther  <rguenther@suse.de>
1242
1243         PR middle-end/33122
1244         * fold-const.c (fold_binary): Remove index +p PTR folding.
1245         Fix types of POINTER_PLUS_EXPR generated by folding of
1246         (PTR +p B) +p A.
1247
1248 2007-08-20  Chao-ying Fu  <fu@mips.com>
1249
1250         * c-common.h (enum rid): Add new enumeration values of RID_SAT,
1251         RID_FRACT, and RID_ACCUM.  RID_SAT needs to be inserted before
1252         RID_ONEWAY, so that it can be checked in declspecs_add_type.
1253         (c_common_fixed_point_type_for_size): Declare.
1254         * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
1255         (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
1256         (c_token_starts_declspecs): Likewise.
1257         (c_parser_declspecs): Likewise.
1258         (c_parser_attributes): Likewise.
1259         * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
1260         (c_declspecs): Add saturating_p.
1261         * c-decl.c (build_null_declspecs): Initialize saturating_p.
1262         (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
1263         _Sat.  Handle RID_SAT.
1264         Avoid using void, bool, char, int, float, double, _Decimal32,
1265         _Decimal64, _Decimal128, and complex with _Sat.
1266         Handle RID_FRACT and RID_ACCUM.
1267         Make sure _Sat is used with _Fract or _Accum.
1268         (finish_declspecs): Handle cts_fract and cts_accum.
1269         * c-common.c (fixed-value.h): New include.
1270         (constant_expression_warning): Handle FIXED_CST.
1271         (overflow_warning): Likewise.
1272         (warnings_for_convert_and_check): Likewise.
1273         (c_common_fixed_point_type_for_size): New.
1274         (c_common_type_for_mode): Handle fixed-point modes to
1275         return various saturating/non-saturating, signed/unsigned types.
1276         (c_common_signed_or_unsigned_type): Support fixed-point types.
1277         (shorten_compare): Check fixed-point zero.
1278         Handle FIXED_POINT_TYPE.
1279         (c_common_truthvalue_conversion): Handle FIXED_CST.
1280         Handle FIXED_POINT_TYPE.
1281         (c_common_nodes_and_builtins): Record builtin types for fixed-point
1282         types.
1283         (handle_mode_attribute): Handle fixed-point modes.  Need to check
1284         if the signness of base type and fixed-point modes are consistent.
1285         (handle_vector_size_attribute): Handle fixed-point modes.
1286         (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
1287         (warn_for_div_by_zero): Check fixed-point zero.
1288         * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE.  Build
1289         a common fixed-point type based on fbit, ibit, sign, and saturation.
1290         (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
1291         NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
1292         PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
1293         (convert_for_assignment): Support FIXED_POINT_TYPE.
1294         (digest_init): Handle FIXED_POINT_TYPE.
1295         (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
1296         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1297         TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
1298         GE_EXPR, LT_EXPR, GT_EXPR.
1299         * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
1300         (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
1301         * target.h (gcc_target): Add fixed_point_supported_p.
1302         * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
1303         MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
1304         (default_fixed_point_supported_p): Define.
1305         * targhooks.h (default_fixed_point_supported_p): Declare.
1306         * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
1307         * doc/install.texi (Configuration): Add --enable-fixed-point.
1308         * configure.ac (--enable-fixed-point): New to enable fixed-point
1309         arithmetic extension to C.  For mips targets, we enable it by default.
1310         * configure, config.in: Regenerate.
1311
1312 2007-08-20  Pawel Sikora  <pluto@pld-linux.org>
1313
1314         * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
1315
1316 2007-08-20  David Edelsohn  <edelsohn@gnu.org>
1317
1318         * dwarf2out.c (text_section_used): Move declaration outside ifdef
1319         DWARF2_DEBUGGING_INFO.
1320         (cold_text_section_used): Same.
1321         (cold_text_section): Same.
1322
1323 2007-08-20  Richard Guenther  <rguenther@suse.de>
1324
1325         * c-typeck.c (convert_for_assignment): Use the type of
1326         the member for the initialization.
1327
1328 2007-08-20  Richard Guenther  <rguenther@suse.de>
1329
1330         * c-objc-common.c (c_disregard_inline_limits): Remove.
1331         * c-objc-common.h (c_disregard_inline_limits): Likewise.
1332         * cgraphunit.c (cgraph_process_new_functions): Call
1333         disregard_inline_limits_p.
1334         (cgraph_preserve_function_body_p): Likewise.
1335         * ipa-inline.c (compute_inline_parameters): Likewise.
1336         * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
1337         Remove.
1338         (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
1339         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
1340         disregard_inline_limits langhook.
1341         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
1342         Remove.
1343         * langhooks.h (lang_hooks_for_tree_inlining): Remove
1344         disregard_inline_limits langhook.
1345         * tree-inline.c (disregard_inline_limits_p): New function.
1346         * tree-inline.h (disregard_inline_limits_p): Declare.
1347
1348 2007-08-20  Richard Guenther  <rguenther@suse.de>
1349
1350         * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
1351         (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
1352         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
1353         auto_var_in_fn_p langhook.
1354         * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
1355         move ...
1356         * tree.c (auto_var_in_fn_p): ... here.
1357         (find_var_from_fn): Call auto_var_in_fn_p directly.
1358         * langhooks.h (lang_hooks_for_tree_inlining): Remove
1359         auto_var_in_fn_p langhook.
1360         * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
1361         (copy_body_r): Likewise.
1362         (self_inlining_addr_expr): Likewise.
1363         * tree.h (auto_var_in_fn_p): Declare.
1364
1365 2007-08-20  Richard Guenther  <rguenther@suse.de>
1366
1367         * tree.c (WALK_SUBTREE): Call walk_tree_1.
1368         (walk_type_fields): Take lh parameter.
1369         (walk_tree): Rename to ...
1370         (walk_tree_1): ... this.  Do not call the walk_subtrees
1371         langhook but the now passed callback.  Pass lh on recursion.
1372         (walk_tree_without_duplicates): Rename to ...
1373         (walk_tree_without_duplicates_1): ... this.  Take lh parameter
1374         and call walk_tree_1.
1375         * tree.h (walk_tree_lh): New typedef.
1376         (walk_tree_1): Declare.
1377         (walk_tree_without_duplicates_1): Likewise.
1378         (walk_tree): New define to walk_tree_1 with NULL lh parameter.
1379         (walk_tree_without_duplicates): New define to
1380         walk_tree_without_duplicates_1 with NULL lh parameter.
1381         * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
1382         * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
1383         langhook.
1384         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
1385         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
1386         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
1387         initializer.
1388
1389 2007-08-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1390
1391         PR middle-end/30564
1392         * tree-inline.c (optimize_inline_calls): Move the cgraph checking
1393         code in front of the compacting of basic blocks.
1394         Move the folding of statements inbetween the cgraph checking
1395         and compacting of basic blocks.
1396
1397 2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1398            Serge Belyshev  <belyshev@depni.sinp.msu.ru>
1399
1400         PR target/32522
1401         * config/alpha/alpha.c (va_list_skip_additions): Check for
1402         POINTER_PLUS_EXPR in addition to PLUS_EXPR.
1403         (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
1404         PLUS_EXPR when checking ap.__base.
1405         (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
1406         when doing addition on pointer types.  Use size_int instead of
1407         build_int_cst.
1408         (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
1409         ptr_type in the second operand.
1410
1411 2007-08-19  Andrew Pinski  <pinskia@gmail.com>
1412
1413         PR target/33115
1414         * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
1415
1416 2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1417
1418         PR middle-end/32940
1419         * cfgexpand.c  (expand_one_register_var): Mark pointer
1420         DECL_ARTIFICIAL as REG_POINTER also.
1421         * stmt.c (expand_decl): Likewise.
1422
1423 2007-08-19  Daniel Berlin  <dberlin@dberlin.org>
1424
1425         Fix PR 32772
1426         Fix PR 32716
1427         Fix PR 32328
1428         Fix PR 32303
1429
1430         * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
1431         * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
1432         on_worklist argument and avoid adding things to worklist multiple
1433         times.
1434         (add_to_worklist): Ditto.
1435         (mark_aliases_call_clobbered): Mark entire structure clobbered if
1436         single SFT is clobbered.
1437         (set_initial_properties): Ditto.
1438         (compute_call_clobbered): Update for changes to function
1439         arguments.
1440         (create_overlap_variables_for): Always create SFT for offset 0.
1441         (create_structure_vars): Handle PHI's, since we are in SSA form at
1442         this point.
1443         * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
1444         * tree-ssa-operands.c (access_can_touch_variable): Don't handle
1445         TARGET_MEM_REF.
1446         (add_vars_for_offset): Figure out aliases from access + points-to.
1447         (add_virtual_operand): Use add_vars-for_offset.
1448         (get_tmr_operands): Update for NMT changes, rewrite to be correct.
1449         (add_call_clobber_ops): Remove makes_clobbering_call set.
1450         (get_expr_operands): Always pass through the INDIRECT_REF
1451         reference.
1452         * tree-ssa-structalias.c (struct constraint_graph): Remove
1453         variables member.
1454         Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
1455         address_taken, pt_used, number_incoming.
1456         (FIRST_ADDR_NODE): Removed.
1457         (merge_graph_nodes): Remove broken code for the moment.
1458         (init_graph): New function.
1459         (build_pred_graph): Remove code to init_graph.
1460         Add location equivalence support.
1461         (struct scc_info): Rename roots to deleted.
1462         (scc_visit): Ditto.
1463         (init_scc_info): Ditto
1464         (init_topo_info): Use graph->size.
1465         (compute_topo_order): Ditto.
1466         (do_da_constraint): Removed.
1467         (do_sd_constraint): Remove calls to find().
1468         set_union_with_increment should always get 0 as last arg here.
1469         (do_complex_constraint): Replace do_da_constraint with assert.
1470         Stop calling find.
1471         (struct equiv_class_label): New.
1472         (pointer_equiv_class_table): Ditto.
1473         (location_equiv_class_table): Ditto.
1474         (equiv_class_label_hash): Ditto.
1475         (equiv_class_label_eq): Ditto
1476         (equiv_class_lookup): Ditto.
1477         (equiv_class_ladd): Ditto.
1478         (pointer_equiv_class): Ditto.
1479         (location_equiv_class): Ditto.
1480         (condense_visit): Rename and rewrite from label_visit to do only
1481         SCC related stuff for HU.
1482         (label_visit): Do HU work for HU.
1483         (perform_var_substitution): Update to do HU and location
1484         equivalence.
1485         (free_var_substitution_info): Update to free HU and location
1486         equivalence structures.  */
1487         (find_equivalent_node): Update for pointer but not location
1488         equivalence.
1489         (unite_pointer_equivalences): New function.
1490         (move_complex_constraints): Rewrite to only do moving.
1491         (rewrite_constraints): Split out of move_complex_constraints.
1492         (solve_graph): Use graph->size.
1493         (process_constraint_1): Add from_call argument, use it.
1494         Split *a = &b into two constraints.
1495         (process_constraint): Use new process_constraint_1.
1496         (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
1497         (get_constraint_for): Handle non-pointer integers properly.
1498         Remove code that used to handle structures.
1499         (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
1500         with unknown addends.
1501         (handle_rhs_call): New function.
1502         (find_func_aliases): Use handle_rhs_call.
1503         (set_uids_in_ptset): Add an assert.
1504         (set_used_smts): Fix bug in not considering unified vars.
1505         (compute_tbaa_pruning): Stop initing useless iteration_obstack.
1506         (compute_points_to_sets): Update for other function changes.
1507         (delete_points_to_sets): Ditto.
1508         (ipa_pta_execute): Ditto.
1509         (pass_ipa_pta): We need to update SSA after ipa_pta.
1510         
1511 2007-08-19  Jan Hubicka  <jh@suse.cz>
1512
1513         * i386.md: Replace "rim" and "mri" constraints by "g".
1514
1515 2007-08-19  Joseph Myers  <joseph@codesourcery.com>
1516
1517         * dwarf2out.c (text_section_used, cold_text_section_used,
1518         cold_text_section, dwarf2out_note_section_used): New.
1519         (dwarf2out_init): Initialize cold_text_section.
1520         (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
1521         dwarf2out_note_section_used.
1522         (size_of_aranges): Only count entry for text section if it was
1523         used.  Count entry for cold text section if it was used.
1524         (output_aranges): Only output entries for text section and cold
1525         text section if they were used.
1526
1527 2007-08-19  Andrew Pinski  <pinskia@gmail.com>
1528
1529         * tree-pretty-print.c (debug_generic_expr): Add a comment about
1530         the function.
1531         (debug_generic_stmt): Likewise.
1532         (debug_tree_chain): Likewise.
1533
1534 2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
1535
1536         * tree-data-refs.c (split_constant_offset): Expose.
1537         * tree-data-refs.h (split_constant_offset): Add declaration.
1538
1539         * tree-vectorizer.h (dr_alignment_support): Renamed
1540         dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
1541         Added a new value dr_explicit_realign.
1542         (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
1543         dr_offset, dr_step, and dr_aligned_to, along with new access
1544         functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
1545         STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
1546         STMT_VINFO_DR_ALIGNED_TO.
1547
1548         * tree-vectorizer.c (vect_supportable_dr_alignment): Add
1549         documentation.
1550         In case of outer-loop vectorization with non-fixed misalignment - use
1551         the dr_explicit_realign scheme instead of the optimized realignment
1552         scheme.
1553         (new_stmt_vec_info): Initialize new fields.
1554
1555         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
1556         'nested_in_vect_loop' case. Change verbosity level.
1557         (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
1558         Don't fail on zero step in the outer-loop for loads.
1559         (vect_analyze_data_refs): Call split_constant_offset to calculate
1560         base, offset and init relative to the outer-loop.
1561
1562         * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
1563         BSI function argument with a new function argument - at_loop.
1564         Simplify the condition that determines STEP. Takes additional argument
1565         INV_P. Support outer-loop vectorization (handle the
1566         nested_in_vect_loop case), including zero step in the outer-loop. Call
1567         vect_create_addr_base_for_vector_ref with additional argument.
1568         (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
1569         Updated function documentation. Handle the 'nested_in_vect_loop' case.
1570         Fixed and simplified calculation of step.
1571         (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
1572         of bsi, and with additional argument. Call bump_vector_ptr with
1573         additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
1574         (vect_setup_realignment): Takes additional arguments INIT_ADDR and
1575         DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
1576         when the realignment setup needs to take place inside the loop.
1577         Support the dr_explicit_realign scheme. Allow generating the optimized
1578         realignment scheme for outer-loop vectorization. Added documentation.
1579         (vectorizable_load): Support the dr_explicit_realign scheme. Handle
1580         the 'nested_in_vect_loop' case, including loads that are invariant in
1581         the outer-loop and the realignment schemes. Handle the case when the
1582         realignment setup needs to take place inside the loop. Call
1583         vect_setup_realignment with additional arguments.  Call
1584         vect_create_data_ref_ptr with additional argument and with loop instead
1585         of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
1586         (vect_gen_niters_for_prolog_loop): Call
1587         vect_create_addr_base_for_vector_ref with additional arguments.
1588         (vect_create_cond_for_align_checks): Likewise.
1589         (bump_vector_ptr): Updated to support the new dr_explicit_realign
1590         scheme: takes additional argument bump; argument ptr_incr is now
1591         optional; updated documentation.
1592         (vect_init_vector): Takes additional argument (bsi). Use it, if
1593         available, to insert the vector initialization.
1594         (get_initial_def_for_induction): Pass additional argument in call to
1595         vect_init_vector.
1596         (vect_get_vec_def_for_operand): Likewise.
1597         (vect_setup_realignment): Likewise.
1598         (vectorizable_load): Likewise.
1599
1600 2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
1601
1602         * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
1603         as argument instead of struct loop.
1604         (nested_in_vect_loop_p): New function.
1605         (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
1606         vect_used_in_outer.
1607         (is_loop_header_bb_p): New. Used to differentiate loop-header phis
1608         from other phis in the loop.
1609         (destroy_loop_vec_info): Add additional argument to declaration.
1610
1611         * tree-vectorizer.c (supportable_widening_operation): Also check if
1612         nested_in_vect_loop_p (don't allow changing the order in this case).
1613         (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
1614         of struct loop. Call nested_in_vect_loop_p and don't require
1615         flag_unsafe_math_optimizations if it returns true.
1616         (new_stmt_vec_info): When setting def_type for phis differentiate 
1617         loop-header phis from other phis.
1618         (bb_in_loop_p): New function.
1619         (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
1620         just update their loop_vinfo.  Order of BB traversal now matters -
1621         call dfs_enumerate_from with bb_in_loop_p.
1622         (destroy_loop_vec_info): Takes additional argument to control whether
1623         stmt_vinfo of the loop stmts should be destroyed as well.
1624         (vect_is_simple_reduction): Allow the "non-reduction" use of a
1625         reduction stmt to be defines by a non loop-header phi.
1626         (vectorize_loops): Call destroy_loop_vec_info with additional argument.
1627
1628         * tree-vect-transform.c (vectorizable_reduction): Call
1629         nested_in_vect_loop_p. Check for multitypes in the inner-loop.
1630         (vectorizable_call): Likewise.
1631         (vectorizable_conversion): Likewise.
1632         (vectorizable_operation): Likewise.
1633         (vectorizable_type_promotion): Likewise.
1634         (vectorizable_type_demotion): Likewise.
1635         (vectorizable_store): Likewise.
1636         (vectorizable_live_operation): Likewise.
1637         (vectorizable_reduction): Likewise. Also pass loop_info to
1638         vect_is_simple_reduction instead of loop.
1639         (vect_init_vector): Call nested_in_vect_loop_p.
1640         (get_initial_def_for_reduction): Likewise.
1641         (vect_create_epilog_for_reduction): Likewise.
1642         (vect_init_vector): Check which loop to work with, in case there's an
1643         inner-loop.
1644         (get_initial_def_for_inducion): Extend to handle outer-loop
1645         vectorization. Fix indentation.
1646         (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
1647         In the case vect_induction_def get the vector def from the induction
1648         phi node, instead of calling get_initial_def_for_inducion.
1649         (get_initial_def_for_reduction): Extend to handle outer-loop 
1650         vectorization.
1651         (vect_create_epilog_for_reduction): Extend to handle outer-loop
1652         vectorization.
1653         (vect_transform_loop): Change assert to just skip this case.  Add a
1654         dump printout.
1655         (vect_finish_stmt_generation): Add a couple asserts.
1656
1657         (vect_estimate_min_profitable_iters): Multiply
1658         cost of inner-loop stmts (in outer-loop vectorization) by estimated
1659         inner-loop bound.
1660         (vect_model_reduction_cost): Don't add reduction epilogue cost in case
1661         this is an inner-loop reduction in outer-loop vectorization.
1662
1663         * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
1664         Same code as what used to be vect_analyze_scalar_cycles, only with
1665         additional argument loop, and loop_info passed to
1666         vect_is_simple_reduction instead of loop.
1667         (vect_analyze_scalar_cycles): Code factored out into
1668         vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
1669         Updated documentation.
1670         (analyze_operations): Check for inner-loop loop-closed exit-phis during
1671         outer-loop vectorization that are live or not used in the outerloop,
1672         cause this requires special handling.
1673         (vect_enhance_data_refs_alignment): Don't consider versioning for
1674         nested-loops.
1675         (vect_analyze_data_refs): Check that there are no datarefs in the
1676         inner-loop.
1677         (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
1678         and vect_used_in_outer_by_reduction cases.
1679         (process_use): Also consider the case of outer-loop stmt defining an
1680         inner-loop stmt and vice versa.
1681         (vect_analyze_loop_1): New function.
1682         (vect_analyze_loop_form): Extend, to allow a restricted form of nested
1683         loops.  Call vect_analyze_loop_1.
1684         (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
1685         been vectorized.  Call destroy_loop_vec_info with additional argument.
1686
1687         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
1688         in the inner-loop when doing outer-loop vectorization. Add
1689         documentation and printout.
1690         (vect_recog_dot_prod_pattern): Likewise. Also add check for
1691         GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
1692
1693 2007-08-18  Andrew Pinski  <pinskia@gmail.com>
1694
1695         * tree-affine.h (print_aff): New prototype.
1696         (debug_aff): Likewise.
1697         * tree-affine.c (print_aff): New function.
1698         (debug_aff): Likewise.
1699
1700 2007-08-18  Paul Brook  <paul@codesourcery.com>
1701             Joseph Myers  <joseph@codesourcery.com>
1702
1703         * common.opt (-fdebug-prefix-map=): New option.
1704         * opts.c: Include debug.h.
1705         (common_handle_option): Handle -fdebug-prefix-map.
1706         * final.c: Include ggc.h.
1707         (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
1708         remap_debug_filename): New.
1709         * Makefile.in (final.o, opts.o): Update dependencies.
1710         * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
1711         * configure.ac: Check for assembler --debug-prefix-map support.
1712         * configure, config.in: Regenerate.
1713         * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
1714         (ASM_DEBUG_SPEC): Include ASM_MAP.
1715         * doc/install.texi (--with-debug-prefix-map): Document.
1716         * doc/invoke.texi (-fdebug-prefix-map): Document.
1717         * dbxout.c (dbxout_init, dbxout_start_source_file,
1718         dbxout_source_file): Call remap_debug_filename.
1719         * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
1720         dwarf2out_start_source_file, dwarf2out_finish): Call
1721         remap_debug_filename.
1722         (file_table_relative_p): Do not check d->emitted_number.
1723         * toplev.c (output_file_directive): Call remap_debug_filename.
1724         * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
1725         * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
1726
1727 2007-08-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1728
1729         * loop-invariant.c (find_invariants_to_move): Add missing macro
1730         argument.
1731
1732 2007-08-17  Tom Tromey  <tromey@redhat.com>
1733
1734         * tree.h (struct tree_label_decl): Removed old "java" fields.
1735
1736 2007-08-17  Richard Sandiford  <richard@codesourcery.com>
1737             Nigel Stephens  <nigel@mips.com>
1738
1739         * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
1740         Treat -mno-data-in-code and -mcode-xonly as aliases for
1741         -mcode-readable=no and -mcode-readable=pcrel respectively.
1742         * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
1743         (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
1744         (MULTILIB_DIRNAMES): Update accordingly.
1745
1746 2007-08-17  H.J. Lu  <hongjiu.lu@intel.com>
1747
1748         * Makefile.in (version.o): Depend on $(REVISION) only if
1749         REVISION_s is defined.
1750
1751 2007-08-17  Sa Liu  <saliu@de.ibm.com>
1752             Ulrich Weigand  <uweigand@de.ibm.com>
1753
1754         PR middle-end/32970
1755         * tree.c (reconstruct_complex_type): For a pointer to a vector,
1756         use build_qualified_type to retain qualifiers of the base type.
1757
1758 2007-08-17  Chen Liqin  <liqin@sunnorth.com.cn>
1759
1760         * config/score/score.md : Update pattern tablejump.
1761         * config/score/score.c : Update score_initialize_trampoline 
1762         function.
1763         * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
1764         (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
1765         * doc/contrib.texi: Add my entry.
1766
1767 2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>
1768
1769         * Makefile.in (REVISION): New.
1770         (REVISION_c): New.
1771         (REVISION_s): New.
1772         (version.o): Also depend on $(REVISION). Add
1773         -DREVISION=$(REVISION_s).
1774
1775         * version.c (version_string): Add REVISION.
1776
1777 2007-08-16  Seongbae Park <seongbae.park@gmail.com>
1778
1779         * tree-eh.c (lower_try_finally_onedest): Reset the locus
1780         of GOTO that's relocated to a different block.
1781
1782 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1783
1784         * c-common.c (const_strip_array_types): New.
1785         * c-common.h (lang_missing_noreturn_ok_p): Delete.
1786         (const_strip_array_types): New.
1787         * c-objc-common.c (c_disregard_inline_limits,
1788         c_warn_unused_global_decl): Constify.
1789         * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
1790         c_vla_type_p, c_incomplete_type_error): Likewise.
1791         * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
1792         * hooks.c (hook_bool_const_tree_false): New.
1793         * hooks.h (hook_bool_const_tree_false): Likewise.
1794         * langhooks-def.h (lhd_warn_unused_global_decl,
1795         lhd_incomplete_type_error, lhd_expr_size,
1796         lhd_tree_inlining_disregard_inline_limits,
1797         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
1798         LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
1799         * langhooks.c (lhd_warn_unused_global_decl,
1800         lhd_incomplete_type_error,
1801         lhd_tree_inlining_disregard_inline_limits,
1802         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
1803         lhd_expr_size): Likewise.
1804         * langhooks.h (lang_hooks_for_tree_inlining,
1805         lang_hooks_for_tree_dump, lang_hooks_for_types,
1806         lang_hooks_for_decls, lang_hooks): Likewise.
1807         * pointer-set.c (pointer_set_t, pointer_set_create,
1808         pointer_set_contains, insert_aux, pointer_set_insert,
1809         pointer_set_traverse, pointer_map_t, pointer_map_create,
1810         pointer_map_contains, pointer_map_insert, pointer_map_traverse):
1811         Likewise.
1812         * pointer-set.h (pointer_set_contains, pointer_set_insert,
1813         pointer_set_traverse, pointer_map_contains, pointer_map_insert,
1814         pointer_map_traverse): Likewise.
1815         * predict.c (assert_is_empty): Likewise.
1816         * tree-affine.c (free_name_expansion): Likewise.
1817         * tree-cfg.c (edge_to_cases_cleanup): Likewise.
1818         * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
1819         * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
1820
1821 2007-08-16  Victor Kaplansky <victork@il.ibm.com>
1822
1823         * tree-vectorizer.c (new_loop_vec_info): Initialize new 
1824         field.
1825         (destroy_loop_vec_info): Add call to VEC_free.
1826         * tree-vectorizer.h (may_alias_ddrs): Define.
1827         (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
1828         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
1829         Change reporting to dump.
1830         (vect_is_duplicate_ddr): New.
1831         (vect_mark_for_runtime_alias_test): New.
1832         (vect_analyze_data_ref_dependences) Add call to
1833         vect_mark_for_runtime_alias_test.
1834         (vect_enhance_data_refs_alignment): Define local variable
1835         vect_versioning_for_alias_required, don't perform
1836         peeling for alignment if versioning for alias is
1837         required.
1838         (vect_enhance_data_refs_alignment): Use
1839         PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
1840         PARAM_VECT_MAX_VERSION_CHECKS.
1841         * tree-vect-transform.c
1842         (vect_create_cond_for_alias_checks): New.
1843         (vect_transform_loop): Add call to
1844         vect_create_cond_for_alias_checks.
1845         (vect_vfa_segment_size): New.
1846         * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
1847         Rename.
1848         (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
1849         * gcc/doc/invoke.texi
1850         (vect-max-version-for-alignment-checks): Document.
1851         (vect-max-version-for-alias-checks): Document.
1852         (vect-max-version-checks): Remove.
1853      
1854 2007-08-16  Uros Bizjak  <ubizjak@gmail.com>
1855
1856         * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
1857         the same line as the instruction for all asm dialects.
1858         (*rep_movsi): Ditto.
1859         (*rep_movsi_rex64): Ditto.
1860         (*rep_movqi): Ditto.
1861         (*rep_movqi_rex64): Ditto.
1862         (*rep_stosdi_rex64): Ditto.
1863         (*rep_stossi): Ditto.
1864         (*rep_stossi_rex64): Ditto.
1865         (*rep_stosqi): Ditto.
1866         (*rep_stosqi_rex64): Ditto.
1867         (*cmpstrnqi_nz_1): Ditto.
1868         (*cmpstrnqi_nz_rex_1): Ditto.
1869         (*cmpstrnqi_1): Ditto.
1870         (*cmpstrnqi_rex_1): Ditto.
1871         (*strlenqi_1): Ditto.
1872         (*strlenqi_rex_1): Ditto.
1873         * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
1874         prefix on the same line as the instruction for all asm dialects.
1875         (sync_double_compare_and_swap<mode>): Ditto.
1876         (*sync_double_compare_and_swapdi_pic): Ditto.
1877         (*sync_compare_and_swap_cc<mode>): Ditto.
1878         (sync_double_compare_and_swap_cc<mode>): Ditto.
1879         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
1880         (sync_old_add<mode>): Ditto.
1881         (sync_add<mode>): Ditto.
1882         (sync_sub<mode>): Ditto.
1883         (sync_ior<mode>): Ditto.
1884         (sync_and<mode>): Ditto.
1885         (sync_xor<mode>): Ditto.
1886
1887 2007-08-16  Richard Sandiford  <richard@codesourcery.com>
1888
1889         PR middle-end/32897
1890         * reload.c (find_reloads): Check that the memory returned by
1891         find_reloads_toplev was not the result of forcing a constant
1892         to memory.
1893         (find_reloads_toplev): Always use simplify_gen_subreg to get
1894         the subreg of a constant.  If the result is also a constant,
1895         but not a legitimate one, force it into the constant pool
1896         and reload its address.
1897
1898 2007-08-15  David Edelsohn  <edelsohn@gnu.org>
1899
1900         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
1901         POPCOUNT.
1902
1903 2007-08-15  Daniel Jacobowitz  <dan@codesourcery.com>
1904
1905         * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
1906         directive for the current vector ABI.
1907
1908 2007-08-15  Steve Ellcey  <sje@cup.hp.com>
1909
1910         PR target/32963
1911         * caller-save.c (reg_save_code): Set invalide status on restore code.
1912         
1913 2007-08-15  Diego Novillo  <dnovillo@google.com>
1914
1915         * tree-ssa-alias.c (compute_memory_partitions): Use
1916         alias_bitmap_obstack to allocate bitmaps.
1917         (reset_alias_info): Factor out of init_alias_info.
1918         Mark all name tags not associated to an SSA name for renaming.
1919         (init_alias_info): Call it.
1920         (create_name_tags): Tidy.  Add comments.
1921         (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
1922
1923 2007-08-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1924
1925         * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
1926         scheduler dependencies.
1927
1928 2007-08-15  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1929
1930         * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
1931         "register_operand".
1932         (*iorsi_1_zext): Likewise.
1933         (*iorsi_1_zext_imm): Likewise.
1934         * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
1935         with "rm"/"xm" constraint.
1936         (sse2_vmsqrtv2df2): Likewise.
1937
1938 2007-08-15  Jakub Jelinek  <jakub@redhat.com>
1939
1940         PR middle-end/33074
1941         * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
1942         REG_LIBCALL note.
1943
1944 2007-08-14  Daniel Berlin  <dberlin@dberlin.org>
1945
1946         * tree-pass.h (PROP_pta): Removed.
1947         (TODO_rebuild_alias): New.
1948         (pass_may_alias): Removed.
1949         * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
1950         aliasing if we changed something.
1951         * tree-ssa-alias.c (compute_may_aliases): Make non-static.  Update
1952         SSA internally.
1953         (pass_may_alias): Removed.
1954         (create_structure_vars): Return TODO_rebuild_alias.
1955         * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
1956         * tree-sra.c (tree_sra): Only rebuild aliasing if something
1957         changed.
1958         (tree_sra_early): We never affect aliasing right now.
1959         * tree-flow.h (compute_may_aliases): New prototype.
1960         * passes.c: Remove pass_may_alias from the passes.
1961         (execute_function_todo): Support TODO_rebuild_alias.    
1962
1963 2007-08-14  Kai Tietz  <kai.tietz@onevision.com>
1964
1965         * i386.c: (legitimize_address): Move dllimported variable check
1966         infront of legitimizing pic address of CONST symbols.
1967
1968 2007-08-14  Steve Ellcey  <sje@cup.hp.com>
1969
1970         PR tree-optimization/32941
1971         * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
1972         (goto_queue_cmp): Remove.
1973         (find_goto_replacement): Change search method.
1974         (maybe_record_in_goto_queue): Add assert.
1975         (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
1976         * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
1977
1978 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1979
1980         * alias.c (component_uses_parent_alias_set): Constify.
1981         * alias.h (component_uses_parent_alias_set): Likewise.
1982         * cfgrtl.c (print_rtl_with_bb): Likewise.
1983         * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
1984         mpz_get_double_int): Likewise.
1985         * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
1986         mpz_get_double_int): Likewise.
1987         * expr.c (is_aligning_offset, undefined_operand_subword_p,
1988         mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
1989         Likewise.
1990         * expr.h (safe_from_p): Likewise.
1991         * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
1992         Likewise.
1993         * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
1994         zero_sized_type, goa_lhs_expr_p): Likewise.
1995         * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
1996         * rtl.h (print_rtl_with_bb): Likewise.
1997         * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
1998         * tree-cfg.c (const_first_stmt, const_last_stmt): New.
1999         * tree-flow-inline.h (bb_stmt_list): Constify.
2000         (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
2001         cbsi_stmt): New.
2002         * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
2003         const_first_stmt, const_last_stmt): New.
2004         (block_may_fallthru, empty_block_p): Constify.
2005         * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
2006         EXPR_ONLY_BODY): New.
2007         (expr_first, expr_last, expr_only): Use macro for body.
2008         (const_expr_first, const_expr_last, const_expr_only): New.
2009         * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
2010         ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
2011         ctsi_prev, ctsi_stmt): New.
2012         * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
2013         * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
2014         * tree-ssa-loop-niter.c (loop_only_exit_p,
2015         derive_constant_upper_bound): Likewise.
2016         * tree-ssa-phiopt.c (empty_block_p): Likewise.
2017         * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
2018         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
2019         * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
2020         * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
2021         * tree.c (get_type_static_bounds): Likewise.
2022         * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
2023         (get_type_static_bounds): Constify.
2024
2025 2007-08-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2026
2027         PR target/30315
2028         * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
2029         * config/i386/i386.md (plusminus)(addsub)(SWI): New.
2030         (*<addsub><mode>3_cc_overflow): New.
2031         (*add<mode>3_cconly_overflow): New.
2032         (*sub<mode>3_cconly_overflow): New.
2033         (*<addsub>si3_zext_cc_overflow): New.
2034         * config/i386/predicates.md (fcmov_comparison_operator): Accept
2035         CCCmode for LTU, GTU, LEU and GEU.
2036         (ix86_comparison_operator): Likewise.
2037         (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
2038         * config/i386/i386.c (put_condition_code): Support CCCmode.
2039         (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
2040         or MINUS expressions.
2041
2042 2007-08-14  Andrew Pinski  <pinskia@gmail.com>
2043
2044         PR c/30428
2045         * c-typeck.c (build_binary_op): Disallow vector float types with
2046         BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
2047
2048 2007-08-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
2049
2050         * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
2051         (DEP_KIND): Rename to DEP_TYPE.  Update all uses.
2052         (dep_def): New typedef.
2053         (init_dep_1, sd_debug_dep): Declare functions.
2054         (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
2055         (debug_dep_links): Remove.
2056         (struct _deps_list): New field 'n_links'.
2057         (DEPS_LIST_N_LINKS): New macro.
2058         (FOR_EACH_DEP_LINK): Remove.
2059         (create_deps_list, free_deps_list, delete_deps_list): Remove
2060         declaration.
2061         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
2062         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
2063         (copy_deps_list_change_con, move_dep_link): Ditto.
2064         (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
2065         and 'spec_back_deps'.  New field 'resolved_forw_deps'.  Remove field
2066         'dep_count'.
2067         (INSN_BACK_DEPS): Remove.
2068         (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
2069         New macros.
2070         (INSN_DEP_COUNT): Remove.
2071         (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP.  Fix comments.
2072         (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
2073         Declare global variables.
2074         (deps_pools_are_empty_p, sched_free_deps): Declare functions.
2075         (add_forw_dep, compute_forward_dependences): Remove declarations.
2076         (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
2077         (add_back_forw_dep, delete_back_forw_dep): Ditto.
2078         (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
2079         functions.
2080         (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
2081         New constants.
2082         (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
2083         (sd_list_types_def): New typedef.
2084         (sd_next_list): Declare function.
2085         (struct _sd_iterator): New type.
2086         (sd_iterator_def): New typedef.
2087         (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
2088         functions.
2089         (FOR_EACH_DEP): New cycle wrapper.
2090         (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
2091         Declare functions.
2092         (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
2093         (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
2094         Ditto.
2095
2096         * sched-deps.c (init_dep_1): Make global.
2097         (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
2098         constants.
2099         (dump_dep): New static function.
2100         (dump_dep_flags): New static variable.
2101         (sd_debug_dep): New function.
2102         (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
2103         the list.
2104         (move_dep_link): Use remove_from_deps_list (), instead of
2105         detach_dep_link ().
2106         (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
2107         (dep_link_is_detached_p): New static function.
2108         (deps_obstack, dl_obstack, dn_obstack): Remove.  Use dn_pool, dl_pool
2109         instead.
2110         (dn_pool, dl_pool): New alloc_pools.
2111         (dn_pool_diff, dl_pool_diff): New static variables.
2112         (create_dep_node, delete_dep_node): New static function.
2113         (create_deps_list): Make it static.  Use alloc_pool 'dl_pool'.
2114         (deps_list_empty_p): Make it static.  Use 'n_links' field.
2115         (deps_pools_are_empty_p): New static function.
2116         (alloc_deps_list, delete_deps_list): Remove.
2117         (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
2118         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
2119         (copy_deps_list_change_con): Remove.  Use sd_copy_back_deps () instead.
2120         (forward_dependency_cache): Remove.
2121         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
2122         'back' from the names.  Change signature to use dep_t instead of
2123         equivalent quad.
2124         (add_back_dep): Ditto.  Make global.
2125         (check_dep_status): Rename to check_dep ().
2126         (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
2127         New functions.
2128         (sd_finish_insn): Ditto.
2129         (sd_find_dep_between_no_cache): New static function.
2130         (sd_find_dep_between): New function.
2131         (ask_dependency_caches, set_dependency_caches): New static functions.
2132         (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
2133         (add_or_update_dep_1): Separate pieces of functionality into
2134         ask_dependency_caches (), update_dependency_caches (),
2135         change_spec_dep_to_hard (), update_dep ().
2136         (get_back_and_forw_lists): New static function.
2137         (sd_add_dep): Separate setting of dependency caches into
2138         set_dependency_caches ().
2139         (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
2140         New functions.
2141         (sd_delete_dep): Ditto.
2142         (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
2143         (dump_lists): New static function.
2144         (sd_debug_lists): New debug function.
2145         (delete_all_dependences, fixup_sched_groups): Update to use
2146         sd_* infrastructure.
2147         (sched_analyze_2): Create data-speculative dependency only if
2148         data-speculation is enabled.
2149         (sched_analyze_insn): If insn cannot be speculative, make all its
2150         dependencies non-speculative.
2151         (sched_analyze): Use sd_init_insn ().
2152         (add_forw_dep, compute_forward_dependencies): Remove.
2153         (delete_dep_nodes_in_back_deps): New static function.
2154         (sched_free_deps): New function.
2155         (init_dependency_caches): Init alloc_pools.
2156         (extend_depedency_caches): Update after removing of
2157         forward_dependency_cache.
2158         (free_dependency_caches): Ditto.  Free alloc_pools.
2159         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
2160         (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
2161         Ditto.
2162         (add_back_forw_dep, delete_back_forw_dep): Ditto.
2163         (add_dependence): Use init_dep ().
2164         (get_dep_weak_1): New static function.
2165         (get_dep_weak): Move logic to get_dep_weak_1 ().
2166         (dump_ds): New static function moved from haifa-sched.c:
2167         debug_spec_status ().
2168         (debug_ds): New debug function.
2169         (check_dep_status): Rename to check_dep ().  Update to check whole
2170         dependencies.
2171
2172         * haifa-sched.c (spec_info): Make global.
2173         (added_recovery_block_p): Rename to
2174         'haifa_recovery_block_was_added_during_current_schedule_block_p'.
2175         (haifa_recovery_block_was_added_during_scheduling_p): New variable.
2176         (dep_cost, priority, rank_for_schedule, schedule_insn): Update
2177         to use new interfaces.
2178         (ok_for_early_queue_removal): Ditto.
2179         (schedule_block): Initialize logical uids of insns emitted by the
2180         target.
2181         (sched_init): Initialize new variable.
2182         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
2183         interfaces.
2184         (extend_global): Initialize insn data.
2185         (init_h_i_d): Remove code that is now handled in sd_init_insn ().
2186         (process_insn_forw_deps_be_in_spec): Change signature.  Update to use
2187         new interfaces.
2188         (add_to_speculative_block): Update to use new interfaces.
2189         (create_recovery_block): Set new variables.
2190         (create_check_block_twin, fix_recovery_deps): Update to use new
2191         interfaces.
2192         (sched_insn_is_legitimate_for_speculation_p): New function.
2193         (speculate_insn): Move checking logic to
2194         sched_insn_is_legitimate_for_speculation_p ().
2195         (sched_remove_insn): Finalize sched-deps information of instruction.
2196         (clear_priorities, add_jump_dependencies): Update to use new
2197         interfaces.
2198         (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
2199         
2200         * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
2201         to use new interfaces.
2202         (is_conditionally_protected, is_pfree, is_prisky) Ditto.
2203         (new_ready): Try to use control speculation only if it is available.
2204         (add_branch_dependences): Update to use new interfaces.
2205         (compute_block_backward_dependences): Rename to
2206         compute_block_dependences ().  Call
2207         targetm.sched.dependencies_evaluation_hook ().
2208         (free_block_dependencies): New static function.
2209         (debug_dependencies): Update to use new interfaces.
2210         (schedule_region): Remove separate computation of forward dependencies.
2211         Move call of targetm.sched.dependencies_evaluation_hook () to
2212         compute_block_dependences ().  Free dependencies at the end of
2213         scheduling the region.
2214
2215         * sched-ebb.c (earliest_block_with_similiar_load): Update to use
2216         new interfaces.
2217         (add_deps_for_risky_insns): Ditto.
2218         (schedule_ebb): Remove separate computation of forward dependencies.
2219         Free dependencies at the end of scheduling the ebb.
2220
2221         * ddg.c (create_ddg_dependence): Update to use new interfaces.
2222         (build_intra_loop_deps): Ditto.  Remove separate computation of
2223         forward dependencies.  Free sched-deps dependencies.
2224
2225         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
2226         to use new interfaces.
2227         (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
2228
2229         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
2230         new interfaces.
2231         (is_costly_group): Ditto.
2232
2233 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2234
2235         * alias.c (rtx_equal_for_memref_p): Constify.
2236         * basic-block.h (const_edge, const_basic_block): New.
2237         (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
2238         single_pred_p, single_succ_edge, single_pred_edge, single_succ,
2239         single_pred, maybe_hot_bb_p, probably_cold_bb_p,
2240         probably_never_executed_bb_p, edge_probability_reliable_p,
2241         br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
2242         inside_basic_block_p, control_flow_insn_p, dominated_by_p):
2243         Likewise.
2244         * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
2245         * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
2246         Likewise.
2247         * cfganal.c (flow_active_insn_p, forwarder_block_p,
2248         flow_nodes_print, dfs_enumerate_from): Likewise.
2249         * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
2250         control_flow_insn_p, count_basic_blocks): Likewise.
2251         * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
2252         get_loop_body_with_size, loop_exit_edge_p): Likewise.
2253         * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
2254         average_num_loop_insns, loop_exit_edge_p,
2255         just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
2256         * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
2257         average_num_loop_insns, seq_cost): Likewise.
2258         * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
2259         * dominance.c (dominated_by_p): Likewise.
2260         * emit-rtl.c (validate_subreg): Likewise.
2261         * except.c (can_throw_internal, can_throw_external): Likewise.
2262         * except.h (can_throw_internal, can_throw_external): Likewise.
2263         * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
2264         oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
2265         compute_transp, load_killed_in_block_p, reg_killed_on_edge,
2266         simple_mem, store_ops_ok, load_kills_store, find_loads,
2267         store_killed_in_insn, store_killed_after, store_killed_before,
2268         gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
2269         Likewise.
2270         * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
2271         noce_mem_write_may_trap_or_fault_p): Likewise.
2272         * pointer-set.c (pointer_set_contains, pointer_map_contains):
2273         Likewise.
2274         * pointer-set.h (pointer_set_contains, pointer_map_contains):
2275         Likewise.
2276         * predict.c (can_predict_insn_p, maybe_hot_bb_p,
2277         probably_cold_bb_p, probably_never_executed_bb_p,
2278         edge_probability_reliable_p, br_prob_note_reliable_p,
2279         can_predict_insn_p): Likewise.
2280         * regclass.c (reg_set_to_hard_reg_set): Likewise.
2281         * resource.c (return_insn_p): Likewise.
2282         * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
2283         Likewise.
2284         * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
2285         * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
2286         * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
2287         verify_gimple_modify_stmt): Likewise.
2288         * tree-chrec.c (is_not_constant_evolution,
2289         is_multivariate_chrec_rec, is_multivariate_chrec,
2290         chrec_contains_symbols, chrec_contains_undetermined,
2291         tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
2292         evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
2293         eq_evolutions_p, scev_direction): Likewise.
2294         * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
2295         eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
2296         chrec_contains_symbols_defined_in_loop,
2297         chrec_contains_undetermined, tree_contains_chrecs,
2298         evolution_function_is_affine_multivariate_p,
2299         evolution_function_is_univariate_p, chrec_zerop,
2300         evolution_function_is_constant_p, evolution_function_is_affine_p,
2301         evolution_function_is_affine_or_constant_p,
2302         tree_does_not_contain_chrecs, chrec_type): Likewise.
2303         * tree-data-ref.c (tree_fold_divides_p,
2304         object_address_invariant_in_loop_p, dr_may_alias_p,
2305         ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
2306         same_access_functions, constant_access_functions,
2307         access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
2308         Likewise.
2309         * tree-flow.h (scev_direction): Likewise.
2310         * tree-gimple.c (is_gimple_stmt): Likewise.
2311         * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
2312         Likewise.
2313         * tree-pretty-print.c (op_prio): Likewise.
2314         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
2315         analyzable_condition, backedge_phi_arg_p): Likewise.
2316         * tree-scalar-evolution.h (get_chrec_loop): Likewise.
2317         * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
2318         * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
2319         Likewise.
2320
2321 2007-08-13  Dan Hipschman  <dsh@google.com>
2322
2323         PR c/32953
2324         * c-format.c (check_format_arg): Move check for zero-length
2325         format strings below the check for unterminated strings.
2326
2327 2007-08-13  Andrew Pinski  <pinskia@gmail.com>
2328
2329         PR C/30427
2330         * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
2331         types.
2332
2333 2007-08-13  Nick Clifton  <nickc@redhat.com>
2334
2335         * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
2336
2337 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2338
2339         PR fortran/32860
2340         * c-format.c (gcc_gfc_length_specs): New array.
2341         (gcc_gfc_char_table): Add unsigned specifier, and references to
2342         the l length modifier.
2343         (format_types_orig): Use the new gcc_gfc_length_specs.
2344
2345 2007-08-12  Sa Liu  <saliu@de.ibm.com>
2346
2347         * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
2348         and with REG_RETVAL note after split.
2349
2350 2007-08-11  David Daney  <ddaney@avtrex.com>
2351
2352         * config/mips/mips.c (mips_sched_reorder):  Mark cycle parameter
2353         as ATTRIBUTE_UNUSED.
2354
2355 2007-08-11  David Edelsohn  <edelsohn@gnu.org>
2356             Segher Boessenkool  <segher@kernel.crashing.org>
2357
2358         * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
2359         HAVE_LOCAL_CPU_DETECT not defined.
2360
2361 2007-08-11  Jan Hubicka  <jh@suse.cz>
2362
2363         * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
2364         (cgraph_process_new_functions): Honor previous value of
2365         disregard_inline_limits.
2366         * ipa-inline.c (compute_inline_parameters): Likewise.
2367
2368 2007-08-11  Ian Lance Taylor  <iant@google.com>
2369
2370         * alias.h (alias_set_type): Define new type.
2371         (ALIAS_SET_MEMORY_BARRIER): Use it.
2372         * rtl.h: Include alias.h.
2373         (struct mem_attrs): Use alias_set_type.
2374         * tree.h: Include alias.h
2375         (struct tree_type): Use alias_set_type.
2376         (struct tree_struct_field_tag): Likewise.
2377         (struct tree_decl_common): Likewise.
2378         * alias.c (struct alias_set_entry): Use alias_set_type.
2379         (get_alias_set_entry, alias_set_subset_of): Likewise.
2380         (alias_sets_conflict_p): Likewise.
2381         (alias_sets_must_conflict_p): Likewise.
2382         (objects_must_conflict_p): Likewise.
2383         (get_alias_set, new_alias_set): Likewise.
2384         (record_alias_subset, record_component_aliases): Likewise.
2385         (varargs_set, frame_set): Change to alias_set_type.
2386         (get_varargs_alias_set): Use alias_set_type.
2387         (get_frame_alias_set): Likewise.
2388         * builtins.c (setjmp_alias_set): Change to alias_set_type.
2389         * dse.c (struct store_info): Use alias_set_type.
2390         (struct read_info, struct clear_alias_mode_holder): Likewise.
2391         (clear_alias_set_lookup, canon_address): Likewise.
2392         (record_store, check_mem_read_rtx): Likewise.
2393         (dse_record_singleton_alias_set): Likewise.
2394         (dse_invalidate_singleton_alias_set): Likewise.
2395         * emit-rtl.c (get_mem_attrs): Likewise.
2396         (set_mem_attributes_minus_bitpos): Likewise.
2397         (set_mem_alias_set): Likewise.
2398         * expr.c (store_constructor_field, store_field): Likewise.
2399         * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
2400         * langhooks.c (lhd_get_alias_set): Likewise.
2401         * langhooks-def.h (lhd_get_alias_set): Likewise.
2402         * reload1.c (alter_reg): Likewise.
2403         * tree-flow.h (struct fieldoff): Likewise.
2404         * tree-ssa-alias.c (struct alias_map_d): Likewise.
2405         (may_alias_p, get_smt_for, create_sft): Likewise.
2406         * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
2407         * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
2408         (merge_smts_into): Likewise.
2409         * varasm.c (const_alias_set): Likewise.
2410         * c-common.c (strict_aliasing_warning): Likewise.
2411         (c_common_get_alias_set): Likewise.
2412         * dse.h (dse_record_singleton_alias_set): Update declaration.
2413         (dse_invalidate_singleton_alias_set): Likewise.
2414         * emit-rtl.h (set_mem_alias_set): Likewise.
2415         * c-common.h (c_common_get_alias_set): Likewise.
2416         * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
2417         * print-tree.c (print_node): Likewise.
2418         * config/alpha/alpha.c (alpha_sr_alias_set): Change to
2419         alias_set_type.
2420         (alpha_setup_incoming_varargs): Use alias_set_type.
2421         * config/i386/i386.c (setup_incoming_varargs_64): Use
2422         alias_set_type.
2423         (setup_incoming_varargs_ms_64): Likewise.
2424         (ix86_GOT_alias_set): Likewise.
2425         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
2426         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
2427         (set): Change to alias_set_type.
2428         (get_TOC_alias_set): Use alias_set_type.
2429         * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
2430         declaration.
2431         * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
2432         * config/sparc/sparc.c (sparc_sr_alias_set): Change to
2433         alias_set_type.
2434         (struct_value_alias_set): Likewise.
2435         * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
2436
2437 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
2438
2439         * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
2440         * config/vxworks.h (TARGET_VXWORKS): Override.
2441         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
2442         "mips" if TARGET_VXWORKS.
2443
2444 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
2445
2446         * calls.c (avoid_likely_spilled_reg): New function.
2447         (expand_call): Use it.
2448
2449 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2450
2451         * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
2452
2453 2007-08-10  Adam Nemet  <anemet@caviumnetworks.com>
2454
2455         * config/mips/predicates.md (const_call_insn_operand): Invoke
2456         SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
2457
2458 2007-08-10  David Edelsohn  <edelsohn@gnu.org>
2459
2460         PR target/33042
2461         * config/rs6000/driver-rs6000.c: Include link.h.
2462         Use ElfW instead of wordsize-specif typedef.
2463
2464 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2465
2466         * system.h (CONST_CAST): New.
2467         * c-decl.c (c_make_fname_decl): Use it.
2468         * c-lex.c (cb_ident, lex_string): Likewise.
2469         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
2470         * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
2471         give_switch, set_multilib_dir): Likewise.
2472         * gengtype-parse.c (string_seq, typedef_name): Likewise.
2473         * passes.c (execute_one_pass): Likewise.
2474         * prefix.c (update_path): Likewise.
2475         * pretty-print.c (pp_base_destroy_prefix): Likewise.
2476         * tree.c (build_string): Likewise.
2477
2478 2007-08-10  Aldy Hernandez  <aldyh@redhat.com>
2479
2480         * tree-flow-inline.h (is_exec_stmt): Remove.
2481         (is_label_stmt): Remove.
2482         * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
2483         is_label_stmt.
2484
2485 2007-08-10  Andreas Krebbel  <krebbel1@de.ibm.com>
2486
2487         * lower-subreg.c (resolve_shift_zext): Don't adjust
2488         src_reg_num for wordmode operands.
2489
2490 2007-08-10  Sandra Loosemore  <sandra@codesourcery.com>
2491             David Ung  <davidu@mips.com>
2492
2493         * config/mips/mips.c (TARGET_SCHED_INIT): Define.
2494         (TARGET_SCHED_REORDER2): Define.
2495         (mips_maybe_swap_ready): New.
2496         (mips_last_74k_agen_insn): New.
2497         (mips_74k_agen_init): New.
2498         (mips_74k_agen_reorder): New function to group loads and stores
2499         in the ready queue.
2500         (mips_sched_init): New.  
2501         (mips_sched_reorder): Don't do initialization here.  Call
2502         mips_74k_agen_reorder.
2503         (mips_variable_issue): Call mips_74k_agen_init.
2504
2505 2007-08-10  Aldy Hernandez  <aldyh@redhat.com>
2506
2507         * tree-flow-inline.h (get_filename): Remove.
2508
2509 2007-08-10  Richard Sandiford  <richard@codesourcery.com>
2510
2511         * config/mips/mips-protos.h (mips_address_insns): Add a boolean
2512         argument.
2513         (mips_fetch_insns): Delete in favor of...
2514         (mips_load_store_insns): ...this new function.
2515         * config/mips/mips.c (mips_address_insns): Add a boolean argument
2516         to say whether multiword moves _might_ be split.
2517         (mips_fetch_insns): Delete in favor of...
2518         (mips_load_store_insns): ...this new function.
2519         (mips_rtx_costs): Update the call to mips_address_insns.
2520         (mips_address_cost): Likewise.
2521         * config/mips/mips.md (length): Use mips_load_store_insns instead
2522         of mips_fetch_insns.
2523         * config/mips/constraints.md (R): Use mips_address_insns rather
2524         than mips_fetch_insns.  Assume that the move never needs to be split.
2525
2526 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
2527
2528         * config/mips/mips.opt (mhard-float, msoft-float):  Make these
2529         control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
2530         than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.  
2531         * config/mips/mips.h (mips16_hard_float): Delete.
2532         (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI):  Delete these
2533         definitions, and replace with....
2534         (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
2535         * config/mips/mips.c (mips16_hard_float): Delete.  Replace
2536         all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
2537         (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
2538         (override_options):  Replace MASK_SOFT_FLOAT references with
2539         MASK_SOFT_FLOAT_ABI.  Delete twiddling with MASK_SOFT_FLOAT
2540         and mips16_hard_float when TARGET_MIPS16.
2541         
2542 2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2543
2544         PR c/32796
2545         * c-typeck.c (build_binary_op): Check for non pointer types before
2546         calling int_fits_type_p.
2547
2548 2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2549
2550         PR middle-end/32813
2551         * fold-const.c (omit_one_operand): Return only the ommitted expression
2552         if the result is an empty statement.
2553         (pedantic_omit_one_operand): Likewise.
2554
2555 2007-08-09  Daniel Berlin  <dberlin@dberlin.org>
2556
2557         * c-typeck.c (readonly_error): Improve error for assignment.
2558         
2559         * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
2560         expression. 
2561         (pp_c_expression): Ditto.
2562
2563 2007-08-09  Simon Baldwin  <simonb@google.com>
2564
2565         * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
2566         break that was preventing simplify_associative_operation() for xor.
2567
2568 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
2569             Nigel Stephens  <nigel@mips.com>
2570
2571         * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
2572         Document change in interpretation of value from boolean to
2573         tri-state integer.
2574         * optabs.c (expand_ffs, expand_ctz): New functions to compute
2575         ffs and ctz using clz.
2576         (expand_unop):  Call them.
2577         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
2578         result value.
2579         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2580         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
2581         enable the new ffs expansion on this target.
2582
2583 2007-08-09  Jan Hubicka  <jh@suse.cz>
2584
2585         * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
2586         (expand_ternary_op): Likewise.
2587         (expand_vec_shift_expr): Likewise.
2588         (expand_binop_directly): Likewise.
2589         (expand_binop): Likewise.
2590         (sign_expand_binop): Likewise.
2591         (expand_twoval_unop): Likewise.
2592         (expand_twoval_binop): Likewise.
2593         (expand_twoval_binop_libfunc): Likewise.
2594         (widen_clz): Likewise.
2595         (widen_bswap): Likewise.
2596         (expand_parity): Likewise.
2597         (expand_unop): Likewise.
2598         (expand_abs_nojump): Likewise.
2599         (expand_copysign): Likewise.
2600         (emit_no_conflict_block): Likewise.
2601         (emit_libcall_block): Likewise.
2602         (can_compare_p): Likewise.
2603         (prepare_cmp_insn): Likewise.
2604         (emit_cmp_and_jump_insn_1): Likewise.
2605         (prepare_float_lib_cmp): Likewise.
2606         (emit_conditional_add): Likewise.
2607         (gen_add2_insn): Likewise.
2608         (have_add2_insn): Likewise.
2609         (gen_sub2_insn): Likewise.
2610         (have_sub2_insn): Likewise.
2611         (can_extend_p): Likewise.
2612         (can_fix_p): Likewise.
2613         (can_float_p): Likewise.
2614         (expand_float): Likewise.
2615         (expand_fix): Likewise.
2616         (expand_sfix_optab): Likewise.
2617         (new_optab): Likewise.
2618         (new_convert_optab): Likewise.
2619         (init_libfuncs): Likewise.
2620         (init_interclass_conv_libfuncs): Likewise.
2621         (init_intraclass_conv_libfuncs): Likewise.
2622         (set_conv_libfunc): Likewise.
2623         (init_optabs): Likewise.
2624         (debug_optab_libfuncs): Likewise.
2625         (gen_cond_trap): Likewise.
2626         * optabs.h (optab_handler, convert_optab_hanlder): New.
2627         * genopinit.c: Update optabs generation table.
2628         * reload.c (find_reloads_address_1): Use optabs accestors.
2629         * builtins.c (expand_builtin_mathfn): Likewise.
2630         (expand_builtin_mathfn_2): Likewise.
2631         (expand_builtin_mathfn_3): Likewise.
2632         (expand_builtin_interclass_mathfn): Likewise.
2633         (expand_builtin_sincos): Likewise.
2634         (expand_builtin_cexpi): Likewise.
2635         (expand_builtin_powi): Likewise.
2636         (expand_builtin_strlen): Likewise.
2637         * dojump.c (do_jump): Likewise.
2638         * expr.c (convert_move): Likewise.
2639         (move_by_pieces): Likewise.
2640         (move_by_pieces_ninsns): Likewise.
2641         (can_store_by_pieces): Likewise.
2642         (store_by_pieces_1): Likewise.
2643         (emit_move_via_integer): Likewise.
2644         (emit_move_complex): Likewise.
2645         (emit_move_ccmode): Likewise.
2646         (emit_move_insn_1): Likewise.
2647         (emit_single_push_insn): Likewise.
2648         (store_constructor): Likewise.
2649         (expand_expr_real_1): Likewise.
2650         (do_store_flag): Likewise.
2651         * ada/misc.c (gnat_compute_largest_alignment): Likewise.
2652         (enumerate_modes): Likewise.
2653         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2654         (supportable_widening_operation): Likewise.
2655         (supportable_narrowing_operation): Likewise.
2656         * expmed.c (store_bit_field_1): Likewise.
2657         (extract_bit_field_1): Likewise.
2658         (expand_mult_highpart_optab): Likewise.
2659         (expand_smod_pow2): Likewise.
2660         (expand_divmod): Likewise.
2661         (emit_store_flag): Likewise.
2662         * tree-vect-patterns.c
2663         (vect_pattern_recog_1): Likewise.
2664         * tree-ssa-loop-prefetch.c
2665         (nontemporal_store_p): Likewise.
2666         * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
2667         (vect_create_epilog_for_reduction): Likewise.
2668         (vectorizable_reduction): Likewise.
2669         (vectorizable_operation): Likewise.
2670         (vect_strided_store_supported): Likewise.
2671         (vectorizable_store): Likewise.
2672         (vect_strided_load_supported): Likewise.
2673         (vectorizable_load): Likewise.
2674         * combine.c (simplify_comparison): Likewise.
2675         * tree-vect-generic.c
2676         (type_for_widest_vector_mode): Likewise.
2677         (expand_vector_operations_1): Likewise.
2678         * config/spu/spu.c (spu_expand_mov): Likewise.
2679         (spu_emit_vector_compare): Likewise.
2680         * config/rs6000/rs6000.c
2681         (rs6000_emit_vector_compare): Likewise.
2682         * stmt.c (add_case_node): Likewise.
2683         * reload1.c (gen_reload):
2684
2685 2007-08-09  Michael Matz  <matz@suse.de>
2686
2687         * tree.h (fixed_zerop): Declare as taking a const_tree.
2688         * tree.c (fixed_zerop): Take a const_tree.
2689
2690 2007-08-09  Ira Rosen  <irar@il.ibm.com>
2691
2692         * tree-vect-transform.c (vectorizable_store): Remove call to
2693         copy_virtual_operands() and call mark_symbols_for_renaming() for
2694         the created vector store.
2695         (vect_setup_realignment): Don't call copy_virtual_operands() and
2696         update_vuses_to_preheader(). 
2697         (vectorizable_load): Don't call copy_virtual_operands(). 
2698         (update_vuses_to_preheader): Remove.
2699
2700 2007-08-08  Chao-ying Fu  <fu@mips.com>
2701
2702         * tree.def (FIXED_POINT_TYPE): New type.
2703         (FIXED_CST): New constant.
2704         (FIXED_CONVERT_EXPR): New expr.
2705         * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
2706         (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
2707         * tree.h (struct tree_base): Add saturating_flag.
2708         Remove one bit of spare for saturating_flag.
2709         (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
2710         (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
2711         FIXED_POINT_TYPE_P): Define.
2712         (TYPE_SATURATING): Define.
2713         (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
2714         (struct tree_fixed_cst): New.
2715         (TYPE_IBIT, TYPE_FBIT): Define.
2716         (tree_node): Add fixed_cst.
2717         (enum tree_index): Add new enumeration values of
2718         TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
2719         TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
2720         TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
2721         TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
2722         TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
2723         TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
2724         TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
2725         TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
2726         TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
2727         TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
2728         TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
2729         TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
2730         TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
2731         TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
2732         TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
2733         TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
2734         TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
2735         TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
2736         (sat_short_fract_type_node, sat_fract_type_node,
2737         sat_long_fract_type_node, sat_long_long_fract_type_node,
2738         sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
2739         sat_unsigned_long_fract_type_node,
2740         sat_unsigned_long_long_fract_type_node, short_fract_type_node,
2741         fract_type_node, long_fract_type_node, long_long_fract_type_node,
2742         unsigned_short_fract_type_node, unsigned_fract_type_node,
2743         unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
2744         sat_short_accum_type_node, sat_accum_type_node,
2745         sat_long_accum_type_node, sat_long_long_accum_type_node,
2746         sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
2747         sat_unsigned_long_accum_type_node,
2748         sat_unsigned_long_long_accum_type_node, short_accum_type_node,
2749         accum_type_node, long_accum_type_node, long_long_accum_type_node,
2750         unsigned_short_accum_type_node, unsigned_accum_type_node,
2751         unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
2752         qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
2753         uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
2754         utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
2755         sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
2756         sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
2757         sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
2758         ta_type_node, uha_type_node, usa_type_node, uda_type_node,
2759         uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
2760         sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
2761         sat_uda_type_node, sat_uta_type_node): New macro.
2762         (make_fract_type, make_accum_type): Declare.
2763         (make_signed_fract_type, make_unsigned_fract_type,
2764         make_sat_signed_fract_type, make_sat_unsigned_fract_type,
2765         make_signed_accum_type, make_unsigned_accum_type,
2766         make_sat_signed_accum_type, make_sat_unsigned_accum_type,
2767         make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
2768         make_or_reuse_sat_signed_fract_type,
2769         make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
2770         make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
2771         make_or_reuse_sat_unsigned_accum_type): New macro.
2772         (fixed_zerop): Declare.
2773         * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
2774         LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
2775         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
2776         LONG_LONG_ACCUM_TYPE_SIZE): Define.
2777         * treestruct.def: Add TS_FIXED_CST.
2778         * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
2779         (tree.o): Likewise.
2780         (tree-dump.o): Likewise.
2781         (print-tree.o): Likewise.
2782         (tree-pretty-print.o): Likewise.
2783         (fold-const.o): Likewise.
2784         * tree-complex.c (some_nonzerop): Handle FIXED_CST.
2785         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
2786         (is_gimple_min_invariant): Handle FIXED_CST.
2787         * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
2788         MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
2789         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2790         (layout_type): Handle FIXED_POINT_TYPE.
2791         (make_fract_type, make_accum_type): New functions.
2792         * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
2793         * tree-dump.c (fixed-value.h): New include.
2794         (dump_fixed): New function.
2795         (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
2796         * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
2797         (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
2798         * tree-pretty-print.c (fixed-value.h): New include.
2799         (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
2800         FIXED_CONVERT_EXPR.
2801         * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
2802         * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
2803         * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
2804         * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
2805         for non-saturating fixed-point types.
2806         (reassociate_bb): Likewise.
2807         * emit-rtl.c (fixed-value.h): New include.
2808         (fconst0, fconst1): New array.
2809         (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
2810         * tree-vect-generic.c expand_vector_operation): Support
2811         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
2812         MODE_VECTOR_UACCUM.
2813         (type_for_widest_vector_mode): Add one parameter for the 
2814         saturating flag.
2815         Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
2816         vector mode.
2817         Pass the satp parameter to type_for_mode for fixed-point types.
2818         (expand_vector_operations_1): Pass the saturating flag to
2819         type_for_widest_vector_mode.
2820         Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
2821         and MODE_VECTOR_UACCUM.
2822         * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
2823         (vectorizable_condition): Likewise.
2824         * tree.c (fixed-value.h): New include.
2825         (tree_code_size): Support FIXED_CST.
2826         (build_fixed): New function.
2827         (build_one_cst): Support FIXED_POINT_TYPE for accum types.
2828         (fixed_zerop): New function.
2829         (tree_node_structure): Support FIXED_CST.
2830         (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
2831         (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
2832         (type_hash_eq): Handle FIXED_POINT_TYPE.
2833         (simple_cst_equal): Support FIXED_CST.
2834         (iterative_hash_expr): Handle FIXED_CST.
2835         (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
2836         (get_narrower): Likewise.
2837         (variably_modified_type_p): Handle FIXED_POINT_TYPE.
2838         (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
2839         (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
2840         MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
2841         nodes.
2842         (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
2843         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2844         (initializer_zerop): Support FIXED_CST.
2845         (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
2846         * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
2847         DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
2848         (is_base_type): Handle FIXED_POINT_TYPE.
2849         (add_type_attribute): Handle FIXED_POINT_TYPE.
2850         (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
2851         * print-tree.c (fixed-value.h): New include.
2852         (print_node_brief): Support FIXED_CST.
2853         (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
2854         * c-pretty-print.c (fixed-value.h): New include.
2855         (pp_c_type_specifier): Handle FIXED_POINT_TYPE.  Need to pass
2856         TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
2857         (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
2858         Support fixed-point types for inner items in VECTOR_TYPE.
2859         (pp_c_direct_declarator): Likewise.
2860         (pp_c_declarator): Likewise.
2861         (pp_c_fixed_constant): New function.
2862         (pp_c_constant): Handle FIXED_CST.
2863         (pp_c_primary_expression): Likewise.
2864         (pp_c_expression): Likewise.
2865         * fold-const.c (fixed-value.h): New include.
2866         (negate_expr_p): Return true for FIXED_CST.
2867         (fold_negate_expr): Support FIXED_CST.
2868         (split_tree): Support FIXED_CST.
2869         (const_binop): Support FIXED_CST.
2870         (fold_convert_const_int_from_fixed): New function to convert from
2871         fixed to int.
2872         (fold_convert_const_real_from_fixed): New function to convert from
2873         fixed to real.
2874         (fold_convert_const_fixed_from_fixed): New function to convert from
2875         fixed to another fixed.
2876         (fold_convert_const_fixed_from_int): New function to convert from
2877         int to fixed.
2878         (fold_convert_const_fixed_from_real): New function to convert from
2879         real to fixed.
2880         (fold_convert_const): Support conversions from fixed to int, from
2881         fixed to real, from fixed to fixed, from int to fixed, and from real
2882         to fixed.
2883         (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
2884         (operand_equal_p): Support FIXED_CST.
2885         (make_range): For fixed-point modes, we need to pass the
2886         saturating flag as the 2nd parameter.
2887         (tree_swap_operands_p): Handle FIXED_CST.
2888         (fold_plusminus_mult_expr): For fract modes, we cannot generate
2889         constant 1.
2890         (fold_unary): Support FIXED_CONVERT_EXPR.
2891         (fold_binary): Handle FIXED_CST.
2892         Make sure the type is not saturating, before associating operations.
2893         Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
2894         (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
2895         (fold_negate_const): Support FIXED_CST.
2896         (fold_relational_const): Support FIXED_CST.
2897         * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
2898         (gimplify_expr): Handle FIXED_CST.
2899         (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
2900         * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
2901         * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
2902         * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
2903         FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
2904         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
2905         LONG_LONG_ACCUM_TYPE_SIZE.
2906         * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
2907         * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
2908         * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
2909         * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
2910         MODE_ACCUM, and MODE_UACCUM.
2911         * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
2912         fixed-point types to disable reduction.
2913         * explow.c (promote_mode): Support FIXED_POINT_TYPE.
2914
2915 2007-08-08  David Edelsohn  <edelsohn@gnu.org>
2916
2917         * config/rs6000/x-rs6000: New file.
2918         * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
2919         * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
2920         (EXTRA_SPEC_FUNCTIONS): Define.
2921         (HAVE_LOCAL_CPU_DETECT): Define.
2922         (CC1_CPU_SPEC): Define.
2923         * config/rs6000/driver-rs6000.c: New file.
2924         * config/rs6000/aix.h (CC1_SPEC): Define.
2925         * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
2926         * config.host: Add x-rs6000 to host_xmake_file if host and target
2927         are rs6000 or powerpc.
2928
2929 2007-08-08  Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
2930
2931         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
2932
2933 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
2934             Sandra Loosemore  <sandra@codesourcery.com>
2935             Chao-ying Fu  <fu@mips.com>
2936             Nigel Stephens  <nigel@mips.com>
2937             David Ung  <davidu@mips.com>
2938
2939         * doc/invoke.texi (-mcode-readable): Document.
2940         * config/mips/mips.opt (mcode-readable): New option.
2941         * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
2942         * config/mips/mips.h (mips_code_readable_setting): New enum.
2943         (mips_code_readable): Declare.
2944         (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
2945         (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
2946         (JUMP_TABLES_IN_TEXT_SECTION): Use it.
2947         (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise.  Remove
2948         boiler-plate comments.
2949         (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
2950         * config/mips/mips.c (mips_code_readable): New variable.
2951         (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
2952         MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES.  Use both the
2953         context and -mcode-readable setting to restrict the use of
2954         SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
2955         Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
2956         (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
2957         (mips_blocks_for_constant_p): Only return false for
2958         TARGET_MIPS16_PCREL_LOADS.
2959         (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
2960         for MIPS16.  Handle SYMBOL_32_HIGH.
2961         (mips_const_insns): Allow HIGHs for MIPS16 too.
2962         (mips_unspec_address_offset): New function, split out from...
2963         (mips_unspec_address): ...here.
2964         (mips_output_move): Handle MIPS16 HIGH moves.  Use "li" to load
2965         16-bit symbolic constants.  Assert approropiate conditions for
2966         using the "la" and "dla" macros.
2967         (mips_handle_option): Handle -mcode-readable=.
2968         (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
2969         Set up mips_lo_relocs[SYMBOL_32_HIGH].
2970         (mips_strip_unspec_address): New function, split out from...
2971         (print_operand_reloc): ...here.
2972         (print_operand): Pass constants through mips_strip_unspec_address.
2973         (print_operand_address): Likewise.
2974         (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
2975         (mips_select_rtx_section): Remove MIPS16 handling.
2976         (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
2977         (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
2978         (mips16_lay_out_constants): Do nothing unless
2979         TARGET_MIPS16_PCREL_LOADS.
2980         (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
2981         * config/mips/mips.md: Split HIGHs for MIPS16.
2982         (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
2983
2984 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
2985
2986         * config/mips/mips-protos.h (mips_emit_move): Declare.
2987         * config/mips/mips.c (mips_emit_move): New function.
2988         (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
2989         (mips_legitimize_const_move): Likewise.
2990         (mips_legitimize_move): Likewise.
2991         (mips_split_64bit_move): Likewise.
2992         (mips_restore_gp): Likewise.
2993         (mips_load_call_address): Likewise.
2994         (mips_emit_fcc_reload): Likewise.
2995         (mips_set_return_address): Likewise.
2996         (mips_block_move_straight): Likewise.
2997         (mips_block_move_loop): Likewise.
2998         (mips_setup_incoming_varargs): Likewise.
2999         (mips_save_reg): Likewise.
3000         (mips_expand_prologue): Likewise.
3001         (mips_restore_reg): Likewise.
3002         (mips_expand_epilogue): Likewise.
3003         (mips_output_mi_thunk): Likewise.
3004         (build_mips16_call_stub): Likewise.
3005         (mips_builtin_branch_and_move): Likewise.
3006         * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
3007         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
3008         (fixuns_truncdfdi2): Likewise.
3009         (fixuns_truncsfsi2): Likewise.
3010         (fixuns_truncsfdi2): Likewise.
3011         (loadgp_absolute): Likewise.
3012         (builtin_setjmp_setup): Likewise.
3013         (builtin_longjmp): Likewise.
3014         (untyped_call): Likewise.
3015
3016 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
3017
3018         * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
3019         an "rtx *" argument.  Return a bool.
3020         * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
3021         values and return true if they can be split.  Take the same kind of
3022         mode argument as mips_symbol_insns.  Add a "lo_sum_out" parameter
3023         and store the lo_sum there if nonnull.  Use the symbol type to
3024         determine whether a $gp or HIGH is needed.
3025         (mips_legitimize_address): Update call to mips_split_symbol and
3026         simplify accordingly.
3027         (mips_legitimize_const_move): Likewise.
3028         * config/mips/mips.md: In the combine define_split,
3029         check mips_split_symbol instead of splittable_symbolic_operand.
3030         Update use of mips_split_symbol in the generator code.
3031         * config/mips/predicates.md (splittable_symbolic_operand): Delete.
3032
3033 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
3034
3035         * config/mips/mips.c (mips_symbolic_address_p): Delete.
3036         (mips_symbol_insns_1): New function, split out from...
3037         (mips_symbol_insns): ...here.  Take a mode argument.  Treat loads
3038         and stores separately from load addresses.
3039         (mips_classify_address): Replace uses of mips_symbolic_address_p
3040         with uses of mips_symbol_insns.
3041         (mips_address_insns): Update calls to mips_symbol_insns.
3042         (mips_const_insns): Likewise.
3043         (mips_legitimize_address): Likewise.
3044
3045 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
3046
3047         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
3048         * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
3049         block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
3050         Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
3051         non-call contexts if TARGET_MIPS16.
3052         (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
3053         (mips_symbolic_address_p): Likewise.  Remove special TARGET_MIPS16
3054         code for SYMBOL_ABSOLUTE.
3055         (mips_symbol_insns): Likewise.
3056
3057 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
3058
3059         * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
3060         * config/mips/mips.c (mips_classify_symbol): Take a context argument.
3061         (mips_symbolic_constant_p): Likewise.  Update the call to
3062         mips_classify_symbol.
3063         (mips_classify_address): Update the calls to mips_symbolic_constant_p.
3064         (mips_const_insns): Likewise.  Update the call to mips_classify_symbol.
3065         (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
3066         (print_operand_reloc): Add a context argument.  Update the call to
3067         mips_symbolic_constant_p.
3068         (print_operand): Update the calls to print_operand_reloc.
3069         (print_operand_address): Use print_operand_reloc rather than
3070         print_operand.
3071         (mips_rewrite_small_data_p): Add a context argument.  Update the call
3072         to mips_symbolic_constant_p.
3073         (mips_small_data_pattern_1): Make DATA the containing mem.
3074         Update the call to mips_rewrite_small_data_p.
3075         (mips_rewrite_small_data_1): Likewise.
3076         (mips_use_anchors_for_symbol_p): Update the call to
3077         mips_symbolic_constant_p.
3078         * config/mips/predicates.md (const_call_insn_operand): Likewise.
3079         (splittable_symbolic_operand): Likewise.
3080         (move_operand): Likewise.
3081         (absolute_symbolic_operand): Likewise.
3082         (got_disp_operand): Likewise.
3083         (got_page_ofst_operand): Likewise.
3084
3085 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
3086
3087         * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
3088         (SYMBOL_ABSOLUTE): ...this.
3089         (SYMBOL_SMALL_DATA): Rename to...
3090         (SYMBOL_GP_RELATIVE): ...this.
3091         (SYMBOL_CONSTANT_POOL): Rename to...
3092         (SYMBOL_PC_RELATIVE): ...this.
3093         * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
3094         (mips_symbolic_address_p, mips_symbol_insns, override_options)
3095         (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
3096         after above changes.
3097         * config/mips/predicates.md (const_call_insn_operand): Likewise.
3098         (general_symbolic_operand): Rename to...
3099         (absolute_symbolic_operand): ...this.
3100         * config/mips/mips.md: Update after above changes.
3101
3102 2007-08-08  Vladimir Yanovsky  <yanov@il.ibm.com>
3103             Revital Eres  <eres@il.ibm.com>
3104
3105         * ddg.c (print_ddg): Add dump information.
3106         * modulo-sched.c (print_node_sched_params): Add parameter and
3107         verbosity.
3108         (calculate_maxii): Remove function.
3109         (undo_generate_reg_moves): Likewise.
3110         (undo_permute_partial_schedule): Likewise.
3111         (kernel_number_of_cycles): Likewise.
3112         (MAXII_FACTOR): New definition to calculate the upper bound of II.
3113         (sms_schedule): Use it.  Remove profitability checks.
3114         (sms_schedule_by_order): Fix order of nodes within the cycle.
3115
3116 2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
3117
3118         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
3119         -profile option, add pie support.
3120         (ENDFILE_SPEC): New spec.
3121         * config/gnu.h (LIB_SPEC): Add -profile option.
3122
3123 2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
3124
3125         * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
3126         * config/gnu.h (LIB_SPEC): Likewise.
3127
3128 2007-08-07  Yaz Saito  <saito@google.com>
3129             Ian Lance Taylor  <iant@google.com>
3130
3131         * common.opt (finstrument-functions-exclude-function-list): New
3132         option.
3133         (finstrument-functions-exclude-file-list): New option.
3134         * opts.c (char_p): Define and DEF_VEC.
3135         (flag_instrument_functions_exclude_functions): New static
3136         variable.
3137         (flag_instrument_functions_exclude_files): New static variable.
3138         (add_instrument_functions_exclude_list): New static function.
3139         (flag_instrument_functions_exclude_p): New function.
3140         (common_handle_option): Handle new options.
3141         * flags.h (flag_instrument_functions_exclude_p): Declare.
3142         * gimplify.c (gimplify_function_tree): Call
3143         flag_instrument_functions_exclude_p.
3144         * doc/invoke.texi (Option Summary): Mention new options.
3145         (Code Gen Options): Document new options.
3146
3147 2007-08-07  Ian Lance Taylor  <iant@google.com>
3148
3149         PR rtl-optimization/32776
3150         * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
3151         (resolve_use): Likewise.
3152         (decompose_multiword_subregs): Remove "changed" local variable.
3153
3154 2007-08-07  Carlos O'Donell  <carlos@codesourcery.com>
3155
3156         * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
3157         * configure: Regenerate.
3158         * config.in: Regenerate.
3159         * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
3160         spec string.
3161
3162 2007-08-07  Ian Lance Taylor  <iant@google.com>
3163
3164         * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
3165         note, just delete the insn.
3166
3167 2007-08-07  Andreas Schwab  <schwab@suse.de>
3168
3169         PR bootstrap/32973
3170         * gengtype-lex.l: Ignore backslash/newline pair while scanning a
3171         struct definition.
3172
3173 2007-08-07  Andreas Krebbel  <krebbel1@de.ibm.com>
3174
3175         * lower-subreg.c (resolve_subreg_use): Remove assertion.
3176         (find_decomposable_shift_zext, resolve_shift_zext): New functions.
3177         (decompose_multiword_subregs): Use the functions above to decompose
3178         multiword shifts and zero-extends.
3179
3180 2007-08-07  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3181
3182         * doc/sourcebuild.texi (Test Directives): Fix "compile" and
3183         "assemble" descriptions which were swapped.
3184
3185 2007-08-06  Chao-ying Fu  <fu@mips.com>
3186
3187         * fixed-value.h: New file.
3188         * fixed-value.c: New file.
3189         * Makefile.in (OBJS-common): Add fixed-value.o.
3190         (fixed-value.o): New rule.
3191         (GTFILES): Add fixed-value.h.
3192         * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
3193         to compare a.low and b.low.
3194         * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
3195
3196 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3197             Daniel Jacobowitz  <dan@codesourcery.com>
3198
3199         PR target/31868
3200         * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
3201         tmake_file.
3202         (x86_64-*-netbsd*): Likewise.
3203         (x86_64-*-linux*): Likewise.
3204         (x86_64-*-kfreebsd*-gnu): Likewise.
3205         (x86_64-*-knetbsd*-gnu): Likewise.
3206         (i[34567]86-*-solaris2.1[0-9]*): Likewise.
3207
3208         * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
3209
3210         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
3211         Add -fno-asynchronous-unwind-tables.
3212
3213         * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
3214         * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
3215         * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
3216         * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
3217         * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
3218
3219 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
3220
3221         * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
3222         (TARGET_C_MODE_FOR_SUFFIX): New.
3223
3224 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
3225
3226         * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
3227
3228 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
3229
3230         * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
3231
3232 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3233
3234         * config/i386/i386.md: Check TARGET_ macros and optimize_size
3235         before checking function returns in conditional expressions.
3236
3237 2007-08-06  Alfred Minarik  <a.minarik@aon.at>
3238
3239         PR pch/13676
3240         * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
3241
3242 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3243
3244         PR middle-end/32988
3245         * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
3246         for INTEGRAL_TYPE_P.
3247
3248 2008-08-05  Paolo Bonzini  <bonzini@gnu.org>
3249
3250         * configure.ac: Remove --enable-checking=df from default settings.
3251         * tree-pass.h (TODO_df_verify): New.  Shift TODO_mark_first_instance.
3252         * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
3253         if the parameter is true.
3254         (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
3255         DF_VERIFY_SCHEDULED flag is true.
3256         * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
3257         (df_finish_pass): Adjust prototype.
3258         * passes.c (execute_todo): Schedule verification if TODO_df_verify is
3259         true.
3260
3261         * see.c (pass_see): Add TODO_df_verify.
3262         * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
3263         * global.c (rest_of_handle_global_alloc): Schedule verification
3264         after the pass.
3265         * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
3266         before the pass.
3267         * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
3268         * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
3269         * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
3270
3271         * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
3272         * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
3273         * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
3274
3275 2007-08-05  Vladimir Yanovsky  <yanov@il.ibm.com>
3276             Revital Eres <eres@il.ibm.com>
3277
3278         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
3279         flag.
3280         * ddg.c (create_ddg_dependence): Rename to...
3281         (create_ddg_dep_from_intra_loop_link): This.  Do not check
3282         for interloop edges.  Do not create anti dependence edge when
3283         a true dependence edge exists in the opposite direction and
3284         -fmodulo-sched-allow-regmoves is set.
3285         (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
3286         (add_cross_iteration_register_deps): Create anti dependence edge
3287         when -fno-modulo-sched-allow-regmoves is set.
3288         * common.opt (-fmodulo-sched-allow-regmoves): New flag.
3289
3290 2007-08-04  Richard Sandiford  <richard@codesourcery.com>
3291
3292         * config/arm/arm.md (movsi): Add braces.
3293
3294 2007-08-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3295
3296         PR middle-end/32780
3297         * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of
3298         operands for the folding of "A - (A & B)" into "~B & A"; cast them
3299         to type.
3300
3301 2007-08-03  Zdenek Dvorak  <ook@ucw.cz>
3302
3303         * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops'
3304         state accessor functions.
3305         * cfgloopmanip.c (remove_path, create_preheaders,
3306         force_single_succ_latches, fix_loop_structure): Ditto.
3307         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
3308         tree_duplicate_loop_to_header_edge): Ditto.
3309         * cfgloopanal.c (mark_irreducible_loops): Ditto.
3310         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
3311         Ditto.
3312         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
3313         cleanup_tree_cfg): Ditto.
3314         * tree-cfg.c (tree_merge_blocks): Ditto.
3315         * cfgloop.c (rescan_loop_exit, record_loop_exits,
3316         release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
3317         loop_preheader_edge, single_exit): Ditto.
3318         (flow_loops_find): Do not clear loops->state.
3319         * cfgloop.h (loops_state_satisfies_p, loops_state_set,
3320         loops_state_clear): New functions.
3321
3322 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3323
3324         PR middle-end/32399
3325         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
3326         when adding to the base and convert ELT to sizetype instead of type.
3327
3328 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3329
3330         PR middle-end/32304
3331         * ipa-reference.c (has_proper_scope_for_analysis): Return false when
3332         the decl's type has TYPE_NEEDS_CONSTRUCTING set.
3333
3334 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3335
3336         PR middle-end/32935
3337         * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
3338          correct type the negate expression.
3339
3340 2007-08-03  Jan Hubicka  <jh@suse.cz>
3341
3342         * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred