OSDN Git Service

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