OSDN Git Service

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