OSDN Git Service

2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * Makefile.in (REVISION): New.
4         (REVISION_c): New.
5         (REVISION_s): New.
6         (version.o): Also depend on $(REVISION). Add
7         -DREVISION=$(REVISION_s).
8
9         * version.c (version_string): Add REVISION.
10
11 2007-08-16  Seongbae Park <seongbae.park@gmail.com>
12
13         * tree-eh.c (lower_try_finally_onedest): Reset the locus
14         of GOTO that's relocated to a different block.
15
16 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17
18         * c-common.c (const_strip_array_types): New.
19         * c-common.h (lang_missing_noreturn_ok_p): Delete.
20         (const_strip_array_types): New.
21         * c-objc-common.c (c_disregard_inline_limits,
22         c_warn_unused_global_decl): Constify.
23         * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
24         c_vla_type_p, c_incomplete_type_error): Likewise.
25         * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
26         * hooks.c (hook_bool_const_tree_false): New.
27         * hooks.h (hook_bool_const_tree_false): Likewise.
28         * langhooks-def.h (lhd_warn_unused_global_decl,
29         lhd_incomplete_type_error, lhd_expr_size,
30         lhd_tree_inlining_disregard_inline_limits,
31         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
32         LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
33         * langhooks.c (lhd_warn_unused_global_decl,
34         lhd_incomplete_type_error,
35         lhd_tree_inlining_disregard_inline_limits,
36         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
37         lhd_expr_size): Likewise.
38         * langhooks.h (lang_hooks_for_tree_inlining,
39         lang_hooks_for_tree_dump, lang_hooks_for_types,
40         lang_hooks_for_decls, lang_hooks): Likewise.
41         * pointer-set.c (pointer_set_t, pointer_set_create,
42         pointer_set_contains, insert_aux, pointer_set_insert,
43         pointer_set_traverse, pointer_map_t, pointer_map_create,
44         pointer_map_contains, pointer_map_insert, pointer_map_traverse):
45         Likewise.
46         * pointer-set.h (pointer_set_contains, pointer_set_insert,
47         pointer_set_traverse, pointer_map_contains, pointer_map_insert,
48         pointer_map_traverse): Likewise.
49         * predict.c (assert_is_empty): Likewise.
50         * tree-affine.c (free_name_expansion): Likewise.
51         * tree-cfg.c (edge_to_cases_cleanup): Likewise.
52         * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
53         * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
54
55 2007-08-16  Victor Kaplansky <victork@il.ibm.com>
56
57         * tree-vectorizer.c (new_loop_vec_info): Initialize new 
58         field.
59         (destroy_loop_vec_info): Add call to VEC_free.
60         * tree-vectorizer.h (may_alias_ddrs): Define.
61         (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
62         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
63         Change reporting to dump.
64         (vect_is_duplicate_ddr): New.
65         (vect_mark_for_runtime_alias_test): New.
66         (vect_analyze_data_ref_dependences) Add call to
67         vect_mark_for_runtime_alias_test.
68         (vect_enhance_data_refs_alignment): Define local variable
69         vect_versioning_for_alias_required, don't perform
70         peeling for alignment if versioning for alias is
71         required.
72         (vect_enhance_data_refs_alignment): Use
73         PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
74         PARAM_VECT_MAX_VERSION_CHECKS.
75         * tree-vect-transform.c
76         (vect_create_cond_for_alias_checks): New.
77         (vect_transform_loop): Add call to
78         vect_create_cond_for_alias_checks.
79         (vect_vfa_segment_size): New.
80         * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
81         Rename.
82         (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
83         * gcc/doc/invoke.texi
84         (vect-max-version-for-alignment-checks): Document.
85         (vect-max-version-for-alias-checks): Document.
86         (vect-max-version-checks): Remove.
87      
88 2007-08-16  Uros Bizjak  <ubizjak@gmail.com>
89
90         * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
91         the same line as the instruction for all asm dialects.
92         (*rep_movsi): Ditto.
93         (*rep_movsi_rex64): Ditto.
94         (*rep_movqi): Ditto.
95         (*rep_movqi_rex64): Ditto.
96         (*rep_stosdi_rex64): Ditto.
97         (*rep_stossi): Ditto.
98         (*rep_stossi_rex64): Ditto.
99         (*rep_stosqi): Ditto.
100         (*rep_stosqi_rex64): Ditto.
101         (*cmpstrnqi_nz_1): Ditto.
102         (*cmpstrnqi_nz_rex_1): Ditto.
103         (*cmpstrnqi_1): Ditto.
104         (*cmpstrnqi_rex_1): Ditto.
105         (*strlenqi_1): Ditto.
106         (*strlenqi_rex_1): Ditto.
107         * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
108         prefix on the same line as the instruction for all asm dialects.
109         (sync_double_compare_and_swap<mode>): Ditto.
110         (*sync_double_compare_and_swapdi_pic): Ditto.
111         (*sync_compare_and_swap_cc<mode>): Ditto.
112         (sync_double_compare_and_swap_cc<mode>): Ditto.
113         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
114         (sync_old_add<mode>): Ditto.
115         (sync_add<mode>): Ditto.
116         (sync_sub<mode>): Ditto.
117         (sync_ior<mode>): Ditto.
118         (sync_and<mode>): Ditto.
119         (sync_xor<mode>): Ditto.
120
121 2007-08-16  Richard Sandiford  <richard@codesourcery.com>
122
123         PR middle-end/32897
124         * reload.c (find_reloads): Check that the memory returned by
125         find_reloads_toplev was not the result of forcing a constant
126         to memory.
127         (find_reloads_toplev): Always use simplify_gen_subreg to get
128         the subreg of a constant.  If the result is also a constant,
129         but not a legitimate one, force it into the constant pool
130         and reload its address.
131
132 2007-08-15  David Edelsohn  <edelsohn@gnu.org>
133
134         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
135         POPCOUNT.
136
137 2007-08-15  Daniel Jacobowitz  <dan@codesourcery.com>
138
139         * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
140         directive for the current vector ABI.
141
142 2007-08-15  Steve Ellcey  <sje@cup.hp.com>
143
144         PR target/32963
145         * caller-save.c (reg_save_code): Set invalide status on restore code.
146         
147 2007-08-15  Diego Novillo  <dnovillo@google.com>
148
149         * tree-ssa-alias.c (compute_memory_partitions): Use
150         alias_bitmap_obstack to allocate bitmaps.
151         (reset_alias_info): Factor out of init_alias_info.
152         Mark all name tags not associated to an SSA name for renaming.
153         (init_alias_info): Call it.
154         (create_name_tags): Tidy.  Add comments.
155         (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
156
157 2007-08-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
158
159         * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
160         scheduler dependencies.
161
162 2007-08-15  Rask Ingemann Lambertsen  <rask@sygehus.dk>
163
164         * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
165         "register_operand".
166         (*iorsi_1_zext): Likewise.
167         (*iorsi_1_zext_imm): Likewise.
168         * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
169         with "rm"/"xm" constraint.
170         (sse2_vmsqrtv2df2): Likewise.
171
172 2007-08-15  Jakub Jelinek  <jakub@redhat.com>
173
174         PR middle-end/33074
175         * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
176         REG_LIBCALL note.
177
178 2007-08-14  Daniel Berlin  <dberlin@dberlin.org>
179
180         * tree-pass.h (PROP_pta): Removed.
181         (TODO_rebuild_alias): New.
182         (pass_may_alias): Removed.
183         * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
184         aliasing if we changed something.
185         * tree-ssa-alias.c (compute_may_aliases): Make non-static.  Update
186         SSA internally.
187         (pass_may_alias): Removed.
188         (create_structure_vars): Return TODO_rebuild_alias.
189         * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
190         * tree-sra.c (tree_sra): Only rebuild aliasing if something
191         changed.
192         (tree_sra_early): We never affect aliasing right now.
193         * tree-flow.h (compute_may_aliases): New prototype.
194         * passes.c: Remove pass_may_alias from the passes.
195         (execute_function_todo): Support TODO_rebuild_alias.    
196
197 2007-08-14  Kai Tietz  <kai.tietz@onevision.com>
198
199         * i386.c: (legitimize_address): Move dllimported variable check
200         infront of legitimizing pic address of CONST symbols.
201
202 2007-08-14  Steve Ellcey  <sje@cup.hp.com>
203
204         PR tree-optimization/32941
205         * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
206         (goto_queue_cmp): Remove.
207         (find_goto_replacement): Change search method.
208         (maybe_record_in_goto_queue): Add assert.
209         (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
210         * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
211
212 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
213
214         * alias.c (component_uses_parent_alias_set): Constify.
215         * alias.h (component_uses_parent_alias_set): Likewise.
216         * cfgrtl.c (print_rtl_with_bb): Likewise.
217         * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
218         mpz_get_double_int): Likewise.
219         * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
220         mpz_get_double_int): Likewise.
221         * expr.c (is_aligning_offset, undefined_operand_subword_p,
222         mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
223         Likewise.
224         * expr.h (safe_from_p): Likewise.
225         * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
226         Likewise.
227         * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
228         zero_sized_type, goa_lhs_expr_p): Likewise.
229         * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
230         * rtl.h (print_rtl_with_bb): Likewise.
231         * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
232         * tree-cfg.c (const_first_stmt, const_last_stmt): New.
233         * tree-flow-inline.h (bb_stmt_list): Constify.
234         (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
235         cbsi_stmt): New.
236         * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
237         const_first_stmt, const_last_stmt): New.
238         (block_may_fallthru, empty_block_p): Constify.
239         * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
240         EXPR_ONLY_BODY): New.
241         (expr_first, expr_last, expr_only): Use macro for body.
242         (const_expr_first, const_expr_last, const_expr_only): New.
243         * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
244         ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
245         ctsi_prev, ctsi_stmt): New.
246         * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
247         * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
248         * tree-ssa-loop-niter.c (loop_only_exit_p,
249         derive_constant_upper_bound): Likewise.
250         * tree-ssa-phiopt.c (empty_block_p): Likewise.
251         * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
252         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
253         * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
254         * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
255         * tree.c (get_type_static_bounds): Likewise.
256         * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
257         (get_type_static_bounds): Constify.
258
259 2007-08-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
260
261         PR target/30315
262         * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
263         * config/i386/i386.md (plusminus)(addsub)(SWI): New.
264         (*<addsub><mode>3_cc_overflow): New.
265         (*add<mode>3_cconly_overflow): New.
266         (*sub<mode>3_cconly_overflow): New.
267         (*<addsub>si3_zext_cc_overflow): New.
268         * config/i386/predicates.md (fcmov_comparison_operator): Accept
269         CCCmode for LTU, GTU, LEU and GEU.
270         (ix86_comparison_operator): Likewise.
271         (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
272         * config/i386/i386.c (put_condition_code): Support CCCmode.
273         (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
274         or MINUS expressions.
275
276 2007-08-14  Andrew Pinski  <pinskia@gmail.com>
277
278         PR c/30428
279         * c-typeck.c (build_binary_op): Disallow vector float types with
280         BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
281
282 2007-08-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
283
284         * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
285         (DEP_KIND): Rename to DEP_TYPE.  Update all uses.
286         (dep_def): New typedef.
287         (init_dep_1, sd_debug_dep): Declare functions.
288         (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
289         (debug_dep_links): Remove.
290         (struct _deps_list): New field 'n_links'.
291         (DEPS_LIST_N_LINKS): New macro.
292         (FOR_EACH_DEP_LINK): Remove.
293         (create_deps_list, free_deps_list, delete_deps_list): Remove
294         declaration.
295         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
296         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
297         (copy_deps_list_change_con, move_dep_link): Ditto.
298         (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
299         and 'spec_back_deps'.  New field 'resolved_forw_deps'.  Remove field
300         'dep_count'.
301         (INSN_BACK_DEPS): Remove.
302         (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
303         New macros.
304         (INSN_DEP_COUNT): Remove.
305         (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP.  Fix comments.
306         (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
307         Declare global variables.
308         (deps_pools_are_empty_p, sched_free_deps): Declare functions.
309         (add_forw_dep, compute_forward_dependences): Remove declarations.
310         (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
311         (add_back_forw_dep, delete_back_forw_dep): Ditto.
312         (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
313         functions.
314         (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): New
315         constants.
316         (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
317         (sd_list_types_def): New typedef.
318         (sd_next_list): Declare function.
319         (struct _sd_iterator): New type.
320         (sd_iterator_def): New typedef.
321         (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
322         functions.
323         (FOR_EACH_DEP): New cycle wrapper.
324         (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
325         Declare functions.
326         (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
327         (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
328         Ditto.
329
330         * sched-deps.c (init_dep_1): Make global.
331         (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
332         constants.
333         (dump_dep): New static function.
334         (dump_dep_flags): New static variable.
335         (sd_debug_dep): New function.
336         (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
337         the list.
338         (move_dep_link): Use remove_from_deps_list (), instead of
339         detach_dep_link ().
340         (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
341         (dep_link_is_detached_p): New static function.
342         (deps_obstack, dl_obstack, dn_obstack): Remove.  Use dn_pool, dl_pool
343         instead.
344         (dn_pool, dl_pool): New alloc_pools.
345         (dn_pool_diff, dl_pool_diff): New static variables.
346         (create_dep_node, delete_dep_node): New static function.
347         (create_deps_list): Make it static.  Use alloc_pool 'dl_pool'.
348         (deps_list_empty_p): Make it static.  Use 'n_links' field.
349         (deps_pools_are_empty_p): New static function.
350         (alloc_deps_list, delete_deps_list): Remove.
351         (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
352         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
353         (copy_deps_list_change_con): Remove.  Use sd_copy_back_deps () instead.
354         (forward_dependency_cache): Remove.
355         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
356         'back' from the names.  Change signature to use dep_t instead of
357         equivalent quad.
358         (add_back_dep): Ditto.  Make global.
359         (check_dep_status): Rename to check_dep ().
360         (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
361         New functions.
362         (sd_finish_insn): Ditto.
363         (sd_find_dep_between_no_cache): New static function.
364         (sd_find_dep_between): New function.
365         (ask_dependency_caches, set_dependency_caches): New static functions.
366         (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
367         (add_or_update_dep_1): Separate pieces of functionality into
368         ask_dependency_caches (), update_dependency_caches (),
369         change_spec_dep_to_hard (), update_dep ().
370         (get_back_and_forw_lists): New static function.
371         (sd_add_dep): Separate setting of dependency caches into
372         set_dependency_caches ().
373         (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
374         New functions.
375         (sd_delete_dep): Ditto.
376         (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
377         (dump_lists): New static function.
378         (sd_debug_lists): New debug function.
379         (delete_all_dependences, fixup_sched_groups): Update to use
380         sd_* infrastructure.
381         (sched_analyze_2): Create data-speculative dependency only if
382         data-speculation is enabled.
383         (sched_analyze_insn): If insn cannot be speculative, make all its
384         dependencies non-speculative.
385         (sched_analyze): Use sd_init_insn ().
386         (add_forw_dep, compute_forward_dependencies): Remove.
387         (delete_dep_nodes_in_back_deps): New static function.
388         (sched_free_deps): New function.
389         (init_dependency_caches): Init alloc_pools.
390         (extend_depedency_caches): Update after removing of
391         forward_dependency_cache.
392         (free_dependency_caches): Ditto.  Free alloc_pools.
393         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
394         (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
395         Ditto.
396         (add_back_forw_dep, delete_back_forw_dep): Ditto.
397         (add_dependence): Use init_dep ().
398         (get_dep_weak_1): New static function.
399         (get_dep_weak): Move logic to get_dep_weak_1 ().
400         (dump_ds): New static function moved from haifa-sched.c:
401         debug_spec_status ().
402         (debug_ds): New debug function.
403         (check_dep_status): Rename to check_dep ().  Update to check whole
404         dependencies.
405
406         * haifa-sched.c (spec_info): Make global.
407         (added_recovery_block_p): Rename to
408         'haifa_recovery_block_was_added_during_current_schedule_block_p'.
409         (haifa_recovery_block_was_added_during_scheduling_p): New variable.
410         (dep_cost, priority, rank_for_schedule, schedule_insn): Update
411         to use new interfaces.
412         (ok_for_early_queue_removal): Ditto.
413         (schedule_block): Initialize logical uids of insns emitted by the
414         target.
415         (sched_init): Initialize new variable.
416         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
417         interfaces.
418         (extend_global): Initialize insn data.
419         (init_h_i_d): Remove code that is now handled in sd_init_insn ().
420         (process_insn_forw_deps_be_in_spec): Change signature.  Update to use
421         new interfaces.
422         (add_to_speculative_block): Update to use new interfaces.
423         (create_recovery_block): Set new variables.
424         (create_check_block_twin, fix_recovery_deps): Update to use new
425         interfaces.
426         (sched_insn_is_legitimate_for_speculation_p): New function.
427         (speculate_insn): Move checking logic to
428         sched_insn_is_legitimate_for_speculation_p ().
429         (sched_remove_insn): Finalize sched-deps information of instruction.
430         (clear_priorities, add_jump_dependencies): Update to use new
431         interfaces.
432         (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
433         
434         * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
435         to use new interfaces.
436         (is_conditionally_protected, is_pfree, is_prisky) Ditto.
437         (new_ready): Try to use control speculation only if it is available.
438         (add_branch_dependences): Update to use new interfaces.
439         (compute_block_backward_dependences): Rename to
440         compute_block_dependences ().  Call
441         targetm.sched.dependencies_evaluation_hook ().
442         (free_block_dependencies): New static function.
443         (debug_dependencies): Update to use new interfaces.
444         (schedule_region): Remove separate computation of forward dependencies.
445         Move call of targetm.sched.dependencies_evaluation_hook () to
446         compute_block_dependences ().  Free dependencies at the end of
447         scheduling the region.
448
449         * sched-ebb.c (earliest_block_with_similiar_load): Update to use
450         new interfaces.
451         (add_deps_for_risky_insns): Ditto.
452         (schedule_ebb): Remove separate computation of forward dependencies.
453         Free dependencies at the end of scheduling the ebb.
454
455         * ddg.c (create_ddg_dependence): Update to use new interfaces.
456         (build_intra_loop_deps): Ditto.  Remove separate computation of forward
457         dependencies.  Free sched-deps dependencies.
458
459         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
460         to use new interfaces.
461         (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
462
463         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
464         new interfaces.
465         (is_costly_group): Ditto.
466
467 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
468
469         * alias.c (rtx_equal_for_memref_p): Constify.
470         * basic-block.h (const_edge, const_basic_block): New.
471         (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
472         single_pred_p, single_succ_edge, single_pred_edge, single_succ,
473         single_pred, maybe_hot_bb_p, probably_cold_bb_p,
474         probably_never_executed_bb_p, edge_probability_reliable_p,
475         br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
476         inside_basic_block_p, control_flow_insn_p, dominated_by_p):
477         Likewise.
478         * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
479         * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
480         Likewise.
481         * cfganal.c (flow_active_insn_p, forwarder_block_p,
482         flow_nodes_print, dfs_enumerate_from): Likewise.
483         * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
484         control_flow_insn_p, count_basic_blocks): Likewise.
485         * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
486         get_loop_body_with_size, loop_exit_edge_p): Likewise.
487         * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
488         average_num_loop_insns, loop_exit_edge_p,
489         just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
490         * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
491         average_num_loop_insns, seq_cost): Likewise.
492         * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
493         * dominance.c (dominated_by_p): Likewise.
494         * emit-rtl.c (validate_subreg): Likewise.
495         * except.c (can_throw_internal, can_throw_external): Likewise.
496         * except.h (can_throw_internal, can_throw_external): Likewise.
497         * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
498         oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
499         compute_transp, load_killed_in_block_p, reg_killed_on_edge,
500         simple_mem, store_ops_ok, load_kills_store, find_loads,
501         store_killed_in_insn, store_killed_after, store_killed_before,
502         gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
503         Likewise.
504         * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
505         noce_mem_write_may_trap_or_fault_p): Likewise.
506         * pointer-set.c (pointer_set_contains, pointer_map_contains):
507         Likewise.
508         * pointer-set.h (pointer_set_contains, pointer_map_contains):
509         Likewise.
510         * predict.c (can_predict_insn_p, maybe_hot_bb_p,
511         probably_cold_bb_p, probably_never_executed_bb_p,
512         edge_probability_reliable_p, br_prob_note_reliable_p,
513         can_predict_insn_p): Likewise.
514         * regclass.c (reg_set_to_hard_reg_set): Likewise.
515         * resource.c (return_insn_p): Likewise.
516         * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
517         Likewise.
518         * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
519         * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
520         * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
521         verify_gimple_modify_stmt): Likewise.
522         * tree-chrec.c (is_not_constant_evolution,
523         is_multivariate_chrec_rec, is_multivariate_chrec,
524         chrec_contains_symbols, chrec_contains_undetermined,
525         tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
526         evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
527         eq_evolutions_p, scev_direction): Likewise.
528         * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
529         eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
530         chrec_contains_symbols_defined_in_loop,
531         chrec_contains_undetermined, tree_contains_chrecs,
532         evolution_function_is_affine_multivariate_p,
533         evolution_function_is_univariate_p, chrec_zerop,
534         evolution_function_is_constant_p, evolution_function_is_affine_p,
535         evolution_function_is_affine_or_constant_p,
536         tree_does_not_contain_chrecs, chrec_type): Likewise.
537         * tree-data-ref.c (tree_fold_divides_p,
538         object_address_invariant_in_loop_p, dr_may_alias_p,
539         ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
540         same_access_functions, constant_access_functions,
541         access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
542         Likewise.
543         * tree-flow.h (scev_direction): Likewise.
544         * tree-gimple.c (is_gimple_stmt): Likewise.
545         * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
546         Likewise.
547         * tree-pretty-print.c (op_prio): Likewise.
548         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
549         analyzable_condition, backedge_phi_arg_p): Likewise.
550         * tree-scalar-evolution.h (get_chrec_loop): Likewise.
551         * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
552         * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
553         Likewise.
554
555 2007-08-13  Dan Hipschman  <dsh@google.com>
556
557         PR c/32953
558         * c-format.c (check_format_arg): Move check for zero-length
559         format strings below the check for unterminated strings.
560
561 2007-08-13  Andrew Pinski  <pinskia@gmail.com>
562
563         PR C/30427
564         * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
565         types.
566
567 2007-08-13  Nick Clifton  <nickc@redhat.com>
568
569         * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
570
571 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
572
573         PR fortran/32860
574         * c-format.c (gcc_gfc_length_specs): New array.
575         (gcc_gfc_char_table): Add unsigned specifier, and references to
576         the l length modifier.
577         (format_types_orig): Use the new gcc_gfc_length_specs.
578
579 2007-08-12  Sa Liu  <saliu@de.ibm.com>
580
581         * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
582         and with REG_RETVAL note after split.
583
584 2007-08-11  David Daney  <ddaney@avtrex.com>
585
586         * config/mips/mips.c (mips_sched_reorder):  Mark cycle parameter
587         as ATTRIBUTE_UNUSED.
588
589 2007-08-11  David Edelsohn  <edelsohn@gnu.org>
590             Segher Boessenkool  <segher@kernel.crashing.org>
591
592         * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
593         HAVE_LOCAL_CPU_DETECT not defined.
594
595 2007-08-11  Jan Hubicka  <jh@suse.cz>
596
597         * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
598         (cgraph_process_new_functions): Honor previous value of
599         disregard_inline_limits.
600         * ipa-inline.c (compute_inline_parameters): Likewise.
601
602 2007-08-11  Ian Lance Taylor  <iant@google.com>
603
604         * alias.h (alias_set_type): Define new type.
605         (ALIAS_SET_MEMORY_BARRIER): Use it.
606         * rtl.h: Include alias.h.
607         (struct mem_attrs): Use alias_set_type.
608         * tree.h: Include alias.h
609         (struct tree_type): Use alias_set_type.
610         (struct tree_struct_field_tag): Likewise.
611         (struct tree_decl_common): Likewise.
612         * alias.c (struct alias_set_entry): Use alias_set_type.
613         (get_alias_set_entry, alias_set_subset_of): Likewise.
614         (alias_sets_conflict_p): Likewise.
615         (alias_sets_must_conflict_p): Likewise.
616         (objects_must_conflict_p): Likewise.
617         (get_alias_set, new_alias_set): Likewise.
618         (record_alias_subset, record_component_aliases): Likewise.
619         (varargs_set, frame_set): Change to alias_set_type.
620         (get_varargs_alias_set): Use alias_set_type.
621         (get_frame_alias_set): Likewise.
622         * builtins.c (setjmp_alias_set): Change to alias_set_type.
623         * dse.c (struct store_info): Use alias_set_type.
624         (struct read_info, struct clear_alias_mode_holder): Likewise.
625         (clear_alias_set_lookup, canon_address): Likewise.
626         (record_store, check_mem_read_rtx): Likewise.
627         (dse_record_singleton_alias_set): Likewise.
628         (dse_invalidate_singleton_alias_set): Likewise.
629         * emit-rtl.c (get_mem_attrs): Likewise.
630         (set_mem_attributes_minus_bitpos): Likewise.
631         (set_mem_alias_set): Likewise.
632         * expr.c (store_constructor_field, store_field): Likewise.
633         * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
634         * langhooks.c (lhd_get_alias_set): Likewise.
635         * langhooks-def.h (lhd_get_alias_set): Likewise.
636         * reload1.c (alter_reg): Likewise.
637         * tree-flow.h (struct fieldoff): Likewise.
638         * tree-ssa-alias.c (struct alias_map_d): Likewise.
639         (may_alias_p, get_smt_for, create_sft): Likewise.
640         * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
641         * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
642         (merge_smts_into): Likewise.
643         * varasm.c (const_alias_set): Likewise.
644         * c-common.c (strict_aliasing_warning): Likewise.
645         (c_common_get_alias_set): Likewise.
646         * dse.h (dse_record_singleton_alias_set): Update declaration.
647         (dse_invalidate_singleton_alias_set): Likewise.
648         * emit-rtl.h (set_mem_alias_set): Likewise.
649         * c-common.h (c_common_get_alias_set): Likewise.
650         * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
651         * print-tree.c (print_node): Likewise.
652         * config/alpha/alpha.c (alpha_sr_alias_set): Change to
653         alias_set_type.
654         (alpha_setup_incoming_varargs): Use alias_set_type.
655         * config/i386/i386.c (setup_incoming_varargs_64): Use
656         alias_set_type.
657         (setup_incoming_varargs_ms_64): Likewise.
658         (ix86_GOT_alias_set): Likewise.
659         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
660         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
661         (set): Change to alias_set_type.
662         (get_TOC_alias_set): Use alias_set_type.
663         * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
664         declaration.
665         * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
666         * config/sparc/sparc.c (sparc_sr_alias_set): Change to
667         alias_set_type.
668         (struct_value_alias_set): Likewise.
669         * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
670
671 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
672
673         * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
674         * config/vxworks.h (TARGET_VXWORKS): Override.
675         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
676         "mips" if TARGET_VXWORKS.
677
678 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
679
680         * calls.c (avoid_likely_spilled_reg): New function.
681         (expand_call): Use it.
682
683 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
684
685         * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
686
687 2007-08-10  Adam Nemet  <anemet@caviumnetworks.com>
688
689         * config/mips/predicates.md (const_call_insn_operand): Invoke
690         SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
691
692 2007-08-10  David Edelsohn  <edelsohn@gnu.org>
693
694         PR target/33042
695         * config/rs6000/driver-rs6000.c: Include link.h.
696         Use ElfW instead of wordsize-specif typedef.
697
698 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
699
700         * system.h (CONST_CAST): New.
701         * c-decl.c (c_make_fname_decl): Use it.
702         * c-lex.c (cb_ident, lex_string): Likewise.
703         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
704         * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
705         give_switch, set_multilib_dir): Likewise.
706         * gengtype-parse.c (string_seq, typedef_name): Likewise.
707         * passes.c (execute_one_pass): Likewise.
708         * prefix.c (update_path): Likewise.
709         * pretty-print.c (pp_base_destroy_prefix): Likewise.
710         * tree.c (build_string): Likewise.
711
712 2007-08-10  Aldy Hernandez  <aldyh@redhat.com>
713
714         * tree-flow-inline.h (is_exec_stmt): Remove.
715         (is_label_stmt): Remove.
716         * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
717         is_label_stmt.
718
719 2007-08-10  Andreas Krebbel  <krebbel1@de.ibm.com>
720
721         * lower-subreg.c (resolve_shift_zext): Don't adjust
722         src_reg_num for wordmode operands.
723
724 2007-08-10  Sandra Loosemore  <sandra@codesourcery.com>
725             David Ung  <davidu@mips.com>
726
727         * config/mips/mips.c (TARGET_SCHED_INIT): Define.
728         (TARGET_SCHED_REORDER2): Define.
729         (mips_maybe_swap_ready): New.
730         (mips_last_74k_agen_insn): New.
731         (mips_74k_agen_init): New.
732         (mips_74k_agen_reorder): New function to group loads and stores
733         in the ready queue.
734         (mips_sched_init): New.  
735         (mips_sched_reorder): Don't do initialization here.  Call
736         mips_74k_agen_reorder.
737         (mips_variable_issue): Call mips_74k_agen_init.
738
739 2007-08-10  Aldy Hernandez  <aldyh@redhat.com>
740
741         * tree-flow-inline.h (get_filename): Remove.
742
743 2007-08-10  Richard Sandiford  <richard@codesourcery.com>
744
745         * config/mips/mips-protos.h (mips_address_insns): Add a boolean
746         argument.
747         (mips_fetch_insns): Delete in favor of...
748         (mips_load_store_insns): ...this new function.
749         * config/mips/mips.c (mips_address_insns): Add a boolean argument
750         to say whether multiword moves _might_ be split.
751         (mips_fetch_insns): Delete in favor of...
752         (mips_load_store_insns): ...this new function.
753         (mips_rtx_costs): Update the call to mips_address_insns.
754         (mips_address_cost): Likewise.
755         * config/mips/mips.md (length): Use mips_load_store_insns instead
756         of mips_fetch_insns.
757         * config/mips/constraints.md (R): Use mips_address_insns rather
758         than mips_fetch_insns.  Assume that the move never needs to be split.
759
760 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
761
762         * config/mips/mips.opt (mhard-float, msoft-float):  Make these
763         control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
764         than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.  
765         * config/mips/mips.h (mips16_hard_float): Delete.
766         (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI):  Delete these
767         definitions, and replace with....
768         (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
769         * config/mips/mips.c (mips16_hard_float): Delete.  Replace
770         all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
771         (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
772         (override_options):  Replace MASK_SOFT_FLOAT references with
773         MASK_SOFT_FLOAT_ABI.  Delete twiddling with MASK_SOFT_FLOAT
774         and mips16_hard_float when TARGET_MIPS16.
775         
776 2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
777
778         PR c/32796
779         * c-typeck.c (build_binary_op): Check for non pointer types before
780         calling int_fits_type_p.
781
782 2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
783
784         PR middle-end/32813
785         * fold-const.c (omit_one_operand): Return only the ommitted expression
786         if the result is an empty statement.
787         (pedantic_omit_one_operand): Likewise.
788
789 2007-08-09  Daniel Berlin  <dberlin@dberlin.org>
790
791         * c-typeck.c (readonly_error): Improve error for assignment.
792         
793         * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
794         expression. 
795         (pp_c_expression): Ditto.
796
797 2007-08-09  Simon Baldwin  <simonb@google.com>
798
799         * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
800         break that was preventing simplify_associative_operation() for xor.
801
802 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
803             Nigel Stephens  <nigel@mips.com>
804
805         * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
806         Document change in interpretation of value from boolean to
807         tri-state integer.
808         * optabs.c (expand_ffs, expand_ctz): New functions to compute
809         ffs and ctz using clz.
810         (expand_unop):  Call them.
811         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
812         result value.
813         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
814         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
815         enable the new ffs expansion on this target.
816
817 2007-08-09  Jan Hubicka  <jh@suse.cz>
818
819         * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
820         (expand_ternary_op): Likewise.
821         (expand_vec_shift_expr): Likewise.
822         (expand_binop_directly): Likewise.
823         (expand_binop): Likewise.
824         (sign_expand_binop): Likewise.
825         (expand_twoval_unop): Likewise.
826         (expand_twoval_binop): Likewise.
827         (expand_twoval_binop_libfunc): Likewise.
828         (widen_clz): Likewise.
829         (widen_bswap): Likewise.
830         (expand_parity): Likewise.
831         (expand_unop): Likewise.
832         (expand_abs_nojump): Likewise.
833         (expand_copysign): Likewise.
834         (emit_no_conflict_block): Likewise.
835         (emit_libcall_block): Likewise.
836         (can_compare_p): Likewise.
837         (prepare_cmp_insn): Likewise.
838         (emit_cmp_and_jump_insn_1): Likewise.
839         (prepare_float_lib_cmp): Likewise.
840         (emit_conditional_add): Likewise.
841         (gen_add2_insn): Likewise.
842         (have_add2_insn): Likewise.
843         (gen_sub2_insn): Likewise.
844         (have_sub2_insn): Likewise.
845         (can_extend_p): Likewise.
846         (can_fix_p): Likewise.
847         (can_float_p): Likewise.
848         (expand_float): Likewise.
849         (expand_fix): Likewise.
850         (expand_sfix_optab): Likewise.
851         (new_optab): Likewise.
852         (new_convert_optab): Likewise.
853         (init_libfuncs): Likewise.
854         (init_interclass_conv_libfuncs): Likewise.
855         (init_intraclass_conv_libfuncs): Likewise.
856         (set_conv_libfunc): Likewise.
857         (init_optabs): Likewise.
858         (debug_optab_libfuncs): Likewise.
859         (gen_cond_trap): Likewise.
860         * optabs.h (optab_handler, convert_optab_hanlder): New.
861         * genopinit.c: Update optabs generation table.
862         * reload.c (find_reloads_address_1): Use optabs accestors.
863         * builtins.c (expand_builtin_mathfn): Likewise.
864         (expand_builtin_mathfn_2): Likewise.
865         (expand_builtin_mathfn_3): Likewise.
866         (expand_builtin_interclass_mathfn): Likewise.
867         (expand_builtin_sincos): Likewise.
868         (expand_builtin_cexpi): Likewise.
869         (expand_builtin_powi): Likewise.
870         (expand_builtin_strlen): Likewise.
871         * dojump.c (do_jump): Likewise.
872         * expr.c (convert_move): Likewise.
873         (move_by_pieces): Likewise.
874         (move_by_pieces_ninsns): Likewise.
875         (can_store_by_pieces): Likewise.
876         (store_by_pieces_1): Likewise.
877         (emit_move_via_integer): Likewise.
878         (emit_move_complex): Likewise.
879         (emit_move_ccmode): Likewise.
880         (emit_move_insn_1): Likewise.
881         (emit_single_push_insn): Likewise.
882         (store_constructor): Likewise.
883         (expand_expr_real_1): Likewise.
884         (do_store_flag): Likewise.
885         * ada/misc.c (gnat_compute_largest_alignment): Likewise.
886         (enumerate_modes): Likewise.
887         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
888         (supportable_widening_operation): Likewise.
889         (supportable_narrowing_operation): Likewise.
890         * expmed.c (store_bit_field_1): Likewise.
891         (extract_bit_field_1): Likewise.
892         (expand_mult_highpart_optab): Likewise.
893         (expand_smod_pow2): Likewise.
894         (expand_divmod): Likewise.
895         (emit_store_flag): Likewise.
896         * tree-vect-patterns.c
897         (vect_pattern_recog_1): Likewise.
898         * tree-ssa-loop-prefetch.c
899         (nontemporal_store_p): Likewise.
900         * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
901         (vect_create_epilog_for_reduction): Likewise.
902         (vectorizable_reduction): Likewise.
903         (vectorizable_operation): Likewise.
904         (vect_strided_store_supported): Likewise.
905         (vectorizable_store): Likewise.
906         (vect_strided_load_supported): Likewise.
907         (vectorizable_load): Likewise.
908         * combine.c (simplify_comparison): Likewise.
909         * tree-vect-generic.c
910         (type_for_widest_vector_mode): Likewise.
911         (expand_vector_operations_1): Likewise.
912         * config/spu/spu.c (spu_expand_mov): Likewise.
913         (spu_emit_vector_compare): Likewise.
914         * config/rs6000/rs6000.c
915         (rs6000_emit_vector_compare): Likewise.
916         * stmt.c (add_case_node): Likewise.
917         * reload1.c (gen_reload):
918
919 2007-08-09  Michael Matz  <matz@suse.de>
920
921         * tree.h (fixed_zerop): Declare as taking a const_tree.
922         * tree.c (fixed_zerop): Take a const_tree.
923
924 2007-08-09  Ira Rosen  <irar@il.ibm.com>
925
926         * tree-vect-transform.c (vectorizable_store): Remove call to
927         copy_virtual_operands() and call mark_symbols_for_renaming() for
928         the created vector store.
929         (vect_setup_realignment): Don't call copy_virtual_operands() and
930         update_vuses_to_preheader(). 
931         (vectorizable_load): Don't call copy_virtual_operands(). 
932         (update_vuses_to_preheader): Remove.
933
934 2007-08-08  Chao-ying Fu  <fu@mips.com>
935
936         * tree.def (FIXED_POINT_TYPE): New type.
937         (FIXED_CST): New constant.
938         (FIXED_CONVERT_EXPR): New expr.
939         * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
940         (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
941         * tree.h (struct tree_base): Add saturating_flag.
942         Remove one bit of spare for saturating_flag.
943         (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
944         (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
945         FIXED_POINT_TYPE_P): Define.
946         (TYPE_SATURATING): Define.
947         (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
948         (struct tree_fixed_cst): New.
949         (TYPE_IBIT, TYPE_FBIT): Define.
950         (tree_node): Add fixed_cst.
951         (enum tree_index): Add new enumeration values of
952         TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
953         TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
954         TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
955         TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
956         TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
957         TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
958         TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
959         TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
960         TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
961         TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
962         TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
963         TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
964         TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
965         TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
966         TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
967         TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
968         TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
969         TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
970         (sat_short_fract_type_node, sat_fract_type_node,
971         sat_long_fract_type_node, sat_long_long_fract_type_node,
972         sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
973         sat_unsigned_long_fract_type_node,
974         sat_unsigned_long_long_fract_type_node, short_fract_type_node,
975         fract_type_node, long_fract_type_node, long_long_fract_type_node,
976         unsigned_short_fract_type_node, unsigned_fract_type_node,
977         unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
978         sat_short_accum_type_node, sat_accum_type_node,
979         sat_long_accum_type_node, sat_long_long_accum_type_node,
980         sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
981         sat_unsigned_long_accum_type_node,
982         sat_unsigned_long_long_accum_type_node, short_accum_type_node,
983         accum_type_node, long_accum_type_node, long_long_accum_type_node,
984         unsigned_short_accum_type_node, unsigned_accum_type_node,
985         unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
986         qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
987         uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
988         utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
989         sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
990         sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
991         sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
992         ta_type_node, uha_type_node, usa_type_node, uda_type_node,
993         uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
994         sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
995         sat_uda_type_node, sat_uta_type_node): New macro.
996         (make_fract_type, make_accum_type): Declare.
997         (make_signed_fract_type, make_unsigned_fract_type,
998         make_sat_signed_fract_type, make_sat_unsigned_fract_type,
999         make_signed_accum_type, make_unsigned_accum_type,
1000         make_sat_signed_accum_type, make_sat_unsigned_accum_type,
1001         make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
1002         make_or_reuse_sat_signed_fract_type,
1003         make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
1004         make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
1005         make_or_reuse_sat_unsigned_accum_type): New macro.
1006         (fixed_zerop): Declare.
1007         * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
1008         LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
1009         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
1010         LONG_LONG_ACCUM_TYPE_SIZE): Define.
1011         * treestruct.def: Add TS_FIXED_CST.
1012         * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
1013         (tree.o): Likewise.
1014         (tree-dump.o): Likewise.
1015         (print-tree.o): Likewise.
1016         (tree-pretty-print.o): Likewise.
1017         (fold-const.o): Likewise.
1018         * tree-complex.c (some_nonzerop): Handle FIXED_CST.
1019         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
1020         (is_gimple_min_invariant): Handle FIXED_CST.
1021         * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
1022         MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
1023         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1024         (layout_type): Handle FIXED_POINT_TYPE.
1025         (make_fract_type, make_accum_type): New functions.
1026         * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
1027         * tree-dump.c (fixed-value.h): New include.
1028         (dump_fixed): New function.
1029         (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
1030         * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
1031         (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
1032         * tree-pretty-print.c (fixed-value.h): New include.
1033         (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
1034         FIXED_CONVERT_EXPR.
1035         * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
1036         * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
1037         * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
1038         * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
1039         for non-saturating fixed-point types.
1040         (reassociate_bb): Likewise.
1041         * emit-rtl.c (fixed-value.h): New include.
1042         (fconst0, fconst1): New array.
1043         (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
1044         * tree-vect-generic.c expand_vector_operation): Support
1045         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
1046         MODE_VECTOR_UACCUM.
1047         (type_for_widest_vector_mode): Add one parameter for the 
1048         saturating flag.
1049         Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
1050         vector mode.
1051         Pass the satp parameter to type_for_mode for fixed-point types.
1052         (expand_vector_operations_1): Pass the saturating flag to
1053         type_for_widest_vector_mode.
1054         Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1055         and MODE_VECTOR_UACCUM.
1056         * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
1057         (vectorizable_condition): Likewise.
1058         * tree.c (fixed-value.h): New include.
1059         (tree_code_size): Support FIXED_CST.
1060         (build_fixed): New function.
1061         (build_one_cst): Support FIXED_POINT_TYPE for accum types.
1062         (fixed_zerop): New function.
1063         (tree_node_structure): Support FIXED_CST.
1064         (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
1065         (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
1066         (type_hash_eq): Handle FIXED_POINT_TYPE.
1067         (simple_cst_equal): Support FIXED_CST.
1068         (iterative_hash_expr): Handle FIXED_CST.
1069         (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
1070         (get_narrower): Likewise.
1071         (variably_modified_type_p): Handle FIXED_POINT_TYPE.
1072         (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
1073         (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
1074         MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
1075         nodes.
1076         (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
1077         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1078         (initializer_zerop): Support FIXED_CST.
1079         (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
1080         * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
1081         DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
1082         (is_base_type): Handle FIXED_POINT_TYPE.
1083         (add_type_attribute): Handle FIXED_POINT_TYPE.
1084         (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
1085         * print-tree.c (fixed-value.h): New include.
1086         (print_node_brief): Support FIXED_CST.
1087         (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
1088         * c-pretty-print.c (fixed-value.h): New include.
1089         (pp_c_type_specifier): Handle FIXED_POINT_TYPE.  Need to pass
1090         TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
1091         (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
1092         Support fixed-point types for inner items in VECTOR_TYPE.
1093         (pp_c_direct_declarator): Likewise.
1094         (pp_c_declarator): Likewise.
1095         (pp_c_fixed_constant): New function.
1096         (pp_c_constant): Handle FIXED_CST.
1097         (pp_c_primary_expression): Likewise.
1098         (pp_c_expression): Likewise.
1099         * fold-const.c (fixed-value.h): New include.
1100         (negate_expr_p): Return true for FIXED_CST.
1101         (fold_negate_expr): Support FIXED_CST.
1102         (split_tree): Support FIXED_CST.
1103         (const_binop): Support FIXED_CST.
1104         (fold_convert_const_int_from_fixed): New function to convert from
1105         fixed to int.
1106         (fold_convert_const_real_from_fixed): New function to convert from
1107         fixed to real.
1108         (fold_convert_const_fixed_from_fixed): New function to convert from
1109         fixed to another fixed.
1110         (fold_convert_const_fixed_from_int): New function to convert from
1111         int to fixed.
1112         (fold_convert_const_fixed_from_real): New function to convert from
1113         real to fixed.
1114         (fold_convert_const): Support conversions from fixed to int, from
1115         fixed to real, from fixed to fixed, from int to fixed, and from real
1116         to fixed.
1117         (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
1118         (operand_equal_p): Support FIXED_CST.
1119         (make_range): For fixed-point modes, we need to pass the
1120         saturating flag as the 2nd parameter.
1121         (tree_swap_operands_p): Handle FIXED_CST.
1122         (fold_plusminus_mult_expr): For fract modes, we cannot generate
1123         constant 1.
1124         (fold_unary): Support FIXED_CONVERT_EXPR.
1125         (fold_binary): Handle FIXED_CST.
1126         Make sure the type is not saturating, before associating operations.
1127         Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
1128         (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
1129         (fold_negate_const): Support FIXED_CST.
1130         (fold_relational_const): Support FIXED_CST.
1131         * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
1132         (gimplify_expr): Handle FIXED_CST.
1133         (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
1134         * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
1135         * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
1136         * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
1137         FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
1138         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
1139         LONG_LONG_ACCUM_TYPE_SIZE.
1140         * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
1141         * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
1142         * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
1143         * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
1144         MODE_ACCUM, and MODE_UACCUM.
1145         * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
1146         fixed-point types to disable reduction.
1147         * explow.c (promote_mode): Support FIXED_POINT_TYPE.
1148
1149 2007-08-08  David Edelsohn  <edelsohn@gnu.org>
1150
1151         * config/rs6000/x-rs6000: New file.
1152         * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
1153         * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
1154         (EXTRA_SPEC_FUNCTIONS): Define.
1155         (HAVE_LOCAL_CPU_DETECT): Define.
1156         (CC1_CPU_SPEC): Define.
1157         * config/rs6000/driver-rs6000.c: New file.
1158         * config/rs6000/aix.h (CC1_SPEC): Define.
1159         * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
1160         * config.host: Add x-rs6000 to host_xmake_file if host and target
1161         are rs6000 or powerpc.
1162
1163 2007-08-08  Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
1164
1165         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
1166
1167 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
1168             Sandra Loosemore  <sandra@codesourcery.com>
1169             Chao-ying Fu  <fu@mips.com>
1170             Nigel Stephens  <nigel@mips.com>
1171             David Ung  <davidu@mips.com>
1172
1173         * doc/invoke.texi (-mcode-readable): Document.
1174         * config/mips/mips.opt (mcode-readable): New option.
1175         * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
1176         * config/mips/mips.h (mips_code_readable_setting): New enum.
1177         (mips_code_readable): Declare.
1178         (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
1179         (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
1180         (JUMP_TABLES_IN_TEXT_SECTION): Use it.
1181         (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise.  Remove
1182         boiler-plate comments.
1183         (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
1184         * config/mips/mips.c (mips_code_readable): New variable.
1185         (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
1186         MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES.  Use both the
1187         context and -mcode-readable setting to restrict the use of
1188         SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
1189         Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
1190         (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
1191         (mips_blocks_for_constant_p): Only return false for
1192         TARGET_MIPS16_PCREL_LOADS.
1193         (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
1194         for MIPS16.  Handle SYMBOL_32_HIGH.
1195         (mips_const_insns): Allow HIGHs for MIPS16 too.
1196         (mips_unspec_address_offset): New function, split out from...
1197         (mips_unspec_address): ...here.
1198         (mips_output_move): Handle MIPS16 HIGH moves.  Use "li" to load
1199         16-bit symbolic constants.  Assert approropiate conditions for
1200         using the "la" and "dla" macros.
1201         (mips_handle_option): Handle -mcode-readable=.
1202         (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
1203         Set up mips_lo_relocs[SYMBOL_32_HIGH].
1204         (mips_strip_unspec_address): New function, split out from...
1205         (print_operand_reloc): ...here.
1206         (print_operand): Pass constants through mips_strip_unspec_address.
1207         (print_operand_address): Likewise.
1208         (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
1209         (mips_select_rtx_section): Remove MIPS16 handling.
1210         (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
1211         (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
1212         (mips16_lay_out_constants): Do nothing unless
1213         TARGET_MIPS16_PCREL_LOADS.
1214         (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
1215         * config/mips/mips.md: Split HIGHs for MIPS16.
1216         (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
1217
1218 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
1219
1220         * config/mips/mips-protos.h (mips_emit_move): Declare.
1221         * config/mips/mips.c (mips_emit_move): New function.
1222         (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
1223         (mips_legitimize_const_move): Likewise.
1224         (mips_legitimize_move): Likewise.
1225         (mips_split_64bit_move): Likewise.
1226         (mips_restore_gp): Likewise.
1227         (mips_load_call_address): Likewise.
1228         (mips_emit_fcc_reload): Likewise.
1229         (mips_set_return_address): Likewise.
1230         (mips_block_move_straight): Likewise.
1231         (mips_block_move_loop): Likewise.
1232         (mips_setup_incoming_varargs): Likewise.
1233         (mips_save_reg): Likewise.
1234         (mips_expand_prologue): Likewise.
1235         (mips_restore_reg): Likewise.
1236         (mips_expand_epilogue): Likewise.
1237         (mips_output_mi_thunk): Likewise.
1238         (build_mips16_call_stub): Likewise.
1239         (mips_builtin_branch_and_move): Likewise.
1240         * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
1241         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1242         (fixuns_truncdfdi2): Likewise.
1243         (fixuns_truncsfsi2): Likewise.
1244         (fixuns_truncsfdi2): Likewise.
1245         (loadgp_absolute): Likewise.
1246         (builtin_setjmp_setup): Likewise.
1247         (builtin_longjmp): Likewise.
1248         (untyped_call): Likewise.
1249
1250 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
1251
1252         * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
1253         an "rtx *" argument.  Return a bool.
1254         * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
1255         values and return true if they can be split.  Take the same kind of
1256         mode argument as mips_symbol_insns.  Add a "lo_sum_out" parameter
1257         and store the lo_sum there if nonnull.  Use the symbol type to
1258         determine whether a $gp or HIGH is needed.
1259         (mips_legitimize_address): Update call to mips_split_symbol and
1260         simplify accordingly.
1261         (mips_legitimize_const_move): Likewise.
1262         * config/mips/mips.md: In the combine define_split,
1263         check mips_split_symbol instead of splittable_symbolic_operand.
1264         Update use of mips_split_symbol in the generator code.
1265         * config/mips/predicates.md (splittable_symbolic_operand): Delete.
1266
1267 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
1268
1269         * config/mips/mips.c (mips_symbolic_address_p): Delete.
1270         (mips_symbol_insns_1): New function, split out from...
1271         (mips_symbol_insns): ...here.  Take a mode argument.  Treat loads
1272         and stores separately from load addresses.
1273         (mips_classify_address): Replace uses of mips_symbolic_address_p
1274         with uses of mips_symbol_insns.
1275         (mips_address_insns): Update calls to mips_symbol_insns.
1276         (mips_const_insns): Likewise.
1277         (mips_legitimize_address): Likewise.
1278
1279 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
1280
1281         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
1282         * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
1283         block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
1284         Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
1285         non-call contexts if TARGET_MIPS16.
1286         (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
1287         (mips_symbolic_address_p): Likewise.  Remove special TARGET_MIPS16
1288         code for SYMBOL_ABSOLUTE.
1289         (mips_symbol_insns): Likewise.
1290
1291 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
1292
1293         * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
1294         * config/mips/mips.c (mips_classify_symbol): Take a context argument.
1295         (mips_symbolic_constant_p): Likewise.  Update the call to
1296         mips_classify_symbol.
1297         (mips_classify_address): Update the calls to mips_symbolic_constant_p.
1298         (mips_const_insns): Likewise.  Update the call to mips_classify_symbol.
1299         (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
1300         (print_operand_reloc): Add a context argument.  Update the call to
1301         mips_symbolic_constant_p.
1302         (print_operand): Update the calls to print_operand_reloc.
1303         (print_operand_address): Use print_operand_reloc rather than
1304         print_operand.
1305         (mips_rewrite_small_data_p): Add a context argument.  Update the call
1306         to mips_symbolic_constant_p.
1307         (mips_small_data_pattern_1): Make DATA the containing mem.
1308         Update the call to mips_rewrite_small_data_p.
1309         (mips_rewrite_small_data_1): Likewise.
1310         (mips_use_anchors_for_symbol_p): Update the call to
1311         mips_symbolic_constant_p.
1312         * config/mips/predicates.md (const_call_insn_operand): Likewise.
1313         (splittable_symbolic_operand): Likewise.
1314         (move_operand): Likewise.
1315         (absolute_symbolic_operand): Likewise.
1316         (got_disp_operand): Likewise.
1317         (got_page_ofst_operand): Likewise.
1318
1319 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
1320
1321         * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
1322         (SYMBOL_ABSOLUTE): ...this.
1323         (SYMBOL_SMALL_DATA): Rename to...
1324         (SYMBOL_GP_RELATIVE): ...this.
1325         (SYMBOL_CONSTANT_POOL): Rename to...
1326         (SYMBOL_PC_RELATIVE): ...this.
1327         * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
1328         (mips_symbolic_address_p, mips_symbol_insns, override_options)
1329         (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
1330         after above changes.
1331         * config/mips/predicates.md (const_call_insn_operand): Likewise.
1332         (general_symbolic_operand): Rename to...
1333         (absolute_symbolic_operand): ...this.
1334         * config/mips/mips.md: Update after above changes.
1335
1336 2007-08-08  Vladimir Yanovsky  <yanov@il.ibm.com>
1337             Revital Eres  <eres@il.ibm.com>
1338
1339         * ddg.c (print_ddg): Add dump information.
1340         * modulo-sched.c (print_node_sched_params): Add parameter and
1341         verbosity.
1342         (calculate_maxii): Remove function.
1343         (undo_generate_reg_moves): Likewise.
1344         (undo_permute_partial_schedule): Likewise.
1345         (kernel_number_of_cycles): Likewise.
1346         (MAXII_FACTOR): New definition to calculate the upper bound of II.
1347         (sms_schedule): Use it.  Remove profitability checks.
1348         (sms_schedule_by_order): Fix order of nodes within the cycle.
1349
1350 2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1351
1352         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
1353         -profile option, add pie support.
1354         (ENDFILE_SPEC): New spec.
1355         * config/gnu.h (LIB_SPEC): Add -profile option.
1356
1357 2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1358
1359         * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
1360         * config/gnu.h (LIB_SPEC): Likewise.
1361
1362 2007-08-07  Yaz Saito  <saito@google.com>
1363             Ian Lance Taylor  <iant@google.com>
1364
1365         * common.opt (finstrument-functions-exclude-function-list): New
1366         option.
1367         (finstrument-functions-exclude-file-list): New option.
1368         * opts.c (char_p): Define and DEF_VEC.
1369         (flag_instrument_functions_exclude_functions): New static
1370         variable.
1371         (flag_instrument_functions_exclude_files): New static variable.
1372         (add_instrument_functions_exclude_list): New static function.
1373         (flag_instrument_functions_exclude_p): New function.
1374         (common_handle_option): Handle new options.
1375         * flags.h (flag_instrument_functions_exclude_p): Declare.
1376         * gimplify.c (gimplify_function_tree): Call
1377         flag_instrument_functions_exclude_p.
1378         * doc/invoke.texi (Option Summary): Mention new options.
1379         (Code Gen Options): Document new options.
1380
1381 2007-08-07  Ian Lance Taylor  <iant@google.com>
1382
1383         PR rtl-optimization/32776
1384         * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
1385         (resolve_use): Likewise.
1386         (decompose_multiword_subregs): Remove "changed" local variable.
1387
1388 2007-08-07  Carlos O'Donell  <carlos@codesourcery.com>
1389
1390         * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
1391         * configure: Regenerate.
1392         * config.in: Regenerate.
1393         * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
1394         spec string.
1395
1396 2007-08-07  Ian Lance Taylor  <iant@google.com>
1397
1398         * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
1399         note, just delete the insn.
1400
1401 2007-08-07  Andreas Schwab  <schwab@suse.de>
1402
1403         PR bootstrap/32973
1404         * gengtype-lex.l: Ignore backslash/newline pair while scanning a
1405         struct definition.
1406
1407 2007-08-07  Andreas Krebbel  <krebbel1@de.ibm.com>
1408
1409         * lower-subreg.c (resolve_subreg_use): Remove assertion.
1410         (find_decomposable_shift_zext, resolve_shift_zext): New functions.
1411         (decompose_multiword_subregs): Use the functions above to decompose
1412         multiword shifts and zero-extends.
1413
1414 2007-08-07  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1415
1416         * doc/sourcebuild.texi (Test Directives): Fix "compile" and
1417         "assemble" descriptions which were swapped.
1418
1419 2007-08-06  Chao-ying Fu  <fu@mips.com>
1420
1421         * fixed-value.h: New file.
1422         * fixed-value.c: New file.
1423         * Makefile.in (OBJS-common): Add fixed-value.o.
1424         (fixed-value.o): New rule.
1425         (GTFILES): Add fixed-value.h.
1426         * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
1427         to compare a.low and b.low.
1428         * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
1429
1430 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
1431             Daniel Jacobowitz  <dan@codesourcery.com>
1432
1433         PR target/31868
1434         * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
1435         tmake_file.
1436         (x86_64-*-netbsd*): Likewise.
1437         (x86_64-*-linux*): Likewise.
1438         (x86_64-*-kfreebsd*-gnu): Likewise.
1439         (x86_64-*-knetbsd*-gnu): Likewise.
1440         (i[34567]86-*-solaris2.1[0-9]*): Likewise.
1441
1442         * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
1443
1444         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
1445         Add -fno-asynchronous-unwind-tables.
1446
1447         * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
1448         * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
1449         * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
1450         * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
1451         * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
1452
1453 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
1454
1455         * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
1456         (TARGET_C_MODE_FOR_SUFFIX): New.
1457
1458 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
1459
1460         * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
1461
1462 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
1463
1464         * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
1465
1466 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
1467
1468         * config/i386/i386.md: Check TARGET_ macros and optimize_size
1469         before checking function returns in conditional expressions.
1470
1471 2007-08-06  Alfred Minarik  <a.minarik@aon.at>
1472
1473         PR pch/13676
1474         * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
1475
1476 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1477
1478         PR middle-end/32988
1479         * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
1480         for INTEGRAL_TYPE_P.
1481
1482 2008-08-05  Paolo Bonzini  <bonzini@gnu.org>
1483
1484         * configure.ac: Remove --enable-checking=df from default settings.
1485         * tree-pass.h (TODO_df_verify): New.  Shift TODO_mark_first_instance.
1486         * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
1487         if the parameter is true.
1488         (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
1489         DF_VERIFY_SCHEDULED flag is true.
1490         * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
1491         (df_finish_pass): Adjust prototype.
1492         * passes.c (execute_todo): Schedule verification if TODO_df_verify is
1493         true.
1494
1495         * see.c (pass_see): Add TODO_df_verify.
1496         * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
1497         * global.c (rest_of_handle_global_alloc): Schedule verification
1498         after the pass.
1499         * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
1500         before the pass.
1501         * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
1502         * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
1503         * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
1504
1505         * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
1506         * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
1507         * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
1508
1509 2007-08-05  Vladimir Yanovsky  <yanov@il.ibm.com>
1510             Revital Eres <eres@il.ibm.com>
1511
1512         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
1513         flag.
1514         * ddg.c (create_ddg_dependence): Rename to...
1515         (create_ddg_dep_from_intra_loop_link): This.  Do not check
1516         for interloop edges.  Do not create anti dependence edge when
1517         a true dependence edge exists in the opposite direction and
1518         -fmodulo-sched-allow-regmoves is set.
1519         (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
1520         (add_cross_iteration_register_deps): Create anti dependence edge
1521         when -fno-modulo-sched-allow-regmoves is set.
1522         * common.opt (-fmodulo-sched-allow-regmoves): New flag.
1523
1524 2007-08-04  Richard Sandiford  <richard@codesourcery.com>
1525
1526         * config/arm/arm.md (movsi): Add braces.
1527
1528 2007-08-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1529
1530         PR middle-end/32780
1531         * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of operands
1532         for the folding of "A - (A & B)" into "~B & A"; cast them to type.
1533
1534 2007-08-03  Zdenek Dvorak  <ook@ucw.cz>
1535
1536         * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state
1537         accessor functions.
1538         * cfgloopmanip.c (remove_path, create_preheaders,
1539         force_single_succ_latches, fix_loop_structure): Ditto.
1540         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
1541         tree_duplicate_loop_to_header_edge): Ditto.
1542         * cfgloopanal.c (mark_irreducible_loops): Ditto.
1543         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
1544         Ditto.
1545         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
1546         cleanup_tree_cfg): Ditto.
1547         * tree-cfg.c (tree_merge_blocks): Ditto.
1548         * cfgloop.c (rescan_loop_exit, record_loop_exits,
1549         release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
1550         loop_preheader_edge, single_exit): Ditto.
1551         (flow_loops_find): Do not clear loops->state.
1552         * cfgloop.h (loops_state_satisfies_p, loops_state_set,
1553         loops_state_clear): New functions.
1554
1555 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1556
1557         PR middle-end/32399
1558         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
1559         when adding to the base and convert ELT to sizetype instead of type.
1560
1561 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1562
1563         PR middle-end/32304
1564         * ipa-reference.c (has_proper_scope_for_analysis): Return false when
1565         the decl's type has TYPE_NEEDS_CONSTRUCTING set.
1566
1567 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1568
1569         PR middle-end/32935
1570         * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
1571          correct type the negate expression.
1572
1573 2007-08-03  Jan Hubicka  <jh@suse.cz>
1574
1575         * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
1576         stack boundary.
1577
1578 2007-08-03  David Edelsohn  <edelsohn@gnu.org>
1579
1580         * config/rs6000/rs6000.c (struct processor_cost): Change
1581         l1_cache_lines to l1_cache_size.  Add l2_cache_size.
1582         (*_cost): Convert l1 cache information to kilobytes.  Add l2 cache
1583         information.
1584         (rios1_costs, rios2_cost): Correct cache line size.
1585         (rs6000_override_options): Set l2-cache-size parameter.
1586
1587 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1588             Diego Novillo  <dnovillo@google.com>
1589
1590         PR 31521
1591         * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
1592         if the range includes 0.
1593
1594 2007-08-03  Ben Elliston  <bje@au.ibm.com>
1595
1596         * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
1597         mode to unspec expressions to silence a warning from the generator
1598         programs.
1599         
1600 2007-08-02  Steve Ellcey  <sje@cup.hp.com>
1601
1602         * config/ia64/constraints.md ("U"): Make constraint vector only.
1603
1604 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
1605
1606         PR middle-end/25446
1607         * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
1608         always_inline attribute on the function decl.
1609
1610 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
1611
1612         PR middle-end/25445
1613         * varasm.c (default_binds_local_p_1): Consult flag_whole_program
1614         if we are compiling with -fPIC.
1615
1616 2007-08-02  Sandra Loosemore  <sandra@codesourcery.com>
1617             Nigel Stephens  <nigel@mips.com>
1618
1619         * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
1620         Define for MIPS32 and MIPS64.
1621
1622 2007-08-02  Nick Clifton  <nickc@redhat.com>
1623
1624         * config/host-hpux.c: Change copyright header to refer to version
1625         3 of the GNU General Public License and to point readers at the
1626         COPYING3 file and the FSF's license web page.
1627         * config/alpha/predicates.md, config/alpha/vms-ld.c,
1628         config/alpha/linux.h, config/alpha/alpha.opt,
1629         config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
1630         config/alpha/vms-unwind.h, config/alpha/ev4.md,
1631         config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
1632         config/alpha/alpha.h, config/alpha/sync.md,
1633         config/alpha/openbsd.h, config/alpha/alpha.md,
1634         config/alpha/alpha-modes.def, config/alpha/ev5.md,
1635         config/alpha/alpha-protos.h, config/alpha/freebsd.h,
1636         config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
1637         config/alpha/constraints.md, config/alpha/osf.h,
1638         config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
1639         config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
1640         config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
1641         config/frv/frv-asm.h, config/frv/frv-protos.h,
1642         config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
1643         config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
1644         config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
1645         config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
1646         config/s390/s390.opt, config/s390/s390-modes.def,
1647         config/s390/fixdfdi.h, config/s390/constraints.md,
1648         config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
1649         config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
1650         config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
1651         config/m32c/m32c-pragma.c, config/m32c/m32c.h,
1652         config/m32c/prologue.md, config/m32c/m32c.abi,
1653         config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
1654         config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
1655         config/m32c/t-m32c, config/m32c/m32c-modes.def,
1656         config/m32c/jump.md, config/m32c/shift.md,
1657         config/m32c/m32c-protos.h, config/libgloss.h,
1658         config/spu/spu-protos.h, config/spu/predicates.md,
1659         config/spu/spu-builtins.h, config/spu/spu.c,
1660         config/spu/spu-builtins.def, config/spu/spu-builtins.md,
1661         config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
1662         config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
1663         config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
1664         config/sparc/hypersparc.md, config/sparc/predicates.md,
1665         config/sparc/linux.h, config/sparc/sp64-elf.h,
1666         config/sparc/supersparc.md, config/sparc/cypress.md,
1667         config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
1668         config/sparc/niagara.md, config/sparc/sparc.md,
1669         config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
1670         config/sparc/sparc.opt, config/sparc/sync.md,
1671         config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
1672         config/sparc/ultra1_2.md, config/sparc/biarch64.h,
1673         config/sparc/sparc.c, config/sparc/little-endian.opt,
1674         config/sparc/sysv4-only.h, config/sparc/sparc.h,
1675         config/sparc/linux64.h, config/sparc/freebsd.h,
1676         config/sparc/sol2.h, config/sparc/rtemself.h,
1677         config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
1678         config/sparc/sparc-modes.def, config/sparc/sparclet.md,
1679         config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
1680         config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
1681         config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
1682         config/m32r/linux.h, config/m32r/constraints.md,
1683         config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
1684         config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
1685         config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
1686         config/i386/i386.md, config/i386/netware-crt0.c,
1687         config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
1688         config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
1689         config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
1690         config/i386/sol2.h, config/i386/constraints.md,
1691         config/i386/netware-libgcc.c, config/i386/sysv5.h,
1692         config/i386/predicates.md, config/i386/geode.md,
1693         config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
1694         config/i386/freebsd64.h, config/i386/vxworksae.h,
1695         config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
1696         config/i386/rtemself.h, config/i386/netbsd-elf.h,
1697         config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
1698         config/i386/netware.h, config/i386/i386-modes.def,
1699         config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
1700         config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
1701         config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
1702         config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
1703         config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
1704         config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
1705         config/i386/xm-mingw32.h, config/i386/linux64.h,
1706         config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
1707         config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
1708         config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
1709         config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
1710         config/i386/cygwin2.c, config/i386/i386-protos.h,
1711         config/i386/sync.md, config/i386/openbsd.h,
1712         config/i386/host-mingw32.c, config/i386/i386-aout.h,
1713         config/i386/nto.h, config/i386/biarch64.h,
1714         config/i386/i386-coff.h, config/i386/freebsd.h,
1715         config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
1716         config/i386/host-i386-darwin.c, config/i386/vxworks.h,
1717         config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
1718         config/darwin-protos.h, config/linux.opt, config/sol2.c,
1719         config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
1720         config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
1721         config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
1722         config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
1723         config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
1724         config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
1725         config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
1726         config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
1727         config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
1728         config/sh/superh64.h, config/sh/rtemself.h,
1729         config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
1730         config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
1731         config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
1732         config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
1733         config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
1734         config/avr/predicates.md, config/avr/constraints.md,
1735         config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
1736         config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
1737         config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
1738         config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
1739         config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
1740         config/c4x/c4x-modes.def, config/c4x/rtems.h,
1741         config/c4x/predicates.md, config/c4x/c4x.h,
1742         config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
1743         config/xtensa/predicates.md, config/xtensa/xtensa.c,
1744         config/xtensa/linux.h, config/xtensa/xtensa.h,
1745         config/xtensa/elf.h, config/xtensa/xtensa.md,
1746         config/xtensa/xtensa.opt, config/xtensa/constraints.md,
1747         config/xtensa/xtensa-protos.h, config/dbx.h,
1748         config/stormy16/predicates.md, config/stormy16/stormy16.md,
1749         config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
1750         config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
1751         config/host-solaris.c, config/fr30/fr30.h,
1752         config/fr30/predicates.md, config/fr30/fr30-protos.h,
1753         config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
1754         config/vxworksae.h, config/sol2-c.c, config/lynx.h,
1755         config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
1756         config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
1757         config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
1758         config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
1759         config/host-linux.c, config/interix3.h, config/cris/cris.c,
1760         config/cris/predicates.md, config/cris/linux.h,
1761         config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
1762         config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
1763         config/cris/aout.opt, config/cris/cris-protos.h,
1764         config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
1765         config/iq2000/iq2000.h, config/iq2000/predicates.md,
1766         config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
1767         config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
1768         config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
1769         config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
1770         config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
1771         config/chorus.h, config/mn10300/mn10300.c,
1772         config/mn10300/mn10300.opt, config/mn10300/predicates.md,
1773         config/mn10300/mn10300.h, config/mn10300/linux.h,
1774         config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
1775         config/mn10300/mn10300.md, config/ia64/predicates.md,
1776         config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
1777         config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
1778         config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
1779         config/ia64/freebsd.h, config/ia64/ia64.md,
1780         config/ia64/ia64-modes.def, config/ia64/constraints.md,
1781         config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
1782         config/gofast.h, config/rtems.h, config/sol2-10.h,
1783         config/m68k/predicates.md, config/m68k/m68k.md,
1784         config/m68k/linux.h, config/m68k/m68k-modes.def,
1785         config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
1786         config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
1787         config/m68k/openbsd.h, config/m68k/m68k-aout.h,
1788         config/m68k/m68k.opt, config/m68k/m68020-elf.h,
1789         config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
1790         config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
1791         config/m68k/constraints.md, config/m68k/rtemself.h,
1792         config/m68k/netbsd-elf.h, config/m68k/m68k.h,
1793         config/m68k/uclinux.h, config/rs6000/power4.md,
1794         config/rs6000/host-darwin.c, config/rs6000/6xx.md,
1795         config/rs6000/linux.h, config/rs6000/eabi.h,
1796         config/rs6000/aix41.opt, config/rs6000/xcoff.h,
1797         config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
1798         config/rs6000/eabialtivec.h, config/rs6000/8540.md,
1799         config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
1800         config/rs6000/windiss.h, config/rs6000/603.md,
1801         config/rs6000/aix41.h, config/rs6000/cell.md,
1802         config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
1803         config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
1804         config/rs6000/darwin.md, config/rs6000/darwin64.h,
1805         config/rs6000/default64.h, config/rs6000/7xx.md,
1806         config/rs6000/darwin.opt, config/rs6000/spe.md,
1807         config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
1808         config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
1809         config/rs6000/7450.md, config/rs6000/linux64.h,
1810         config/rs6000/constraints.md, config/rs6000/440.md,
1811         config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
1812         config/rs6000/rs6000.c, config/rs6000/aix52.h,
1813         config/rs6000/rs6000.h, config/rs6000/power6.md,
1814         config/rs6000/predicates.md, config/rs6000/altivec.md,
1815         config/rs6000/aix64.opt, config/rs6000/rios1.md,
1816         config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
1817         config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
1818         config/rs6000/darwin7.h, config/rs6000/dfp.md,
1819         config/rs6000/linux64.opt, config/rs6000/sync.md,
1820         config/rs6000/vxworksae.h, config/rs6000/power5.md,
1821         config/rs6000/lynx.h, config/rs6000/biarch64.h,
1822         config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
1823         config/rs6000/eabispe.h, config/rs6000/e500.h,
1824         config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
1825         config/rs6000/netbsd.h, config/rs6000/e500-double.h,
1826         config/rs6000/aix.h, config/rs6000/vxworks.h,
1827         config/rs6000/40x.md, config/rs6000/aix51.h,
1828         config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
1829         config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
1830         config/arc/arc.h, config/mcore/mcore-elf.h,
1831         config/mcore/mcore-protos.h, config/mcore/predicates.md,
1832         config/mcore/mcore.md, config/mcore/mcore.c,
1833         config/mcore/mcore.opt, config/mcore/mcore.h,
1834         config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
1835         config/score/predicates.md, config/score/score-version.h,
1836         config/score/score-protos.h, config/score/misc.md,
1837         config/score/elf.h, config/score/score.c, config/score/mac.md,
1838         config/score/score7.md, config/score/score.h,
1839         config/score/score-conv.h, config/score/score-mdaux.c,
1840         config/score/score.md, config/score/score.opt,
1841         config/score/score-modes.def, config/score/score-mdaux.h,
1842         config/score/mul-div.S, config/arm/uclinux-elf.h,
1843         config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
1844         config/arm/symbian.h, config/arm/linux-elf.h,
1845         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
1846         config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
1847         config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
1848         config/arm/strongarm-pe.h, config/arm/arm.h,
1849         config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
1850         config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
1851         config/arm/arm-modes.def, config/arm/linux-eabi.h,
1852         config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
1853         config/arm/arm-cores.def, config/arm/arm-protos.h,
1854         config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
1855         config/arm/wince-pe.h, config/arm/neon.md,
1856         config/arm/constraints.md, config/arm/neon.ml,
1857         config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
1858         config/arm/arm.opt, config/arm/arm926ejs.md,
1859         config/arm/predicates.md, config/arm/iwmmxt.md,
1860         config/arm/arm_neon.h, config/arm/unknown-elf.h,
1861         config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
1862         config/arm/neon-testgen.ml, config/arm/arm.md,
1863         config/arm/xscale-coff.h, config/arm/pe.c,
1864         config/arm/arm-generic.md, config/arm/pe.h,
1865         config/arm/kaos-strongarm.h, config/arm/freebsd.h,
1866         config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
1867         config/arm/strongarm-elf.h, config/arm/cirrus.md,
1868         config/arm/netbsd-elf.h, config/arm/vxworks.h,
1869         config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
1870         config/pa/predicates.md, config/pa/pa64-hpux.h,
1871         config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
1872         config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
1873         config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
1874         config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
1875         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
1876         config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
1877         config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
1878         config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
1879         config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
1880         config/pa/pa64-regs.h, config/pa/pa-modes.def,
1881         config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
1882         config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
1883         config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
1884         config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
1885         config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
1886         config/mips/linux64.h, config/mips/elforion.h,
1887         config/mips/constraints.md, config/mips/generic.md,
1888         config/mips/predicates.md, config/mips/4300.md,
1889         config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
1890         config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
1891         config/mips/5k.md, config/mips/vr4120-div.S,
1892         config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
1893         config/mips/mips-protos.h, config/mips/6000.md,
1894         config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
1895         config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
1896         config/mips/mips-modes.def, config/mips/vr.h,
1897         config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
1898         config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
1899         config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
1900         config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
1901         config/vax/openbsd1.h, config/vax/netbsd.h,
1902         config/vax/vax-protos.h, config/vax/netbsd-elf.h,
1903         config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
1904         config/h8300/rtems.h, config/h8300/predicates.md,
1905         config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
1906         config/h8300/h8300.md, config/h8300/h8300.opt,
1907         config/h8300/coff.h, config/h8300/h8300-protos.h,
1908         config/v850/v850.md, config/v850/predicates.md,
1909         config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
1910         config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
1911         config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
1912         config/mmix/mmix.h, config/mmix/predicates.md,
1913         config/mmix/mmix-protos.h, config/mmix/mmix.md,
1914         config/mmix/mmix.c, config/mmix/mmix.opt,
1915         config/mmix/mmix-modes.def, config/bfin/bfin.opt,
1916         config/bfin/rtems.h, config/bfin/bfin-modes.def,
1917         config/bfin/predicates.md, config/bfin/bfin-protos.h,
1918         config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
1919         Likewise.
1920
1921 2007-08-02  Richard Sandiford  <richard@codesourcery.com>
1922
1923         * emit-rtl.c (reset_used_decls): Rename to...
1924         (set_used_decls): ...this.  Set the used flag rather than clearing it.
1925         (unshare_all_rtl_again): Update accordingly.  Set flags on argument
1926         DECL_RTLs rather than resetting them.
1927
1928 2007-08-02  Andreas Krebbel  <krebbel1@de.ibm.com>
1929
1930         * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
1931
1932 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
1933
1934         * reload.c (find_reloads_address_part):  Pass correct MEMREFLOC
1935         argument to find_reloads_address.
1936
1937 2007-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
1938
1939         PR tree-optimization/32919
1940         * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
1941         * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
1942         (coalesce_ssa_name): Call it.
1943
1944 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
1945             David Ung  <davidu@mips.com>
1946
1947         * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
1948         (__mips16_unorddf2, __mips16_floatunsidf): New.
1949         * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
1950         above functions.
1951         * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
1952
1953 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
1954
1955         * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
1956         Display new operands of OMP_SECTIONS and OMP_CONTINUE.
1957         * tree.h (OMP_SECTIONS_CONTROL): New macro.
1958         (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
1959         * omp-low.c (get_ws_args_for, determine_parallel_type,
1960         expand_omp_for_generic, expand_omp_for_static_nochunk,
1961         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
1962         Work with more precise CFG.
1963         (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
1964         (lower_omp_sections): Emit OMP_SECTIONS_SWITCH.  Add arguments to
1965         OMP_CONTINUE.
1966         * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
1967         * gimple-low.c (lower_stmt): Ditto.
1968         * tree-inline.c (estimate_num_insns_1): Ditto.
1969         * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
1970         (OMP_SECTIONS_SWITCH): New.
1971         * tree-cfgcleanup.c (cleanup_omp_return): New.
1972         (cleanup_tree_cfg_bb): Call cleanup_omp_return.
1973         * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
1974         and exit edge for OMP_FOR.  Handle OMP_SECTIONS_SWITCH.
1975         (tree_redirect_edge_and_branch): Handle omp constructs.
1976
1977         * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
1978         with three arguments.
1979
1980 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
1981
1982         * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
1983         in loop closed ssa.
1984
1985 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
1986
1987         * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
1988         the loop structures may need fixing.
1989         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
1990         New functions.
1991         (cleanup_tree_cfg_loop): Removed.
1992         (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
1993         * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
1994         instead of running cleanup_tree_cfg_loop.
1995         * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
1996         * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
1997         (tree_predictive_commoning): Declaration changed.
1998         * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
1999
2000 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
2001
2002         * doc/invoke.texi (l1-cache-size): Update documentation.
2003         (l2-cache-size): Document.
2004         * params.h (L2_CACHE_SIZE): New macro.
2005         * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
2006         that L1_CACHE_SIZE is in kB now.
2007         (L2_CACHE_SIZE_BYTES): New macro.
2008         (tree_ssa_prefetch_arrays): Show size in kB.
2009         * config/i386/i386.h (struct processor_costs): Add l1_cache_size
2010         and l2_cache_size fields.
2011         * config/i386/driver-i386.c (describe_cache): Detect cache size
2012         in kB.
2013         * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
2014         pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
2015         amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
2016         generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
2017         (override_options): Set l1-cache-size and l2-cache-size to default
2018         values if not specified otherwise.
2019         * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
2020         (PARAM_L2_CACHE_SIZE): New.
2021
2022 2007-08-01  Nigel Stephens  <nigel@mips.com>
2023             David Ung  <davidu@mips.com>
2024             Thiemo Seufer  <ths@mips.com>
2025             Chris Dearman  <chris@mips.com>
2026             Richard Sandiford  <richard@codesourcery.com>
2027
2028         * config.gcc (mips*-sde-elf*): New stanza.
2029         (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
2030         (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
2031         (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
2032         (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
2033         (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
2034         (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
2035         to tmake_file.
2036         * config/mips/sde.h: New file.
2037         * config/mips/t-libgcc-mips16: Likewise.
2038         * config/mips/t-sde: Likewise.
2039         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
2040         of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
2041         _MIPS_FPSET and _MIPS_SZINT.
2042         * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
2043         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
2044         insertion of a default -mips option.  Use MIPS_32BIT_OPTION_SPEC.
2045         * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
2046         * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2047         * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2048         * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
2049         _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
2050         _MIPS_SZPTR and _MIPS_FPSET.
2051         (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
2052         architecture is specified.
2053         (MIPS_32BIT_OPTION_SPEC): New macro.
2054
2055 2007-07-31  Dan Hipschman  <dsh@google.com>
2056
2057         * gcc.c (end_going_arg): New function.
2058         (do_spec_2): Use it.
2059         (do_spec_1): Use it.
2060
2061 2007-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2062
2063         * ddg.c (add_cross_iteration_register_deps): Declare bb_info
2064         only if ENABLE_CHECKING is defined.
2065
2066 2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>
2067
2068         * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
2069         df_ru_add_problem, df_ru_get_bb_info): Removed.
2070         (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
2071         * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
2072         df_ru_free_bb_info, df_ru_alloc,
2073         df_ru_bb_local_compute_process_def,
2074         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
2075         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
2076         df_ru_transfer_function, df_ru_free, df_ru_start_dump,
2077         df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
2078         df_ru_add_problem): Removed.
2079
2080 2007-07-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2081
2082         PR target/32847
2083         * pa.md (casesi32): Use match_scratch.  Revise insn condition.
2084         (casesi32p, casesi64p): Likewise.
2085         (casesi): Adjust for above.
2086
2087 2007-07-31  Richard Sandiford  <richard@codesourcery.com>
2088
2089         * mode-switching.c (create_pre_exit): Don't search past calls.
2090
2091 2007-07-31  Sandra Loosemore  <sandra@codesourcery.com>
2092
2093         * config/mips/mips.h (ISA_HAS_SYNCI):  Add !TARGET_MIPS16 test.
2094
2095 2007-07-31  Revital Eres  <eres@il.ibm.com>
2096
2097         * ddg.c (add_deps_for_def): Rename to...
2098         (add_cross_iteration_register_deps): This.  Change implementation
2099         to use only reaching def and def-use chains to construct the
2100         inter loop dependencies.
2101         (add_deps_for_use): Remove function.
2102         (build_inter_loop_deps): Call add_cross_iteration_register_deps
2103         function to build the inter loop dependencies.
2104         * modulo-sched.c (sms_schedule): Build only
2105         reaching def and def-use chains for the propose of the ddg
2106         construction.
2107
2108 2007-07-31  Julian Brown  <julian@codesourcery.com>
2109
2110         * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
2111         New define_insns. Use correct RTL.
2112         (vec_set<mode>): Write as expander.
2113
2114 2007-07-31  Razya Ladelsky  <razya@il.ibm.com>
2115
2116         * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring 
2117         to an unallocated space.
2118
2119 2007-07-30  Jan Sjodin  <jan.sjodin@amd.com>
2120
2121         * tree-data-ref.c
2122         (split_constant_offset): Enable split_constant_offset to extract
2123         constants from other statements.
2124         * tree-vect-transform.c
2125         (vect_create_addr_base_for_vector_ref): Generate data_ref_base
2126         to a temp var. Force base_offset to be simple.
2127
2128 2007-07-30  Seongbae Park <seongbae.park@gmail.com>
2129
2130         * df-scan.c (df_scan_verify): Remove artificial limit on
2131         the number of blocks for verification.
2132         * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
2133         df_simulate_defs): Avoid unnecessary insn checking for defs.
2134
2135 2007-07-29  Mark Mitchell  <mark@codesourcery.com>
2136
2137         * config/m68k/lb1sf68.asm (FUNC): New macro.
2138         (__mulsi3): Use it.
2139         (__udivsi3): Likewise.
2140         (__divsi3): Likewise.
2141         (__umodsi3): Likewise.
2142         (__modsi3): Likewise.
2143         (__subdf3): Likewise.
2144         (__adddf3): Likewise.
2145         (__muldf3): Likewise.
2146         (__divdf3): Likewise.
2147         (__negdf2): Likewise.
2148         (__cmpdf2): Likewise.
2149         (__subsf3): Likewise.
2150         (__addsf3): Likewise.
2151         (__mulsf3): Likewise.
2152         (__divsf3): Likewise.
2153         (__negsf2): Likewise.
2154         (__cmpsf2): Likewise.
2155         (__eqdf2): Likewise.
2156         (__nedf2): Likewise.
2157         (__gtdf2): Likewise.
2158         (__gedf2): Likewise.
2159         (__ltdf2): Likewise.
2160         (__ledf2): Likewise.
2161         (__eqsf2): Likewise.
2162         (__nesf2): Likewise.
2163         (__gtsf2): Likewise.
2164         (__gesf2): Likewise.
2165         (__ltsf2): Likewise.
2166         (__lesf2): Likewise.
2167
2168 2007-07-30  Ollie Wild  <aaw@google.com>
2169
2170         * c-ppoutput.c (print_lines_directives_only): New function.
2171         (scan_translation_unit_directives_only): New function.
2172         (preprocess_file): Add call to scan_translation_unit_directives_only.
2173         * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
2174         (sanitize_cpp_opts): Add default flag_dump_macros setting for
2175         -fdirectives-only.  Add errors for -fdirectives-only conflict with
2176         -Wunused-macros and -traditional.
2177         (finish_options): Add builtin macro initialization for
2178         -fdirectives-only + -fpreprocessed.
2179         * c.opt (fdirectives-only): New.
2180         * doc/cppopts.texi (fdirectives-only): New.
2181
2182 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2183
2184         * alias.c (record_set, memory_modified_1): Constify.
2185         * bt-load.c (note_btr_set): Likewise.
2186         * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
2187         * combine.c (set_nonzero_bits_and_sign_copies,
2188         expand_field_assignment, record_dead_and_set_regs_1,
2189         use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
2190         likely_spilled_retval_1): Likewise.
2191         * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
2192         frv_io_handle_set): Likewise.
2193         * config/mips/mips.c (mips_sim_record_set,
2194         vr4130_true_reg_dependence_p_1): Likewise.
2195         * config/mt/mt.c (insn_dependent_p_1): Likewise.
2196         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
2197         * config/sh/sh.c (flow_dependent_p_1): Likewise.
2198         * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
2199         * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
2200         * ddg.c (mark_mem_store): Likewise.
2201         * df-problems.c (df_urec_mark_reg_change): Likewise.
2202         * function.c (update_epilogue_consts): Likewise.
2203         * gcse.c (record_set_info, record_last_set_info,
2204         mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
2205         reg_clear_last_set): Likewise.
2206         * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
2207         Likewise.
2208         * jump.c (reversed_comparison_code_parts): Likewise.
2209         * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
2210         reg_is_set): Likewise.
2211         * loop-iv.c (mark_altered): Likewise.
2212         * mode-switching.c (reg_becomes_live): Likewise.
2213         * optabs.c (no_conflict_move_test): Likewise.
2214         * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
2215         Likewise.
2216         * postreload.c (reload_combine_note_store, move2add_note_store):
2217         Likewise.
2218         * regmove.c (flags_set_1): Likewise.
2219         * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
2220         Likewise.
2221         * reload1.c (mark_not_eliminable, forget_old_reloads_1):
2222         Likewise. 
2223         * resource.c (update_live_status): Likewise.
2224         * rtl.h (set_of, note_stores): Likewise.
2225         * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
2226         note_stores, parms_set): Likewise.
2227         * sched-rgn.c (sets_likely_spilled_1): Likewise.
2228         * stack-ptr-mod.c (notice_stack_pointer_modification_1):
2229         Likewise. 
2230         * var-tracking.c (count_stores, add_stores): Likewise.
2231
2232 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2233
2234         * alias.c (mems_in_disjoint_alias_sets_p,
2235         fixed_scalar_and_varying_struct_p, aliases_everything_p,
2236         nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
2237         write_dependence_p, mems_in_disjoint_alias_sets_p,
2238         read_dependence, true_dependence, canon_true_dependence,
2239         anti_dependence, output_dependence): Constify.
2240         * combine.c (extended_count): Likewise.
2241         * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
2242         * cselib.c (get_value_hash, references_value_p,
2243         cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
2244         * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
2245         * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
2246         * function.c (contains, prologue_epilogue_contains,
2247         sibcall_epilogue_contains): Likewise. 
2248         * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
2249         pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
2250         only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
2251         reg_or_subregno): Likewise.
2252         * recog.c (asm_noperands): Likewise.
2253         * reload1.c (function_invariant_p): Likewise.
2254         * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
2255         rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
2256         condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
2257         simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
2258         true_regnum, reg_or_subregno, condjump_in_parallel_p,
2259         extended_count, prologue_epilogue_contains,
2260         sibcall_epilogue_contains, function_invariant_p, true_dependence,
2261         canon_true_dependence, read_dependence, anti_dependence,
2262         output_dependence): Likewise.
2263         * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
2264
2265 2007-07-30  Julian Brown  <julian@codesourcery.com>
2266
2267         * config/arm/neon.md (V_ext): New mode attribute.
2268         (neon_vget_lane<mode>): Replace with define_expand.
2269         (neon_vget_lane<mode>_sext_internal)
2270         (neon_vget_lane<mode>_zext_internal): New define_insns for double
2271         and quad precision vectors.
2272         (neon_vget_lanedi): Add bounds check. Remove dead comment.
2273         * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
2274         have typeless 32-bit result.
2275
2276 2007-07-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2277
2278         PR tree-opt/32527
2279         * tree-affine.h (aff_tree): The type of rest is sizetype for types
2280         of pointers.
2281         * tree-affine.c (aff_combination_scale): If type is a pointer type,
2282         use sizetype for rest.
2283         (aff_combination_add_elt): Likewise. Don't specialize pointer types.
2284         (aff_combination_convert): Don't convert rest for pointer types.
2285
2286 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
2287
2288         * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
2289
2290         * tree-ssa-alias.c: Add alloc-pool.h.
2291         (init_alias_info): Free alias_bitmap_obstack.
2292         (delete_alias_info): Call delete_mem_ref_stats.
2293         (get_mem_sym_stats_for): Use alloc_pool.
2294         (init_mem_ref_stats): Do not delete mem_ref_stats here.
2295         (delete_mem_sym_stats): Removed.
2296         
2297 2007-07-29  Sebastian Pop  <sebpop@gmail.com>
2298
2299         * tree-data-ref.c (add_multivariate_self_dist): Parametric access
2300         functions cannot be represented as classical distance vectors.
2301
2302 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2303
2304         * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
2305         * builtins.c (validate_arg, builtin_mathfn_code,
2306         validate_arglist): Likewise.
2307         * calls.c (call_expr_flags): Likewise.
2308         * combine.c (reg_nonzero_bits_for_combine,
2309         reg_num_sign_bit_copies_for_combine, get_last_value,
2310         reg_truncated_to_mode): Likewise.
2311         * emit-rtl.c (subreg_lowpart_p): Likewise.
2312         * expr.c (highest_pow2_factor_for_target,
2313         categorize_ctor_elements_1, categorize_ctor_elements,
2314         count_type_elements, contains_packed_reference,
2315         highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
2316         * fold-const.c (may_negate_without_overflow_p, int_const_binop,
2317         fold_convertible_p, operand_equal_p, tree_swap_operands_p,
2318         native_encode_int, native_encode_real, native_encode_complex,
2319         native_encode_vector, native_encode_expr, native_interpret_int,
2320         native_interpret_real, native_interpret_complex,
2321         native_interpret_vector, native_interpret_expr): Likewise.
2322         * function.c (use_register_for_decl): Likewise.
2323         * gimplify.c (get_name): Likewise.
2324         * langhooks-def.h (lhd_return_null_const_tree): New.
2325         (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
2326         * langhooks.c (lhd_return_null_const_tree): New.
2327         * langhooks.h (lang_get_callee_fndecl): Constify.
2328         * output.h (constructor_static_from_elts_p): Likewise.
2329         * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
2330         * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
2331         subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
2332         * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
2333         cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
2334         nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
2335         * rtlhooks-def.h (reg_nonzero_bits_general,
2336         reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
2337         Likewise. 
2338         * rtlhooks.c (reg_num_sign_bit_copies_general,
2339         reg_nonzero_bits_general, reg_truncated_to_mode_general):
2340         Likewise. 
2341         * stmt.c (warn_if_unused_value, is_body_block): Likewise.
2342         * stor-layout.c (mode_for_size_tree): Likewise.
2343         * tree-ssa-loop-im.c (memref_eq): Likewise.
2344         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
2345         * tree.c (contains_placeholder_p, type_list_equal,
2346         simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
2347         Likewise. 
2348         * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
2349         mode_for_size_tree, categorize_ctor_elements, count_type_elements,
2350         contains_placeholder_p, contains_packed_reference,
2351         get_callee_fndecl, operand_equal_for_phi_arg_p,
2352         warn_if_unused_value, is_body_block, native_encode_expr,
2353         native_interpret_expr, fold_convertible_p, operand_equal_p,
2354         int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
2355         validate_arglist, simple_cst_equal, type_list_equal,
2356         use_register_for_decl, call_expr_flags, get_name,
2357         highest_pow2_factor): Likewise.
2358         (const_call_expr_arg_iterator_d,
2359         init_const_call_expr_arg_iterator, next_const_call_expr_arg,
2360         first_const_call_expr_arg, more_const_call_expr_args_p,
2361         FOR_EACH_CONST_CALL_EXPR_ARG): New.
2362         * varasm.c (constructor_static_from_elts_p): Constify.
2363
2364 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
2365
2366         * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
2367         config/arm/neon-schedgen.ml, config/arm/neon.ml,
2368         config/arm/vec-common.md, config/ia64/div.md, cselib.c,
2369         df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
2370         regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
2371         tree-vect-transform.c, tree.def: Fix comment typos.  Follow
2372         spelling conventions.
2373         * doc/invoke.texi: Follow spelling conventions.
2374
2375 2007-07-29  Vladimir Yanovsky  <yanov@il.ibm.com>
2376             Revital Eres  <eres@il.ibm.com>
2377
2378         * modulo-sched.c (sms_schedule): Avoid loops which includes
2379         auto-increment instructions.
2380
2381 2007-07-28  Richard Guenther  <rguenther@suse.de>
2382
2383         PR middle-end/32920
2384         * fold-const.c (fold_cond_expr_with_comparison): Convert
2385         operand zero of MIN/MAX_EXPR to correct type.
2386
2387 2007-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2388
2389         * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
2390         flags_from_decl_or_type): Constify.
2391         * gcc.c (do_spec_1): Likewise.
2392         * print-tree.c (dump_addr, print_node_brief): Likewise.
2393         * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
2394         simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
2395         tree_purge_all_dead_eh_edges): Likewise.
2396         * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
2397         tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
2398         Likewise. 
2399         * tree.c (expr_location, expr_has_location, expr_locus,
2400         expr_filename, expr_lineno, get_inner_array_type,
2401         fields_compatible_p): Likewise.
2402         * tree.h (get_inner_array_type, fields_compatible_p,
2403         expr_location, expr_has_location, expr_locus, expr_filename,
2404         expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
2405         setjmp_call_p, alloca_call_p): Likewise.
2406
2407 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
2408
2409         * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
2410         TV_FLOW_INSENSITIVE.
2411
2412         * tree-ssa-alias.c (compute_call_clobbered): Push/pop
2413         TV_CALL_CLOBBER.
2414         (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
2415         (compute_flow_insensitive_aliasing): Ditto for
2416         TV_FLOW_INSENSITIVE.    
2417
2418 2007-07-27  Jan Hubicka  <jh@suse.cz>
2419
2420         * config/i386/i386.c (register_move_cost): Remove accidentally comitted
2421         #if 0 block.
2422
2423         * attribs.c: Include hashtab.h
2424         (attribute_hash): New.
2425         (substring): New structure.
2426         (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
2427         New function.
2428         (init_attributes): Initialize attribute hash.
2429         (decl_attributes): Use attribute hash.
2430         * Makefile.in (attribs.c): Depend on hashtab.h.
2431
2432 2007-07-27  Steve Ellcey  <sje@cup.hp.com>
2433
2434         * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
2435
2436 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
2437
2438         * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
2439         __mips_dspr2 and __mips_dsp_rev macros.
2440         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
2441
2442 2007-07-27  Douglas Gregor  <doug.gregor@gmail.com>
2443         
2444        * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
2445
2446 2007-07-26  Kenneth Zadeck <zadeck@naturalbridge.com>
2447
2448         PR middle-end/32749
2449         
2450         * df-problems.c (df_create_unused_note): Removed do_not_gen parm
2451         and the updating of the live and do_not_gen sets.
2452         (df_note_bb_compute): Added updating of live and do_not_gen sets
2453         for regular defs so that the case of clobber inside conditional
2454         call is processed correctly.
2455         
2456 2007-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
2457
2458         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
2459         operands with compatible type.
2460
2461 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
2462
2463         * expr.h (store_bit_field): Don't return a value.
2464         * expmed.c (check_predicate_volatile_ok): New function.
2465         (store_bit_field_1): New function, extracted from store_bit_field.
2466         Take a fallback_p argument and return true if the operation succeeded.
2467         Only use store_fixed_bit_field if fallback_p.  Don't recompute
2468         mode_for_extraction; use op_mode instead.  Try forcing memories
2469         into registers if the insv expander fails.
2470         (store_bit_field): Use store_bit_field_1 with fallback_p true.
2471         Don't return a value.
2472         (convert_extracted_bit_field): New function, extracted from
2473         store_bit_field.
2474         (extract_bit_field_1): Likewise.  Take a fallback_p argument
2475         and return NULL if the operation succeeded.  Only use
2476         extract_fixed_bit_field if fallback_p.  Only calculate one
2477         extraction mode.  Combine code for extv and extzv.  Try forcing
2478         memories into registers if the ext(z)v expander fails.
2479         (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
2480
2481 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
2482
2483         * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
2484         into bitfields.
2485         (df_ref): Likewise.  Put regno with other integer fields.
2486
2487 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
2488
2489         * df.h (df_mw_hardreg): Remove "loc" field.
2490         * df-scan.c (df_ref_record): Don't set it.  Remove redundant
2491         local variable.
2492         * df-problems.c (df_whole_mw_reg_unused_p): New function,
2493         split out from df_set_unused_notes_for_mw.  Return false for
2494         partial references.  Assert that mw_reg is a REG when returning true.
2495         (df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
2496         (df_whole_mw_reg_dead_p): New function, split out from
2497         df_set_dead_notes_for_mw.  Return false for partial references.
2498         Assert that mw_reg is a REG when returning true.
2499         (df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
2500         Remove redundant bitmap check.
2501
2502 2007-07-26  H.J. Lu  <hongjiu.lu@intel.com>
2503
2504         * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
2505         ($(T)crtend.o): Likwise.
2506         ($(T)crtbeginS.o): Likwise.
2507         ($(T)crtendS.o): Likwise.
2508         ($(T)crtfastmath.o): Likwise.
2509
2510 2007-07-26  Zdenek Dvorak  <dvorakz@suse.cz>
2511
2512         * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
2513         * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
2514         * basic-block.h (struct control_flow_graph): Added x_dom_computed
2515         and x_n_bbs_in_dom_tree fields.
2516
2517 2007-07-26  Steve Ellcey  <sje@cup.hp.com>
2518
2519         PR tree-optimization/32087
2520         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
2521         Do not call scale_bbs_frequencies_int with prob of zero.
2522
2523 2007-07-26  Julian Brown  <julian@codesourcery.com>
2524
2525         * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
2526         (neon_element_bits): Add prototypes.
2527         * config/arm/arm.c (bounds_check, neon_lane_bounds)
2528         (neon_const_bounds, neon_element_bits): New functions.
2529         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
2530         (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
2531         (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
2532         (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
2533         (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
2534         (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
2535         (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
2536         (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
2537         (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
2538         (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
2539         (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
2540         (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
2541         (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
2542
2543 2007-07-26  Nathan Froyd  <froydnj@codesourcery.com>
2544
2545         * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
2546         (HAVE_AS_GNU_ATTRIBUTE): Undefine.
2547
2548 2007-07-26  Mark Shinwell  <shinwell@codesourcery.com>
2549             Julian Brown  <julian@codesourcery.com>
2550
2551         * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
2552         * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
2553         * config/arm/cortex-a8.md: New.
2554         * config/arm/cortex-a8-neon.md: New.
2555         * config/arm/neon-schedgen.ml: New.
2556         * config/arm/neon.md (vqh_mnem): New.
2557         (neon_type): New.
2558         (Is_float_mode): New.
2559         (Scalar_mul_8_16): New.
2560         (Is_d_reg): New.
2561         (V_mode_nunits): New.
2562         (All instruction patterns): Annotate with neon_type attribute
2563         values.
2564         * config/arm/arm.md: Include cortex-a8.md.
2565         (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
2566         values.
2567         Annotate instruction patterns accordingly.
2568         (generic_sched): Do not use generic scheduling for Cortex-A8.
2569         (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
2570
2571 2007-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
2572
2573         * fold-const.c (fold_read_from_constant_string): Use
2574         build_int_cst_type.
2575         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
2576
2577 2007-07-26  Nick Clifton  <nickc@redhat.com>
2578
2579         * tree-ssa-operands.h: Change copyright header to refer to version
2580         3 of the GNU General Public License and to point readers at the
2581         COPYING3 file and the FSF's license web page.
2582         * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
2583         sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
2584         tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
2585         targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
2586         tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
2587         hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
2588         flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
2589         opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
2590         gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
2591         cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
2592         rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
2593         optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
2594         tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
2595         genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
2596         reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
2597         c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
2598         rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
2599         tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
2600         diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
2601         gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
2602         input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
2603         gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
2604         cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
2605         graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
2606         genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
2607         tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
2608         reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
2609         real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
2610         omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
2611         tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
2612         regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
2613         tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
2614         scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
2615         double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
2616         dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
2617         gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
2618         hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
2619         ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
2620         c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
2621         tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
2622         xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
2623         tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
2624         gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
2625         mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
2626         alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
2627         dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
2628         expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
2629         genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
2630         timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
2631         tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
2632         recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
2633         dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
2634         matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
2635         tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
2636         lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
2637         ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
2638         ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
2639         langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
2640         sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
2641         gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
2642         ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
2643         init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
2644         loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
2645         mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
2646         opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
2647         insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
2648         tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
2649         dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
2650         bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
2651         coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
2652         stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
2653         cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
2654         tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
2655         loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
2656         lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
2657         tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
2658         tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
2659         ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
2660         varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
2661         sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
2662         target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
2663         omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
2664         intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
2665         sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
2666         genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
2667         tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
2668         bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
2669         cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
2670         cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
2671         tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
2672         c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
2673         fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
2674         vecprim.h, basic-block.h, tree-ssa-structalias.c,
2675         tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
2676         passes.c, genconstants.c, c-incpath.c, c-incpath.h,
2677         struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
2678         varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
2679         reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
2680         stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
2681         params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
2682         tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
2683         convert.c, convert.h, langhooks-def.h, reload1.c,
2684         tree-ssa-operands.c: Likewise.
2685
2686 2007-07-26  Jan Hubicka  <jh@suse.cz>
2687
2688         * tree-ssa-live.c: Include debug.h and flags.h.
2689         (mark_scope_block_unused): New function.
2690         (remove_unused_scope_block_p): New function.
2691         (remove_unused_locals): Remove unused blocks too.
2692
2693 2007-07-25  Ian Lance Taylor  <iant@google.com>
2694
2695         * combine.c (combine_max_regno): Remove.  Remove all uses.
2696         (struct reg_stat_struct): Rename from struct reg_stat.
2697         (reg_stat_type): Define, and declare VECs.
2698         (reg_stat): Change from pointer to VEC.  Change all uses.
2699         (combine_split_insns): New static function.
2700         (try_combine, find_split_point): Call it instead of split_insns.
2701
2702 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
2703
2704         * cfghooks.c (split_block): Fix the information about loop latch.
2705
2706 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
2707
2708         * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
2709
2710 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
2711
2712         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
2713         Scan the new edge for loop exit info.
2714
2715 2007-07-25  Andreas Tobler  <a.tobler@schweiz.org>
2716
2717         * config/darwin.c: Include debug.h.
2718
2719 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
2720
2721         PR target/32218
2722         * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
2723
2724 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
2725
2726         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
2727         (HARD_REGNO_MODE_OK): Ditto.
2728         (MODES_TIEABLE_P): Ditto.
2729         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
2730         (CLASS_MAX_NREGS): Ditto.
2731         * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
2732         * config/ia64/ia64.md (divsf3_internal_thr): Removed.
2733         (divdf3_internal_thr): Removed.
2734         * config/ia64/div.md: New file.
2735         * config/ia64/constraints.md: Add H constraint.
2736
2737 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2738
2739         * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
2740         sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
2741         sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
2742         sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
2743         sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
2744         sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
2745         sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
2746         sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
2747         sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
2748         dump_sbitmap_file, debug_sbitmap, popcount_table,
2749         sbitmap_popcount): Constify.
2750         * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
2751         (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
2752         dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
2753         sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
2754         sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
2755         sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
2756         sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
2757         sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
2758         sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
2759         sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
2760         sbitmap_popcount, sbitmap_verify_popcount): Constify.
2761
2762 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2763
2764         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
2765         bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
2766         bitmap_first_set_bit, bitmap_and, bitmap_and_into,
2767         bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
2768         bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
2769         bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
2770         bitmap_intersect_p, bitmap_intersect_compl_p,
2771         bitmap_ior_and_compl, bitmap_ior_and_compl_into,
2772         debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
2773         Constify.
2774         * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
2775         bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
2776         bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
2777         bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
2778         bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
2779         debug_bitmap, debug_bitmap_file, bitmap_print,
2780         bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
2781         bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
2782
2783 2007-07-25  Daniel Berlin  <dberlin@dberlin.org>
2784
2785         * config/darwin.c (darwin_override_options): Additional fix for
2786         debug info formats that don't support var tracking.
2787
2788 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2789
2790         * cselib.c (entry_and_rtx_equal_p): Constify.
2791         * gengtype.c (output_mangled_typename, write_types, write_local):
2792         Likewise.
2793         * gengtype.h (const_type_p): New.
2794         * see.c (eq_descriptor_extension, hash_descriptor_extension):
2795         Constify.
2796         * tlink.c (scan_linker_output): De-constify.
2797         * tree-ssa-loop-im.c (memref_eq): Constify.
2798         * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
2799         (shared_bitmap_hash, shared_bitmap_eq): Constify.
2800
2801 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2802
2803         * c-common.c (fname_as_string, c_type_hash): Constify.
2804         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
2805         * cgraph.c (edge_hash, edge_eq): Likewise.
2806         * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
2807         * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
2808         reg_attrs_htab_eq): Likewise.
2809         * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
2810         Likewise.
2811         * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
2812         const_decl_t, const_state_t, const_automata_list_el_t): New.
2813         (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
2814         DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
2815         automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
2816         insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
2817         reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
2818         automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
2819         compare_max_occ_cycle_nums, out_state_arcs_num,
2820         compare_transition_els_num, units_cmp, state_reservs_cmp):
2821         Constify.
2822         * genmodes.c (cmp_modes): Likewise.
2823         * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
2824         * gimplify.c (compare_case_labels): Likewise.
2825         * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
2826         * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
2827         * matrix-reorg.c (mtt_info_hash): Likewise.
2828         * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
2829         * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
2830         (htab_hash_bucket, htab_hash_elem): Constify.
2831         * tree-browser.c (TB_parent_eq): Likewise.
2832         * tree-scalar-evolution.c (hash_scev_info): Likewise.
2833         * tree-ssa-alias.c (sort_tags_by_id): Likewise.
2834         * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
2835         (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
2836         Constify.
2837         * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
2838         * tree-ssa-pre.c (const_expr_pred_trans_t): New.
2839         (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
2840         * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
2841         const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
2842         New.
2843         (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
2844         vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
2845         vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
2846         * tree-ssa-threadupdate.c (redirection_data_hash,
2847         redirection_data_eq): Likewise. 
2848         * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
2849         * tree-ssa.c (var_ann_eq): Likewise.
2850         * tree-vrp.c (compare_case_labels): Likewise.
2851         * tree.c (int_cst_hash_hash, int_cst_hash_eq,
2852         tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
2853         tree_not_check_failed, tree_class_check_failed,
2854         tree_range_check_failed, tree_not_class_check_failed,
2855         omp_clause_check_failed, omp_clause_range_check_failed,
2856         tree_contains_struct_check_failed, tree_operand_check_failed):
2857         Likewise. 
2858         * tree.h (tree_contains_struct_check_failed, tree_check_failed,
2859         tree_not_check_failed, tree_class_check_failed,
2860         tree_range_check_failed, tree_not_class_check_failed,
2861         tree_operand_check_failed, omp_clause_operand_check_failed,
2862         tree_operand_length): Likewise. 
2863         * var-tracking.c (const_variable): New.
2864         (variable_htab_hash, variable_htab_eq): Constify.
2865         * varasm.c (const_desc_hash): Likewise.
2866
2867 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2868
2869         * expr.c (handled_component_p): Constify.
2870         * fold-const.c (fit_double_type): Likewise.
2871         * real.h (real_value_from_int_cst): Likewise.
2872         * tree-flow-inline.h (gimple_in_ssa_p,
2873         gimple_aliases_computed_p, gimple_addressable_vars,
2874         gimple_call_clobbered_vars, gimple_referenced_vars,
2875         gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
2876         end_htab_p, end_referenced_vars_p, var_ann, function_ann,
2877         may_aliases, end_readonly_imm_use_p, has_zero_uses,
2878         has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
2879         is_label_stmt, is_global_var, phi_ssa_name_p,
2880         factoring_name_p, is_call_clobbered, tree_common_ann,
2881         op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
2882         unmodifiable_var_p, array_ref_contains_indirect_ref,
2883         ref_contains_array_ref, lookup_subvars_for_var,
2884         var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
2885         gimple_mem_ref_stats): Likewise.
2886         * tree-flow.h (tree_common_ann, var_ann, function_ann,
2887         may_aliases, is_exec_stmt, is_label_stmt,
2888         ref_contains_array_ref, array_ref_contains_indirect_ref,
2889         var_can_have_subvars, overlap_subvar, is_call_clobbered,
2890         unmodifiable_var_p): Likewise.
2891         * tree-gimple.c (is_gimple_min_invariant): Likewise.
2892         * tree-gimple.h (is_gimple_min_invariant): Likewise. 
2893         * tree.c (type_hash_list, attribute_hash_list, tree_size,
2894         cst_and_fits_in_hwi, real_value_from_int_cst,
2895         build_real_from_int_cst, integer_zerop, integer_onep,
2896         integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
2897         tree_floor_log2, real_zerop, real_onep, real_twop,
2898         real_minus_onep, really_constant_p, purpose_member, chain_member,
2899         list_length, fields_length, int_size_in_bytes, bit_position,
2900         int_bit_position, byte_position, int_byte_position, expr_align,
2901         array_type_nelts, tree_node_structure,
2902         type_contains_placeholder_1, iterative_hash_pointer,
2903         is_attribute_with_length_p, is_attribute_p, check_qualified_type,
2904         tree_map_base_eq, type_hash_list, type_hash_eq,
2905         attribute_hash_list, type_num_arguments, tree_int_cst_equal,
2906         tree_int_cst_lt, tree_int_cst_compare, host_integerp,
2907         tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
2908         simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
2909         int_fits_type_p, get_containing_scope, decl_function_context,
2910         decl_type_context, omp_clause_operand_check_failed,
2911         initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
2912         * tree.h (omp_clause_operand_check_failed, tree_size,
2913         build_real_from_int_cst, array_type_nelts, purpose_member,
2914         tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
2915         host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
2916         is_attribute_p, check_qualified_type, expr_align,
2917         int_size_in_bytes, bit_position, int_bit_position, byte_position,
2918         int_byte_position, list_length, fields_length, initializer_zerop,
2919         integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
2920         integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
2921         tree_node_structure, handled_component_p, get_containing_scope,
2922         decl_function_context, decl_type_context, real_zerop,
2923         type_num_arguments, fit_double_type, really_constant_p,
2924         int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
2925         compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
2926         real_twop, real_minus_onep, int_cst_value): Likewise.
2927
2928 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2929
2930         * cfglayout.c (insn_scope, insn_line): Constify.
2931         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
2932         const_double_htab_hash, const_double_htab_eq,
2933         mem_attrs_htab_hash): Likewise.
2934         * loop-iv.c (biv_eq): Likewise.
2935         * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
2936         print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
2937         debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
2938         Likewise. 
2939         * rtl-error.c (location_for_asm, diagnostic_for_asm,
2940         error_for_asm, warning_for_asm, _fatal_insn,
2941         _fatal_insn_not_found): Likewise. 
2942         * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
2943         rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
2944         rtl_check_failed_type2, rtl_check_failed_code1,
2945         rtl_check_failed_code2, rtl_check_failed_code_mode,
2946         rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
2947         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
2948         rtl_check_failed_type2, rtl_check_failed_code1,
2949         rtl_check_failed_code2, rtl_check_failed_code_mode,
2950         rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
2951         SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
2952         shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
2953         get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
2954         mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
2955         rtx_unstable_p, get_integer_term, get_related_value,
2956         offset_within_block_p, reg_mentioned_p, count_occurrences,
2957         reg_referenced_p, reg_used_between_p, no_labels_between_p,
2958         single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
2959         reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
2960         find_reg_note, find_regno_note, find_reg_equal_equiv_note,
2961         find_constant_src, find_reg_fusage, find_regno_fusage,
2962         pure_call_p, remove_note, side_effects_p, volatile_refs_p,
2963         volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
2964         may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
2965         computed_jump_p, auto_inc_p, in_expr_list_p,
2966         remove_node_from_expr_list, loc_mentioned_in_p,
2967         label_is_jump_target_p, reversed_comparison_code_parts,
2968         debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
2969         print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
2970         print_inline_rtx): Likewise.
2971         * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
2972         computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
2973         rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
2974         get_integer_term, get_related_value, offset_within_block_p,
2975         count_occurrences, reg_mentioned_p, no_labels_between_p,
2976         reg_used_between_p, reg_referenced_p, single_set_2,
2977         multiple_sets, set_noop_p, refers_to_regno_p,
2978         reg_overlap_mentioned_p, dead_or_set_p,
2979         covers_regno_no_parallel_p, covers_regno_p,
2980         dead_or_set_regno_p, find_reg_note, find_regno_note,
2981         find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
2982         find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
2983         remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
2984         side_effects_p, may_trap_p_1, may_trap_p,
2985         may_trap_after_code_motion_p, may_trap_or_fault_p,
2986         inequality_comparisons_p, tablejump_p, computed_jump_p_1,
2987         computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
2988         subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
2989         * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
2990         mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
2991         Likewise. 
2992         * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
2993         warning_for_asm): Likewise.
2994         * tree.h (print_rtl): Likewise.
2995         * varasm.c (get_pool_mode): Likewise.
2996
2997 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2998
2999         * c-lex.c (c_lex_with_flags, lex_string): Constify.
3000         * c-ppoutput.c (print_line, pp_dir_change): Likewise.
3001         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
3002         * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
3003         * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
3004         * ddg.c (compare_sccs): Likewise.
3005         * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
3006         * dfp.c (decimal_real_from_string, decimal_to_decnumber,
3007         decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
3008         decimal_do_fix_trunc, decimal_real_to_integer,
3009         decimal_real_to_integer2, decimal_real_maxval): Likewise.
3010         * dse.c (const_group_info_t): New.
3011         (invariant_group_base_eq, invariant_group_base_hash): Constify.
3012         * dwarf2out.c (const_dw_die_ref): New.
3013         (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
3014         * tree-browser.c (TB_parent_eq): Likewise.
3015         * unwind-dw2-fde.c (__register_frame_info_bases,
3016         __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
3017         add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
3018         Likewise.
3019         * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
3020         * unwind-dw2.c (uw_frame_state_for): Likewise.
3021         * value-prof.c (histogram_hash, histogram_eq): Likewise.
3022         * value-prof.h (const_histogram_value): New.
3023
3024 2007-07-25  Richard Sandiford  <richard@codesourcery.com>
3025
3026         * config/mips/mips.c (machine_function): Add
3027         initialized_mips16_gp_pseudo_p.
3028         (mips16_gp_pseudo_reg): Do not emit the initialization of
3029         mips16_gp_pseudo_rtx when being called from the gimple cost-
3030         calculation routines; emit it on the first use outside those
3031         routines.
3032
3033 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3034
3035         * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
3036         New.
3037         
3038         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
3039         RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
3040         RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
3041         RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
3042         RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
3043         Preserve const-ness of parameters through use of __typeof(),
3044         also constify and tidy.
3045         
3046         * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
3047         TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
3048         NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
3049         CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
3050         OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
3051         GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
3052         PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
3053         TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
3054         TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
3055
3056 2007-07-25  Julian Brown  <julian@codesourcery.com>
3057             Mark Shinwell  <shinwell@codesourcery.com>
3058
3059         * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
3060         (alpha_mangle_type): This.
3061         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3062         (TARGET_MANGLE_TYPE): Define this instead.
3063         * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
3064         * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
3065         (arm_init_neon_builtins): Fix comment.
3066         (arm_mangle_map_entry): New.
3067         (arm_mangle_map): New.
3068         (arm_mangle_type): New.
3069         * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
3070         (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
3071         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
3072         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3073         (TARGET_MANGLE_TYPE): Define this instead.
3074         * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
3075         (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT  and restrict
3076         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
3077         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3078         (TARGET_MANGLE_TYPE): Define this instead.
3079         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
3080         to...
3081         (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
3082         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3083         (TARGET_MANGLE_TYPE): Define this instead.
3084         * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
3085         (s390_mangle_type): This.
3086         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3087         (TARGET_MANGLE_TYPE): Define this instead.
3088         * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
3089         (sparc_mangle_type): This.
3090         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3091         (TARGET_MANGLE_TYPE): Define this instead.
3092         * cp/mangle.c (write_type): Call mangle_type target hook on all
3093         types before mangling.  Use original type, not main variant, as
3094         argument.
3095         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
3096         (TARGET_MANGLE_TYPE): This.
3097         * target.h (gcc_target): Rename mangle_fundamental_type to
3098         mangle_type.
3099         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
3100         (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
3101
3102 2007-07-25  Julian Brown  <julian@codesourcery.com>
3103             Paul Brook  <paul@codesourcery.com>
3104             Joseph Myers  <joseph@codesourcery.com>
3105             Mark Shinwell  <shinwell@codesourcery.com>
3106
3107         * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
3108         * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
3109         (with_fpu): Allow --with-fpu=neon.
3110         * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
3111         * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
3112         * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
3113         * config/arm/arm-protos.h (neon_immediate_valid_for_move)
3114         (neon_immediate_valid_for_logic, neon_output_logic_immediate)
3115         (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
3116         (neon_emit_pair_result_insn, neon_disambiguate_copy)
3117         (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
3118         (output_move_neon): Add prototypes.
3119         * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
3120         (all_fpus): Add FPUTYPE_NEON.
3121         (fp_model_for_fpu): Add NEON field.
3122         (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
3123         (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
3124         in registers.
3125         (arm_legitimate_address_p): Don't support fancy addressing for NEON
3126         structure moves.
3127         (thumb2_legitimate_address_p): Likewise.
3128         (neon_valid_immediate): Recognize and prepare constants suitable for
3129         NEON instructions.
3130         (neon_immediate_valid_for_move): New function. Recognize and prepare
3131         immediates for NEON move instructions.
3132         (neon_immediate_valid_for_logic): New function. Recognize and
3133         prepare immediates for NEON logic instructions.
3134         (neon_output_logic_immediate): New function. Create asm string
3135         suitable for outputting immediate logic instructions.
3136         (neon_pairwise_reduce): New function. Implement reduction using
3137         pairwise operations.
3138         (neon_expand_vector_init): New function. Expand a (possibly
3139         non-constant) vector initialization.
3140         (neon_vector_mem_operand): New function. Memory operands supported
3141         for quad-word loads/stores to/from ARM or NEON registers. Don't
3142         allow base+offset addressing for core regs.
3143         (neon_struct_mem_operand): New function. Valid mems for NEON
3144         structure moves.
3145         (coproc_secondary_reload_class): Enable NEON registers to be loaded
3146         from neon_vector_mem_operand addresses without a secondary register.
3147         (add_minipool_forward_ref): Handle >8-byte minipool entries.
3148         (add_minipool_backward_ref): Likewise.
3149         (dump_minipool): Likewise.
3150         (push_minipool_fix): Likewise.
3151         (output_move_quad): New function. Output quad-word moves, loads and
3152         stores using ARM registers.
3153         (output_move_vfp): Add support for vectors in VFP (NEON) D
3154         registers.
3155         (output_move_neon): Output a NEON load/store to/from a quadword
3156         register.
3157         (arm_print_operand): Implement new codes:
3158         - 'c' for unadorned integers (without a # sign).
3159         - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
3160         mode.
3161         - 'e', 'f' for the low and high D parts of a NEON Q register.
3162         - 'q' outputs a NEON Q register.
3163         - 'h' outputs ranges of D registers for VLDM/VSTM etc.
3164         - 'T' prints NEON opcode features from a coded bitmask.
3165         - 'F' is similar to T, but signed/unsigned codes both print as
3166         'i'.
3167         - 't' is similar to T, but 'u' is printed instead of 'p'.
3168         - 'O' prints 'r' if NEON instruction should perform rounding (as
3169         specified by bitmask), else prints nothing.
3170         - '#' is a punctuation character to stop operand numbers from
3171         running together with following digits in the assembler
3172         strings for instructions (when using mode attributes).
3173         (arm_assemble_integer): Handle extra NEON vector modes. Permute
3174         constant vectors in big-endian mode, where necessary.
3175         (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
3176         Handle EI, OI, CI, XI modes.
3177         (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
3178         (ashrv2si3): Rename IWMMXT2_BUILTINs to...
3179         (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
3180         (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
3181         (neon_builtin_type_bits): Add enumeration, one bit for each vector
3182         type.
3183         (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
3184         (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
3185         to turn v8qi, etc. into bits defined above.
3186         (neon_itype): New enumeration. Classifications of NEON builtins.
3187         (neon_builtin_datum): Define struct. Contains information about
3188         a single builtin (with multiple modes).
3189         (CF): Define helper macro for...
3190         (VAR1...VAR10): Define builtins with a type, name and 1-10 different
3191         modes.
3192         (neon_builtin_data): New array. Define information about builtins
3193         for use during initialization/expansion.
3194         (arm_init_neon_builtins): New function.
3195         (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
3196         true.
3197         (neon_builtin_compare): New function.
3198         (locate_neon_builtin_icode): New function. Find an insn code for a
3199         builtin given a function code for that builtin. Also return type of
3200         builtin (NEON_BINOP, NEON_UNOP etc.).
3201         (builtin_arg): New enumeration. Types of arguments for builtins.
3202         (arm_expand_neon_args): New function. Expand a generic NEON builtin.
3203         Takes a variable argument list of builtin_arg types, terminated by
3204         NEON_ARG_STOP.
3205         (arm_expand_neon_builtin): New function. Expand a NEON builtin.
3206         (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
3207         (neon_emit_pair_result_insn): New function. Support returning pairs
3208         of vectors via a pointer.
3209         (neon_disambiguate_copy): New function. Set up operands for a
3210         multi-word copy such that registers do not get clobbered.
3211         (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
3212         ARM_BUILTIN_NEON_BASE.
3213         (arm_file_start): Set float-abi attribute for NEON.
3214         (arm_vector_mode_supported_p): Enable NEON vector modes.
3215         (arm_mangle_map_entry): New.
3216         (arm_mangle_map): New.
3217         (arm_mangle_vector_type): New.
3218         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
3219         when appropriate.
3220         (TARGET_NEON): New macro. Target supports NEON.
3221         (fputype): Add FPUTYPE_NEON.
3222         (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
3223         for vectorization based on command-line arg.
3224         (NEON_REGNO_OK_FOR_NREGS): Define.
3225         (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
3226         (VALID_NEON_STRUCT_MODE): Define.
3227         (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
3228         (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
3229         * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
3230         (consttable_16): Add pattern for outputting 16-byte minipool
3231         entries.
3232         (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
3233         vec-common.md).
3234         (vec-common.md, neon.md): Include md files.
3235         * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
3236         * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
3237         (memory_constraint "Ut", "Un", "Us"): Define.
3238         * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
3239         (MMX_char): New mode attribute.
3240         (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
3241         (*add<mode>3_iwmmxt): New insn pattern.
3242         (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
3243         (*sub<mode>3_iwmmxt): New insn pattern.
3244         (mulv4hi3): Rename to...
3245         (*mulv4hi3_iwmmxt): This.
3246         (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
3247         (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
3248         (uminv4hi3, uminv2si3): Remove. Replace with...
3249         (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
3250         (*umin<mode>3_iwmmxt): These.
3251         (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
3252         (ashr<mode>3_iwmmxt): This new pattern.
3253         (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
3254         (lshr<mode>3_iwmmxt): This new pattern.
3255         (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
3256         (ashl<mode>3_iwmmxt): This new pattern.
3257         * config/arm/neon-docgen.ml: New file. Generate documentation for
3258         intrinsics.
3259         * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
3260         * config/arm/arm_neon.h: New (autogenerated).
3261         * config/arm/neon-testgen.ml: New file. Generate NEON tests
3262         automatically.
3263         * config/arm/neon.md: New file. Define NEON instructions.
3264         * config/arm/neon.ml: New file. Abstract description of NEON
3265         instructions, used to generate arm_neon.h header, documentation and
3266         tests.
3267         * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
3268         * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
3269         support.
3270         * doc/extend.texi (ARM Built-in Functions): Rename and remove
3271         extraneous comma.
3272         (ARM NEON Intrinsics): New subsection.
3273         * doc/arm-neon-intrinsics.texi: New (autogenerated).
3274
3275 2007-07-25  Danny Smith   <dannysmith@users.sourceforge.net>
3276
3277         * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
3278         prototype.
3279
3280 2007-07-24  Jan Hubicka  <jh@suse.cz>
3281
3282         * regclass.c (move_table): New type.
3283         (move_cost, may_move_in_cost, may_move_out_cost): Use it.
3284         (init_move_cost): Break out from ...
3285         (init_reg_sets_1): ... here; simplify computation of
3286         have_regs-of_mode and contains_reg_of_mode.
3287         (record_reg_classes): Unswitch internal loops.
3288         (copy_cost): Trigger lazy initialization of move cost
3289         (record_address_regs): Likewise.
3290
3291 2007-07-24  Daniel Berlin  <dberlin@dberlin.org>
3292
3293         * config/darwin.c (darwin_override_options): Don't force on
3294         flag_var_tracking_uninit when no debug info is requested.
3295
3296 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
3297
3298         * cfgloop.c (init_loops_structure): New function.
3299         (flow_loops_find): Create root of the loop tree unconditionally.
3300
3301 2007-07-24  Daniel Jacobowitz  <dan@codesourcery.com>
3302
3303         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
3304
3305 2007-07-24  Jan Hubicka  <jh@suse.cz>
3306
3307         * caller-save.c: Include ggc.h, gt-caller-save.h
3308         (reg_save_code, reg_restore_code): Rename to ...
3309         (cached_reg_save_code, cached_reg_restore_code): ... those.
3310         (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
3311         (reg_save_code, reg_restore_code): New functions.
3312         (init_caller_save): Do not intialize