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