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