OSDN Git Service

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