1 2007-08-22 Christian Bruel <christian.bruel@st.com>
2 Richard Guenther <rguenther@suse.de>
4 * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
5 * simplify_rtx (simplify_binary_operation_1): Likewise.
7 2007-08-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
9 PR rtl-optimization/32557
10 * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
11 of REGNO (mws->mw_reg).
13 2007-08-22 Richard Guenther <rguenther@suse.de>
16 * builtins.c (expand_builtin_int_roundingfn): Replace call
17 argument wrapped with SAVE_EXPR directly.
18 (expand_builtin_int_roundingfn_2): Likewise.
20 2007-08-22 Richard Guenther <rguenther@suse.de>
22 * tree-inline.c (inlinable_function_p): Restore disregarding
23 inline limits for GNU extern inline functions.
25 2007-08-22 Richard Guenther <rguenther@suse.de>
28 * tree.c (host_integerp): Treat sizetype as signed as it is
31 2007-08-21 Ian Lance Taylor <iant@google.com>
33 PR tree-optimization/33134
34 * tree-vrp.c (adjust_range_with_scev): Call
35 set_value_range_to_value.
37 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
39 * value-prof.h (gimple_remove_histogram_value): Remove duplicate
42 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
44 * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
47 2007-08-21 Nathan Froyd <froydnj@codesourcery.com>
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.
53 2007-08-21 Jakub Jelinek <jakub@redhat.com>
56 * dwarf2out.c (gen_decl_die): Don't call
57 gen_tagged_type_instantiation_die if decl doesn't have tagged type.
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>
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.
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):
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;
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.
92 2007-08-21 Uros Bizjak <ubizjak@gmail.com>
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.
99 2007-08-21 Jakub Jelinek <jakub@redhat.com>
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.
105 2007-08-21 Richard Guenther <rguenther@suse.de>
107 * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
109 2007-08-21 Richard Guenther <rguenther@suse.de>
112 * fold-const.c (fold_binary): Remove index +p PTR folding.
113 Fix types of POINTER_PLUS_EXPR generated by folding of
116 2007-08-20 Chao-ying Fu <fu@mips.com>
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.
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
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.
180 2007-08-20 Pawel Sikora <pluto@pld-linux.org>
182 * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
184 2007-08-20 David Edelsohn <edelsohn@gnu.org>
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.
191 2007-08-20 Richard Guenther <rguenther@suse.de>
193 * c-typeck.c (convert_for_assignment): Use the type of
194 the member for the initialization.
196 2007-08-20 Richard Guenther <rguenther@suse.de>
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):
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):
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.
216 2007-08-20 Richard Guenther <rguenther@suse.de>
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
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.
233 2007-08-20 Richard Guenther <rguenther@suse.de>
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
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
257 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
265 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
266 Serge Belyshev <belyshev@depni.sinp.msu.ru>
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
276 (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
277 ptr_type in the second operand.
279 2007-08-19 Andrew Pinski <pinskia@gmail.com>
282 * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
284 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
287 * cfgexpand.c (expand_one_register_var): Mark pointer
288 DECL_ARTIFICIAL as REG_POINTER also.
289 * stmt.c (expand_decl): Likewise.
291 2007-08-19 Daniel Berlin <dberlin@dberlin.org>
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
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
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
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
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
320 * tree-ssa-structalias.c (struct constraint_graph): Remove
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.
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.
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
353 (free_var_substitution_info): Update to free HU and location
354 equivalence structures. */
355 (find_equivalent_node): Update for pointer but not location
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.
379 2007-08-19 Jan Hubicka <jh@suse.cz>
381 * i386.md: Replace "rim" and "mri" constraints by "g".
383 2007-08-19 Joseph Myers <joseph@codesourcery.com>
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.
395 2007-08-19 Andrew Pinski <pinskia@gmail.com>
397 * tree-pretty-print.c (debug_generic_expr): Add a comment about
399 (debug_generic_stmt): Likewise.
400 (debug_tree_chain): Likewise.
402 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
404 * tree-data-refs.c (split_constant_offset): Expose.
405 * tree-data-refs.h (split_constant_offset): Add declaration.
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.
416 * tree-vectorizer.c (vect_supportable_dr_alignment): Add
418 In case of outer-loop vectorization with non-fixed misalignment - use
419 the dr_explicit_realign scheme instead of the optimized realignment
421 (new_stmt_vec_info): Initialize new fields.
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.
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
464 (vect_get_vec_def_for_operand): Likewise.
465 (vect_setup_realignment): Likewise.
466 (vectorizable_load): Likewise.
468 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
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
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.
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.
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
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
519 (vect_create_epilog_for_reduction): Extend to handle outer-loop
521 (vect_transform_loop): Change assert to just skip this case. Add a
523 (vect_finish_stmt_generation): Add a couple asserts.
525 (vect_estimate_min_profitable_iters): Multiply
526 cost of inner-loop stmts (in outer-loop vectorization) by estimated
528 (vect_model_reduction_cost): Don't add reduction epilogue cost in case
529 this is an inner-loop reduction in outer-loop vectorization.
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
543 (vect_analyze_data_refs): Check that there are no datarefs in the
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.
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).
561 2007-08-18 Andrew Pinski <pinskia@gmail.com>
563 * tree-affine.h (print_aff): New prototype.
564 (debug_aff): Likewise.
565 * tree-affine.c (print_aff): New function.
566 (debug_aff): Likewise.
568 2007-08-18 Paul Brook <paul@codesourcery.com>
569 Joseph Myers <joseph@codesourcery.com>
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.
595 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
597 * loop-invariant.c (find_invariants_to_move): Add missing macro
600 2007-08-17 Tom Tromey <tromey@redhat.com>
602 * tree.h (struct tree_label_decl): Removed old "java" fields.
604 2007-08-17 Richard Sandiford <richard@codesourcery.com>
605 Nigel Stephens <nigel@mips.com>
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.
614 2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
616 * Makefile.in (version.o): Depend on $(REVISION) only if
617 REVISION_s is defined.
619 2007-08-17 Sa Liu <saliu@de.ibm.com>
620 Ulrich Weigand <uweigand@de.ibm.com>
623 * tree.c (reconstruct_complex_type): For a pointer to a vector,
624 use build_qualified_type to retain qualifiers of the base type.
626 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
628 * config/score/score.md : Update pattern tablejump.
629 * config/score/score.c : Update score_initialize_trampoline
631 * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
632 (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
633 * doc/contrib.texi: Add my entry.
635 2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
637 * Makefile.in (REVISION): New.
640 (version.o): Also depend on $(REVISION). Add
641 -DREVISION=$(REVISION_s).
643 * version.c (version_string): Add REVISION.
645 2007-08-16 Seongbae Park <seongbae.park@gmail.com>
647 * tree-eh.c (lower_try_finally_onedest): Reset the locus
648 of GOTO that's relocated to a different block.
650 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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.
689 2007-08-16 Victor Kaplansky <victork@il.ibm.com>
691 * tree-vectorizer.c (new_loop_vec_info): Initialize new
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
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):
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.
722 2007-08-16 Uros Bizjak <ubizjak@gmail.com>
724 * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
725 the same line as the instruction for all asm dialects.
727 (*rep_movsi_rex64): 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.
755 2007-08-16 Richard Sandiford <richard@codesourcery.com>
758 * reload.c (find_reloads): Check that the memory returned by
759 find_reloads_toplev was not the result of forcing a constant
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.
766 2007-08-15 David Edelsohn <edelsohn@gnu.org>
768 * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
771 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com>
773 * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
774 directive for the current vector ABI.
776 2007-08-15 Steve Ellcey <sje@cup.hp.com>
779 * caller-save.c (reg_save_code): Set invalide status on restore code.
781 2007-08-15 Diego Novillo <dnovillo@google.com>
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.
791 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
793 * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
794 scheduler dependencies.
796 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
798 * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
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.
806 2007-08-15 Jakub Jelinek <jakub@redhat.com>
809 * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
812 2007-08-14 Daniel Berlin <dberlin@dberlin.org>
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
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
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.
831 2007-08-14 Kai Tietz <kai.tietz@onevision.com>
833 * i386.c: (legitimize_address): Move dllimported variable check
834 infront of legitimizing pic address of CONST symbols.
836 2007-08-14 Steve Ellcey <sje@cup.hp.com>
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.
846 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
858 * expr.h (safe_from_p): Likewise.
859 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
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,
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.
893 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
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.
910 2007-08-14 Andrew Pinski <pinskia@gmail.com>
913 * c-typeck.c (build_binary_op): Disallow vector float types with
914 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
916 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
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
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
935 (INSN_BACK_DEPS): Remove.
936 (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
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
948 (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): New
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
957 (FOR_EACH_DEP): New cycle wrapper.
958 (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
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):
964 * sched-deps.c (init_dep_1): Make global.
965 (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
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
972 (move_dep_link): Use remove_from_deps_list (), instead of
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
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
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):
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):
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):
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
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
1049 (sched_init): Initialize new variable.
1050 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
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
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
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
1066 (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
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.
1083 * sched-ebb.c (earliest_block_with_similiar_load): Update to use
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.
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.
1093 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
1094 to use new interfaces.
1095 (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
1097 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
1099 (is_costly_group): Ditto.
1101 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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):
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):
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):
1142 * pointer-set.h (pointer_set_contains, pointer_map_contains):
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):
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):
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):
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):
1189 2007-08-13 Dan Hipschman <dsh@google.com>
1192 * c-format.c (check_format_arg): Move check for zero-length
1193 format strings below the check for unterminated strings.
1195 2007-08-13 Andrew Pinski <pinskia@gmail.com>
1198 * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
1201 2007-08-13 Nick Clifton <nickc@redhat.com>
1203 * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
1205 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
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.
1213 2007-08-12 Sa Liu <saliu@de.ibm.com>
1215 * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
1216 and with REG_RETVAL note after split.
1218 2007-08-11 David Daney <ddaney@avtrex.com>
1220 * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
1221 as ATTRIBUTE_UNUSED.
1223 2007-08-11 David Edelsohn <edelsohn@gnu.org>
1224 Segher Boessenkool <segher@kernel.crashing.org>
1226 * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
1227 HAVE_LOCAL_CPU_DETECT not defined.
1229 2007-08-11 Jan Hubicka <jh@suse.cz>
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.
1236 2007-08-11 Ian Lance Taylor <iant@google.com>
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
1288 (alpha_setup_incoming_varargs): Use alias_set_type.
1289 * config/i386/i386.c (setup_incoming_varargs_64): Use
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
1299 * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
1300 * config/sparc/sparc.c (sparc_sr_alias_set): Change to
1302 (struct_value_alias_set): Likewise.
1303 * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
1305 2007-08-11 Richard Sandiford <richard@codesourcery.com>
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.
1312 2007-08-11 Richard Sandiford <richard@codesourcery.com>
1314 * calls.c (avoid_likely_spilled_reg): New function.
1315 (expand_call): Use it.
1317 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1319 * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
1321 2007-08-10 Adam Nemet <anemet@caviumnetworks.com>
1323 * config/mips/predicates.md (const_call_insn_operand): Invoke
1324 SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
1326 2007-08-10 David Edelsohn <edelsohn@gnu.org>
1329 * config/rs6000/driver-rs6000.c: Include link.h.
1330 Use ElfW instead of wordsize-specif typedef.
1332 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
1346 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
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
1353 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com>
1355 * lower-subreg.c (resolve_shift_zext): Don't adjust
1356 src_reg_num for wordmode operands.
1358 2007-08-10 Sandra Loosemore <sandra@codesourcery.com>
1359 David Ung <davidu@mips.com>
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
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.
1373 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
1375 * tree-flow-inline.h (get_filename): Remove.
1377 2007-08-10 Richard Sandiford <richard@codesourcery.com>
1379 * config/mips/mips-protos.h (mips_address_insns): Add a boolean
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.
1394 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
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.
1410 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
1413 * c-typeck.c (build_binary_op): Check for non pointer types before
1414 calling int_fits_type_p.
1416 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
1423 2007-08-09 Daniel Berlin <dberlin@dberlin.org>
1425 * c-typeck.c (readonly_error): Improve error for assignment.
1427 * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
1429 (pp_c_expression): Ditto.
1431 2007-08-09 Simon Baldwin <simonb@google.com>
1433 * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
1434 break that was preventing simplify_associative_operation() for xor.
1436 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
1437 Nigel Stephens <nigel@mips.com>
1439 * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
1440 Document change in interpretation of value from boolean to
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
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.
1451 2007-08-09 Jan Hubicka <jh@suse.cz>
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):
1553 2007-08-09 Michael Matz <matz@suse.de>
1555 * tree.h (fixed_zerop): Declare as taking a const_tree.
1556 * tree.c (fixed_zerop): Take a const_tree.
1558 2007-08-09 Ira Rosen <irar@il.ibm.com>
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.
1568 2007-08-08 Chao-ying Fu <fu@mips.com>
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.
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
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
1681 (type_for_widest_vector_mode): Add one parameter for the
1683 Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
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
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
1740 (fold_convert_const_real_from_fixed): New function to convert from
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
1746 (fold_convert_const_fixed_from_real): New function to convert from
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
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
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.
1783 2007-08-08 David Edelsohn <edelsohn@gnu.org>
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.
1797 2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
1799 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
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>
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.
1852 2007-08-08 Richard Sandiford <richard@codesourcery.com>
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.
1884 2007-08-08 Richard Sandiford <richard@codesourcery.com>
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.
1901 2007-08-08 Richard Sandiford <richard@codesourcery.com>
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.
1913 2007-08-08 Richard Sandiford <richard@codesourcery.com>
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.
1925 2007-08-08 Richard Sandiford <richard@codesourcery.com>
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
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.
1953 2007-08-08 Richard Sandiford <richard@codesourcery.com>
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.
1970 2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com>
1971 Revital Eres <eres@il.ibm.com>
1973 * ddg.c (print_ddg): Add dump information.
1974 * modulo-sched.c (print_node_sched_params): Add parameter and
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.
1984 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
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.
1991 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
1993 * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
1994 * config/gnu.h (LIB_SPEC): Likewise.
1996 2007-08-07 Yaz Saito <saito@google.com>
1997 Ian Lance Taylor <iant@google.com>
1999 * common.opt (finstrument-functions-exclude-function-list): New
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
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.
2015 2007-08-07 Ian Lance Taylor <iant@google.com>
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.
2022 2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
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
2030 2007-08-07 Ian Lance Taylor <iant@google.com>
2032 * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
2033 note, just delete the insn.
2035 2007-08-07 Andreas Schwab <schwab@suse.de>
2038 * gengtype-lex.l: Ignore backslash/newline pair while scanning a
2041 2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
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.
2048 2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk>
2050 * doc/sourcebuild.texi (Test Directives): Fix "compile" and
2051 "assemble" descriptions which were swapped.
2053 2007-08-06 Chao-ying Fu <fu@mips.com>
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.
2064 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
2065 Daniel Jacobowitz <dan@codesourcery.com>
2068 * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
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.
2076 * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
2078 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
2079 Add -fno-asynchronous-unwind-tables.
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.
2087 2007-08-06 Steve Ellcey <sje@cup.hp.com>
2089 * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
2090 (TARGET_C_MODE_FOR_SUFFIX): New.
2092 2007-08-06 Steve Ellcey <sje@cup.hp.com>
2094 * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
2096 2007-08-06 Steve Ellcey <sje@cup.hp.com>
2098 * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
2100 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
2102 * config/i386/i386.md: Check TARGET_ macros and optimize_size
2103 before checking function returns in conditional expressions.
2105 2007-08-06 Alfred Minarik <a.minarik@aon.at>
2108 * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
2110 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
2113 * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
2114 for INTEGRAL_TYPE_P.
2116 2008-08-05 Paolo Bonzini <bonzini@gnu.org>
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
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
2133 * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
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.
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.
2143 2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com>
2144 Revital Eres <eres@il.ibm.com>
2146 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
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.
2158 2007-08-04 Richard Sandiford <richard@codesourcery.com>
2160 * config/arm/arm.md (movsi): Add braces.
2162 2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
2168 2007-08-03 Zdenek Dvorak <ook@ucw.cz>
2170 * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state
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):
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.
2189 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
2195 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2198 * ipa-reference.c (has_proper_scope_for_analysis): Return false when
2199 the decl's type has TYPE_NEEDS_CONSTRUCTING set.
2201 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2204 * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
2205 correct type the negate expression.
2207 2007-08-03 Jan Hubicka <jh@suse.cz>
2209 * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
2212 2007-08-03 David Edelsohn <edelsohn@gnu.org>
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
2218 (rios1_costs, rios2_cost): Correct cache line size.
2219 (rs6000_override_options): Set l2-cache-size parameter.
2221 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2222 Diego Novillo <dnovillo@google.com>
2225 * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
2226 if the range includes 0.
2228 2007-08-03 Ben Elliston <bje@au.ibm.com>
2230 * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
2231 mode to unspec expressions to silence a warning from the generator
2234 2007-08-02 Steve Ellcey <sje@cup.hp.com>
2236 * config/ia64/constraints.md ("U"): Make constraint vector only.
2238 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
2241 * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
2242 always_inline attribute on the function decl.
2244 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
2247 * varasm.c (default_binds_local_p_1): Consult flag_whole_program
2248 if we are compiling with -fPIC.
2250 2007-08-02 Sandra Loosemore <sandra@codesourcery.com>
2251 Nigel Stephens <nigel@mips.com>
2253 * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
2254 Define for MIPS32 and MIPS64.
2256 2007-08-02 Nick Clifton <nickc@redhat.com>
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:
2555 2007-08-02 Richard Sandiford <richard@codesourcery.com>
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.
2562 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
2564 * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
2566 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
2568 * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
2569 argument to find_reloads_address.
2571 2007-08-01 Daniel Jacobowitz <dan@codesourcery.com>
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.
2578 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
2579 David Ung <davidu@mips.com>
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
2585 * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
2587 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
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
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.
2611 * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
2612 with three arguments.
2614 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
2616 * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
2619 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
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):
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.
2634 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
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
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.
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>
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
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.
2689 2007-07-31 Dan Hipschman <dsh@google.com>
2691 * gcc.c (end_going_arg): New function.
2692 (do_spec_2): Use it.
2693 (do_spec_1): Use it.
2695 2007-07-31 H.J. Lu <hongjiu.lu@intel.com>
2697 * ddg.c (add_cross_iteration_register_deps): Declare bb_info
2698 only if ENABLE_CHECKING is defined.
2700 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
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.
2714 2007-07-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2717 * pa.md (casesi32): Use match_scratch. Revise insn condition.
2718 (casesi32p, casesi64p): Likewise.
2719 (casesi): Adjust for above.
2721 2007-07-31 Richard Sandiford <richard@codesourcery.com>
2723 * mode-switching.c (create_pre_exit): Don't search past calls.
2725 2007-07-31 Sandra Loosemore <sandra@codesourcery.com>
2727 * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
2729 2007-07-31 Revital Eres <eres@il.ibm.com>
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
2742 2007-07-31 Julian Brown <julian@codesourcery.com>
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.
2748 2007-07-31 Razya Ladelsky <razya@il.ibm.com>
2750 * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring
2751 to an unallocated space.
2753 2007-07-30 Jan Sjodin <jan.sjodin@amd.com>
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.
2762 2007-07-30 Seongbae Park <seongbae.park@gmail.com>
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.
2769 2007-07-29 Mark Mitchell <mark@codesourcery.com>
2771 * config/m68k/lb1sf68.asm (FUNC): New macro.
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.
2802 2007-07-30 Ollie Wild <aaw@google.com>
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.
2816 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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):
2850 * postreload.c (reload_combine_note_store, move2add_note_store):
2852 * regmove.c (flags_set_1): Likewise.
2853 * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
2855 * reload1.c (mark_not_eliminable, forget_old_reloads_1):
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):
2864 * var-tracking.c (count_stores, add_stores): Likewise.
2866 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
2899 2007-07-30 Julian Brown <julian@codesourcery.com>
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.
2910 2007-07-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
2913 * tree-affine.h (aff_tree): The type of rest is sizetype for types
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.
2920 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
2922 * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
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.
2931 2007-07-29 Sebastian Pop <sebpop@gmail.com>
2933 * tree-data-ref.c (add_multivariate_self_dist): Parametric access
2934 functions cannot be represented as classical distance vectors.
2936 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
2972 * rtlhooks.c (reg_num_sign_bit_copies_general,
2973 reg_nonzero_bits_general, reg_truncated_to_mode_general):
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):
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.
2998 2007-07-28 Kazu Hirata <kazu@codesourcery.com>
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.
3009 2007-07-29 Vladimir Yanovsky <yanov@il.ibm.com>
3010 Revital Eres <eres@il.ibm.com>
3012 * modulo-sched.c (sms_schedule): Avoid loops which includes
3013 auto-increment instructions.
3015 2007-07-28 Richard Guenther <rguenther@suse.de>
3018 * fold-const.c (fold_cond_expr_with_comparison): Convert
3019 operand zero of MIN/MAX_EXPR to correct type.
3021 2007-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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.
3041 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
3043 * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
3044 TV_FLOW_INSENSITIVE.
3046 * tree-ssa-alias.c (compute_call_clobbered): Push/pop
3048 (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
3049 (compute_flow_insensitive_aliasing): Ditto for
3050 TV_FLOW_INSENSITIVE.
3052 2007-07-27 Jan Hubicka <jh@suse.cz>
3054 * config/i386/i386.c (register_move_cost): Remove accidentally comitted
3057 * attribs.c: Include hashtab.h
3058 (attribute_hash): New.
3059 (substring): New structure.
3060 (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
3062 (init_attributes): Initialize attribute hash.
3063 (decl_attributes): Use attribute hash.
3064 * Makefile.in (attribs.c): Depend on hashtab.h.
3066 2007-07-27 Steve Ellcey <sje@cup.hp.com>
3068 * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
3070 2007-07-27 Richard Sandiford <richard@codesourcery.com>
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.
3076 2007-07-27 Douglas Gregor <doug.gregor@gmail.com>
3078 * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
3080 2007-07-26 Kenneth Zadeck <zadeck@naturalbridge.com>
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.
3090 2007-07-27 Zdenek Dvorak <dvorakz@suse.cz>
3092 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
3093 operands with compatible type.
3095 2007-07-27 Richard Sandiford <richard@codesourcery.com>
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
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.
3115 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
3117 * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
3119 (df_ref): Likewise. Put regno with other integer fields.
3121 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
3123 * df.h (df_mw_hardreg): Remove "loc" field.
3124 * df-scan.c (df_ref_record): Don't set it. Remove redundant
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.
3136 2007-07-26 H.J. Lu <hongjiu.lu@intel.com>
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.
3144 2007-07-26 Zdenek Dvorak <dvorakz@suse.cz>
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.
3151 2007-07-26 Steve Ellcey <sje@cup.hp.com>
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.
3157 2007-07-26 Julian Brown <julian@codesourcery.com>
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.
3177 2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
3179 * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
3180 (HAVE_AS_GNU_ATTRIBUTE): Undefine.
3182 2007-07-26 Mark Shinwell <shinwell@codesourcery.com>
3183 Julian Brown <julian@codesourcery.com>
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.
3192 (Is_float_mode): New.
3193 (Scalar_mul_8_16): New.
3195 (V_mode_nunits): New.
3196 (All instruction patterns): Annotate with neon_type attribute
3198 * config/arm/arm.md: Include cortex-a8.md.
3199 (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
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.
3205 2007-07-26 Daniel Jacobowitz <dan@codesourcery.com>
3207 * fold-const.c (fold_read_from_constant_string): Use
3209 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3211 2007-07-26 Nick Clifton <nickc@redhat.com>
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.
3320 2007-07-26 Jan Hubicka <jh@suse.cz>
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.