OSDN Git Service

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