re PR middle-end/33074 (ICE in copy_insn_1, at emit-rtl.c:4925)
[gcc.git] / gcc / ChangeLog
1 2007-08-15 Jakub Jelinek <jakub@redhat.com>
2
3 PR middle-end/33074
4 * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
5 REG_LIBCALL note.
6
7 2007-08-14 Daniel Berlin <dberlin@dberlin.org>
8
9 * tree-pass.h (PROP_pta): Removed.
10 (TODO_rebuild_alias): New.
11 (pass_may_alias): Removed.
12 * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
13 aliasing if we changed something.
14 * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update
15 SSA internally.
16 (pass_may_alias): Removed.
17 (create_structure_vars): Return TODO_rebuild_alias.
18 * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
19 * tree-sra.c (tree_sra): Only rebuild aliasing if something
20 changed.
21 (tree_sra_early): We never affect aliasing right now.
22 * tree-flow.h (compute_may_aliases): New prototype.
23 * passes.c: Remove pass_may_alias from the passes.
24 (execute_function_todo): Support TODO_rebuild_alias.
25
26 2007-08-14 Kai Tietz <kai.tietz@onevision.com>
27
28 * i386.c: (legitimize_address): Move dllimported variable check
29 infront of legitimizing pic address of CONST symbols.
30
31 2007-08-14 Steve Ellcey <sje@cup.hp.com>
32
33 PR tree-optimization/32941
34 * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
35 (goto_queue_cmp): Remove.
36 (find_goto_replacement): Change search method.
37 (maybe_record_in_goto_queue): Add assert.
38 (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
39 * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
40
41 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
42
43 * alias.c (component_uses_parent_alias_set): Constify.
44 * alias.h (component_uses_parent_alias_set): Likewise.
45 * cfgrtl.c (print_rtl_with_bb): Likewise.
46 * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
47 mpz_get_double_int): Likewise.
48 * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
49 mpz_get_double_int): Likewise.
50 * expr.c (is_aligning_offset, undefined_operand_subword_p,
51 mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
52 Likewise.
53 * expr.h (safe_from_p): Likewise.
54 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
55 Likewise.
56 * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
57 zero_sized_type, goa_lhs_expr_p): Likewise.
58 * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
59 * rtl.h (print_rtl_with_bb): Likewise.
60 * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
61 * tree-cfg.c (const_first_stmt, const_last_stmt): New.
62 * tree-flow-inline.h (bb_stmt_list): Constify.
63 (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
64 cbsi_stmt): New.
65 * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
66 const_first_stmt, const_last_stmt): New.
67 (block_may_fallthru, empty_block_p): Constify.
68 * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
69 EXPR_ONLY_BODY): New.
70 (expr_first, expr_last, expr_only): Use macro for body.
71 (const_expr_first, const_expr_last, const_expr_only): New.
72 * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
73 ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
74 ctsi_prev, ctsi_stmt): New.
75 * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
76 * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
77 * tree-ssa-loop-niter.c (loop_only_exit_p,
78 derive_constant_upper_bound): Likewise.
79 * tree-ssa-phiopt.c (empty_block_p): Likewise.
80 * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
81 * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
82 * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
83 * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
84 * tree.c (get_type_static_bounds): Likewise.
85 * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
86 (get_type_static_bounds): Constify.
87
88 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
89
90 PR target/30315
91 * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
92 * config/i386/i386.md (plusminus)(addsub)(SWI): New.
93 (*<addsub><mode>3_cc_overflow): New.
94 (*add<mode>3_cconly_overflow): New.
95 (*sub<mode>3_cconly_overflow): New.
96 (*<addsub>si3_zext_cc_overflow): New.
97 * config/i386/predicates.md (fcmov_comparison_operator): Accept
98 CCCmode for LTU, GTU, LEU and GEU.
99 (ix86_comparison_operator): Likewise.
100 (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
101 * config/i386/i386.c (put_condition_code): Support CCCmode.
102 (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
103 or MINUS expressions.
104
105 2007-08-14 Andrew Pinski <pinskia@gmail.com>
106
107 PR c/30428
108 * c-typeck.c (build_binary_op): Disallow vector float types with
109 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
110
111 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
112
113 * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
114 (DEP_KIND): Rename to DEP_TYPE. Update all uses.
115 (dep_def): New typedef.
116 (init_dep_1, sd_debug_dep): Declare functions.
117 (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
118 (debug_dep_links): Remove.
119 (struct _deps_list): New field 'n_links'.
120 (DEPS_LIST_N_LINKS): New macro.
121 (FOR_EACH_DEP_LINK): Remove.
122 (create_deps_list, free_deps_list, delete_deps_list): Remove
123 declaration.
124 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
125 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
126 (copy_deps_list_change_con, move_dep_link): Ditto.
127 (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
128 and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field
129 'dep_count'.
130 (INSN_BACK_DEPS): Remove.
131 (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
132 New macros.
133 (INSN_DEP_COUNT): Remove.
134 (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments.
135 (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
136 Declare global variables.
137 (deps_pools_are_empty_p, sched_free_deps): Declare functions.
138 (add_forw_dep, compute_forward_dependences): Remove declarations.
139 (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
140 (add_back_forw_dep, delete_back_forw_dep): Ditto.
141 (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
142 functions.
143 (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): New
144 constants.
145 (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
146 (sd_list_types_def): New typedef.
147 (sd_next_list): Declare function.
148 (struct _sd_iterator): New type.
149 (sd_iterator_def): New typedef.
150 (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
151 functions.
152 (FOR_EACH_DEP): New cycle wrapper.
153 (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
154 Declare functions.
155 (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
156 (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
157 Ditto.
158
159 * sched-deps.c (init_dep_1): Make global.
160 (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
161 constants.
162 (dump_dep): New static function.
163 (dump_dep_flags): New static variable.
164 (sd_debug_dep): New function.
165 (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
166 the list.
167 (move_dep_link): Use remove_from_deps_list (), instead of
168 detach_dep_link ().
169 (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
170 (dep_link_is_detached_p): New static function.
171 (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool
172 instead.
173 (dn_pool, dl_pool): New alloc_pools.
174 (dn_pool_diff, dl_pool_diff): New static variables.
175 (create_dep_node, delete_dep_node): New static function.
176 (create_deps_list): Make it static. Use alloc_pool 'dl_pool'.
177 (deps_list_empty_p): Make it static. Use 'n_links' field.
178 (deps_pools_are_empty_p): New static function.
179 (alloc_deps_list, delete_deps_list): Remove.
180 (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
181 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
182 (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead.
183 (forward_dependency_cache): Remove.
184 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
185 'back' from the names. Change signature to use dep_t instead of
186 equivalent quad.
187 (add_back_dep): Ditto. Make global.
188 (check_dep_status): Rename to check_dep ().
189 (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
190 New functions.
191 (sd_finish_insn): Ditto.
192 (sd_find_dep_between_no_cache): New static function.
193 (sd_find_dep_between): New function.
194 (ask_dependency_caches, set_dependency_caches): New static functions.
195 (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
196 (add_or_update_dep_1): Separate pieces of functionality into
197 ask_dependency_caches (), update_dependency_caches (),
198 change_spec_dep_to_hard (), update_dep ().
199 (get_back_and_forw_lists): New static function.
200 (sd_add_dep): Separate setting of dependency caches into
201 set_dependency_caches ().
202 (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
203 New functions.
204 (sd_delete_dep): Ditto.
205 (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
206 (dump_lists): New static function.
207 (sd_debug_lists): New debug function.
208 (delete_all_dependences, fixup_sched_groups): Update to use
209 sd_* infrastructure.
210 (sched_analyze_2): Create data-speculative dependency only if
211 data-speculation is enabled.
212 (sched_analyze_insn): If insn cannot be speculative, make all its
213 dependencies non-speculative.
214 (sched_analyze): Use sd_init_insn ().
215 (add_forw_dep, compute_forward_dependencies): Remove.
216 (delete_dep_nodes_in_back_deps): New static function.
217 (sched_free_deps): New function.
218 (init_dependency_caches): Init alloc_pools.
219 (extend_depedency_caches): Update after removing of
220 forward_dependency_cache.
221 (free_dependency_caches): Ditto. Free alloc_pools.
222 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
223 (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
224 Ditto.
225 (add_back_forw_dep, delete_back_forw_dep): Ditto.
226 (add_dependence): Use init_dep ().
227 (get_dep_weak_1): New static function.
228 (get_dep_weak): Move logic to get_dep_weak_1 ().
229 (dump_ds): New static function moved from haifa-sched.c:
230 debug_spec_status ().
231 (debug_ds): New debug function.
232 (check_dep_status): Rename to check_dep (). Update to check whole
233 dependencies.
234
235 * haifa-sched.c (spec_info): Make global.
236 (added_recovery_block_p): Rename to
237 'haifa_recovery_block_was_added_during_current_schedule_block_p'.
238 (haifa_recovery_block_was_added_during_scheduling_p): New variable.
239 (dep_cost, priority, rank_for_schedule, schedule_insn): Update
240 to use new interfaces.
241 (ok_for_early_queue_removal): Ditto.
242 (schedule_block): Initialize logical uids of insns emitted by the
243 target.
244 (sched_init): Initialize new variable.
245 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
246 interfaces.
247 (extend_global): Initialize insn data.
248 (init_h_i_d): Remove code that is now handled in sd_init_insn ().
249 (process_insn_forw_deps_be_in_spec): Change signature. Update to use
250 new interfaces.
251 (add_to_speculative_block): Update to use new interfaces.
252 (create_recovery_block): Set new variables.
253 (create_check_block_twin, fix_recovery_deps): Update to use new
254 interfaces.
255 (sched_insn_is_legitimate_for_speculation_p): New function.
256 (speculate_insn): Move checking logic to
257 sched_insn_is_legitimate_for_speculation_p ().
258 (sched_remove_insn): Finalize sched-deps information of instruction.
259 (clear_priorities, add_jump_dependencies): Update to use new
260 interfaces.
261 (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
262
263 * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
264 to use new interfaces.
265 (is_conditionally_protected, is_pfree, is_prisky) Ditto.
266 (new_ready): Try to use control speculation only if it is available.
267 (add_branch_dependences): Update to use new interfaces.
268 (compute_block_backward_dependences): Rename to
269 compute_block_dependences (). Call
270 targetm.sched.dependencies_evaluation_hook ().
271 (free_block_dependencies): New static function.
272 (debug_dependencies): Update to use new interfaces.
273 (schedule_region): Remove separate computation of forward dependencies.
274 Move call of targetm.sched.dependencies_evaluation_hook () to
275 compute_block_dependences (). Free dependencies at the end of
276 scheduling the region.
277
278 * sched-ebb.c (earliest_block_with_similiar_load): Update to use
279 new interfaces.
280 (add_deps_for_risky_insns): Ditto.
281 (schedule_ebb): Remove separate computation of forward dependencies.
282 Free dependencies at the end of scheduling the ebb.
283
284 * ddg.c (create_ddg_dependence): Update to use new interfaces.
285 (build_intra_loop_deps): Ditto. Remove separate computation of forward
286 dependencies. Free sched-deps dependencies.
287
288 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
289 to use new interfaces.
290 (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
291
292 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
293 new interfaces.
294 (is_costly_group): Ditto.
295
296 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
297
298 * alias.c (rtx_equal_for_memref_p): Constify.
299 * basic-block.h (const_edge, const_basic_block): New.
300 (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
301 single_pred_p, single_succ_edge, single_pred_edge, single_succ,
302 single_pred, maybe_hot_bb_p, probably_cold_bb_p,
303 probably_never_executed_bb_p, edge_probability_reliable_p,
304 br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
305 inside_basic_block_p, control_flow_insn_p, dominated_by_p):
306 Likewise.
307 * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
308 * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
309 Likewise.
310 * cfganal.c (flow_active_insn_p, forwarder_block_p,
311 flow_nodes_print, dfs_enumerate_from): Likewise.
312 * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
313 control_flow_insn_p, count_basic_blocks): Likewise.
314 * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
315 get_loop_body_with_size, loop_exit_edge_p): Likewise.
316 * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
317 average_num_loop_insns, loop_exit_edge_p,
318 just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
319 * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
320 average_num_loop_insns, seq_cost): Likewise.
321 * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
322 * dominance.c (dominated_by_p): Likewise.
323 * emit-rtl.c (validate_subreg): Likewise.
324 * except.c (can_throw_internal, can_throw_external): Likewise.
325 * except.h (can_throw_internal, can_throw_external): Likewise.
326 * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
327 oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
328 compute_transp, load_killed_in_block_p, reg_killed_on_edge,
329 simple_mem, store_ops_ok, load_kills_store, find_loads,
330 store_killed_in_insn, store_killed_after, store_killed_before,
331 gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
332 Likewise.
333 * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
334 noce_mem_write_may_trap_or_fault_p): Likewise.
335 * pointer-set.c (pointer_set_contains, pointer_map_contains):
336 Likewise.
337 * pointer-set.h (pointer_set_contains, pointer_map_contains):
338 Likewise.
339 * predict.c (can_predict_insn_p, maybe_hot_bb_p,
340 probably_cold_bb_p, probably_never_executed_bb_p,
341 edge_probability_reliable_p, br_prob_note_reliable_p,
342 can_predict_insn_p): Likewise.
343 * regclass.c (reg_set_to_hard_reg_set): Likewise.
344 * resource.c (return_insn_p): Likewise.
345 * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
346 Likewise.
347 * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
348 * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
349 * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
350 verify_gimple_modify_stmt): Likewise.
351 * tree-chrec.c (is_not_constant_evolution,
352 is_multivariate_chrec_rec, is_multivariate_chrec,
353 chrec_contains_symbols, chrec_contains_undetermined,
354 tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
355 evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
356 eq_evolutions_p, scev_direction): Likewise.
357 * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
358 eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
359 chrec_contains_symbols_defined_in_loop,
360 chrec_contains_undetermined, tree_contains_chrecs,
361 evolution_function_is_affine_multivariate_p,
362 evolution_function_is_univariate_p, chrec_zerop,
363 evolution_function_is_constant_p, evolution_function_is_affine_p,
364 evolution_function_is_affine_or_constant_p,
365 tree_does_not_contain_chrecs, chrec_type): Likewise.
366 * tree-data-ref.c (tree_fold_divides_p,
367 object_address_invariant_in_loop_p, dr_may_alias_p,
368 ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
369 same_access_functions, constant_access_functions,
370 access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
371 Likewise.
372 * tree-flow.h (scev_direction): Likewise.
373 * tree-gimple.c (is_gimple_stmt): Likewise.
374 * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
375 Likewise.
376 * tree-pretty-print.c (op_prio): Likewise.
377 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
378 analyzable_condition, backedge_phi_arg_p): Likewise.
379 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
380 * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
381 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
382 Likewise.
383
384 2007-08-13 Dan Hipschman <dsh@google.com>
385
386 PR c/32953
387 * c-format.c (check_format_arg): Move check for zero-length
388 format strings below the check for unterminated strings.
389
390 2007-08-13 Andrew Pinski <pinskia@gmail.com>
391
392 PR C/30427
393 * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
394 types.
395
396 2007-08-13 Nick Clifton <nickc@redhat.com>
397
398 * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
399
400 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
401
402 PR fortran/32860
403 * c-format.c (gcc_gfc_length_specs): New array.
404 (gcc_gfc_char_table): Add unsigned specifier, and references to
405 the l length modifier.
406 (format_types_orig): Use the new gcc_gfc_length_specs.
407
408 2007-08-12 Sa Liu <saliu@de.ibm.com>
409
410 * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
411 and with REG_RETVAL note after split.
412
413 2007-08-11 David Daney <ddaney@avtrex.com>
414
415 * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
416 as ATTRIBUTE_UNUSED.
417
418 2007-08-11 David Edelsohn <edelsohn@gnu.org>
419 Segher Boessenkool <segher@kernel.crashing.org>
420
421 * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
422 HAVE_LOCAL_CPU_DETECT not defined.
423
424 2007-08-11 Jan Hubicka <jh@suse.cz>
425
426 * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
427 (cgraph_process_new_functions): Honor previous value of
428 disregard_inline_limits.
429 * ipa-inline.c (compute_inline_parameters): Likewise.
430
431 2007-08-11 Ian Lance Taylor <iant@google.com>
432
433 * alias.h (alias_set_type): Define new type.
434 (ALIAS_SET_MEMORY_BARRIER): Use it.
435 * rtl.h: Include alias.h.
436 (struct mem_attrs): Use alias_set_type.
437 * tree.h: Include alias.h
438 (struct tree_type): Use alias_set_type.
439 (struct tree_struct_field_tag): Likewise.
440 (struct tree_decl_common): Likewise.
441 * alias.c (struct alias_set_entry): Use alias_set_type.
442 (get_alias_set_entry, alias_set_subset_of): Likewise.
443 (alias_sets_conflict_p): Likewise.
444 (alias_sets_must_conflict_p): Likewise.
445 (objects_must_conflict_p): Likewise.
446 (get_alias_set, new_alias_set): Likewise.
447 (record_alias_subset, record_component_aliases): Likewise.
448 (varargs_set, frame_set): Change to alias_set_type.
449 (get_varargs_alias_set): Use alias_set_type.
450 (get_frame_alias_set): Likewise.
451 * builtins.c (setjmp_alias_set): Change to alias_set_type.
452 * dse.c (struct store_info): Use alias_set_type.
453 (struct read_info, struct clear_alias_mode_holder): Likewise.
454 (clear_alias_set_lookup, canon_address): Likewise.
455 (record_store, check_mem_read_rtx): Likewise.
456 (dse_record_singleton_alias_set): Likewise.
457 (dse_invalidate_singleton_alias_set): Likewise.
458 * emit-rtl.c (get_mem_attrs): Likewise.
459 (set_mem_attributes_minus_bitpos): Likewise.
460 (set_mem_alias_set): Likewise.
461 * expr.c (store_constructor_field, store_field): Likewise.
462 * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
463 * langhooks.c (lhd_get_alias_set): Likewise.
464 * langhooks-def.h (lhd_get_alias_set): Likewise.
465 * reload1.c (alter_reg): Likewise.
466 * tree-flow.h (struct fieldoff): Likewise.
467 * tree-ssa-alias.c (struct alias_map_d): Likewise.
468 (may_alias_p, get_smt_for, create_sft): Likewise.
469 * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
470 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
471 (merge_smts_into): Likewise.
472 * varasm.c (const_alias_set): Likewise.
473 * c-common.c (strict_aliasing_warning): Likewise.
474 (c_common_get_alias_set): Likewise.
475 * dse.h (dse_record_singleton_alias_set): Update declaration.
476 (dse_invalidate_singleton_alias_set): Likewise.
477 * emit-rtl.h (set_mem_alias_set): Likewise.
478 * c-common.h (c_common_get_alias_set): Likewise.
479 * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
480 * print-tree.c (print_node): Likewise.
481 * config/alpha/alpha.c (alpha_sr_alias_set): Change to
482 alias_set_type.
483 (alpha_setup_incoming_varargs): Use alias_set_type.
484 * config/i386/i386.c (setup_incoming_varargs_64): Use
485 alias_set_type.
486 (setup_incoming_varargs_ms_64): Likewise.
487 (ix86_GOT_alias_set): Likewise.
488 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
489 * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
490 (set): Change to alias_set_type.
491 (get_TOC_alias_set): Use alias_set_type.
492 * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
493 declaration.
494 * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
495 * config/sparc/sparc.c (sparc_sr_alias_set): Change to
496 alias_set_type.
497 (struct_value_alias_set): Likewise.
498 * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
499
500 2007-08-11 Richard Sandiford <richard@codesourcery.com>
501
502 * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
503 * config/vxworks.h (TARGET_VXWORKS): Override.
504 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
505 "mips" if TARGET_VXWORKS.
506
507 2007-08-11 Richard Sandiford <richard@codesourcery.com>
508
509 * calls.c (avoid_likely_spilled_reg): New function.
510 (expand_call): Use it.
511
512 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
513
514 * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
515
516 2007-08-10 Adam Nemet <anemet@caviumnetworks.com>
517
518 * config/mips/predicates.md (const_call_insn_operand): Invoke
519 SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
520
521 2007-08-10 David Edelsohn <edelsohn@gnu.org>
522
523 PR target/33042
524 * config/rs6000/driver-rs6000.c: Include link.h.
525 Use ElfW instead of wordsize-specif typedef.
526
527 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
528
529 * system.h (CONST_CAST): New.
530 * c-decl.c (c_make_fname_decl): Use it.
531 * c-lex.c (cb_ident, lex_string): Likewise.
532 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
533 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
534 give_switch, set_multilib_dir): Likewise.
535 * gengtype-parse.c (string_seq, typedef_name): Likewise.
536 * passes.c (execute_one_pass): Likewise.
537 * prefix.c (update_path): Likewise.
538 * pretty-print.c (pp_base_destroy_prefix): Likewise.
539 * tree.c (build_string): Likewise.
540
541 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
542
543 * tree-flow-inline.h (is_exec_stmt): Remove.
544 (is_label_stmt): Remove.
545 * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
546 is_label_stmt.
547
548 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com>
549
550 * lower-subreg.c (resolve_shift_zext): Don't adjust
551 src_reg_num for wordmode operands.
552
553 2007-08-10 Sandra Loosemore <sandra@codesourcery.com>
554 David Ung <davidu@mips.com>
555
556 * config/mips/mips.c (TARGET_SCHED_INIT): Define.
557 (TARGET_SCHED_REORDER2): Define.
558 (mips_maybe_swap_ready): New.
559 (mips_last_74k_agen_insn): New.
560 (mips_74k_agen_init): New.
561 (mips_74k_agen_reorder): New function to group loads and stores
562 in the ready queue.
563 (mips_sched_init): New.
564 (mips_sched_reorder): Don't do initialization here. Call
565 mips_74k_agen_reorder.
566 (mips_variable_issue): Call mips_74k_agen_init.
567
568 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
569
570 * tree-flow-inline.h (get_filename): Remove.
571
572 2007-08-10 Richard Sandiford <richard@codesourcery.com>
573
574 * config/mips/mips-protos.h (mips_address_insns): Add a boolean
575 argument.
576 (mips_fetch_insns): Delete in favor of...
577 (mips_load_store_insns): ...this new function.
578 * config/mips/mips.c (mips_address_insns): Add a boolean argument
579 to say whether multiword moves _might_ be split.
580 (mips_fetch_insns): Delete in favor of...
581 (mips_load_store_insns): ...this new function.
582 (mips_rtx_costs): Update the call to mips_address_insns.
583 (mips_address_cost): Likewise.
584 * config/mips/mips.md (length): Use mips_load_store_insns instead
585 of mips_fetch_insns.
586 * config/mips/constraints.md (R): Use mips_address_insns rather
587 than mips_fetch_insns. Assume that the move never needs to be split.
588
589 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
590
591 * config/mips/mips.opt (mhard-float, msoft-float): Make these
592 control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
593 than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.
594 * config/mips/mips.h (mips16_hard_float): Delete.
595 (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
596 definitions, and replace with....
597 (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
598 * config/mips/mips.c (mips16_hard_float): Delete. Replace
599 all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
600 (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
601 (override_options): Replace MASK_SOFT_FLOAT references with
602 MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT
603 and mips16_hard_float when TARGET_MIPS16.
604
605 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
606
607 PR c/32796
608 * c-typeck.c (build_binary_op): Check for non pointer types before
609 calling int_fits_type_p.
610
611 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
612
613 PR middle-end/32813
614 * fold-const.c (omit_one_operand): Return only the ommitted expression
615 if the result is an empty statement.
616 (pedantic_omit_one_operand): Likewise.
617
618 2007-08-09 Daniel Berlin <dberlin@dberlin.org>
619
620 * c-typeck.c (readonly_error): Improve error for assignment.
621
622 * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
623 expression.
624 (pp_c_expression): Ditto.
625
626 2007-08-09 Simon Baldwin <simonb@google.com>
627
628 * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
629 break that was preventing simplify_associative_operation() for xor.
630
631 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
632 Nigel Stephens <nigel@mips.com>
633
634 * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
635 Document change in interpretation of value from boolean to
636 tri-state integer.
637 * optabs.c (expand_ffs, expand_ctz): New functions to compute
638 ffs and ctz using clz.
639 (expand_unop): Call them.
640 * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
641 result value.
642 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
643 * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
644 enable the new ffs expansion on this target.
645
646 2007-08-09 Jan Hubicka <jh@suse.cz>
647
648 * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
649 (expand_ternary_op): Likewise.
650 (expand_vec_shift_expr): Likewise.
651 (expand_binop_directly): Likewise.
652 (expand_binop): Likewise.
653 (sign_expand_binop): Likewise.
654 (expand_twoval_unop): Likewise.
655 (expand_twoval_binop): Likewise.
656 (expand_twoval_binop_libfunc): Likewise.
657 (widen_clz): Likewise.
658 (widen_bswap): Likewise.
659 (expand_parity): Likewise.
660 (expand_unop): Likewise.
661 (expand_abs_nojump): Likewise.
662 (expand_copysign): Likewise.
663 (emit_no_conflict_block): Likewise.
664 (emit_libcall_block): Likewise.
665 (can_compare_p): Likewise.
666 (prepare_cmp_insn): Likewise.
667 (emit_cmp_and_jump_insn_1): Likewise.
668 (prepare_float_lib_cmp): Likewise.
669 (emit_conditional_add): Likewise.
670 (gen_add2_insn): Likewise.
671 (have_add2_insn): Likewise.
672 (gen_sub2_insn): Likewise.
673 (have_sub2_insn): Likewise.
674 (can_extend_p): Likewise.
675 (can_fix_p): Likewise.
676 (can_float_p): Likewise.
677 (expand_float): Likewise.
678 (expand_fix): Likewise.
679 (expand_sfix_optab): Likewise.
680 (new_optab): Likewise.
681 (new_convert_optab): Likewise.
682 (init_libfuncs): Likewise.
683 (init_interclass_conv_libfuncs): Likewise.
684 (init_intraclass_conv_libfuncs): Likewise.
685 (set_conv_libfunc): Likewise.
686 (init_optabs): Likewise.
687 (debug_optab_libfuncs): Likewise.
688 (gen_cond_trap): Likewise.
689 * optabs.h (optab_handler, convert_optab_hanlder): New.
690 * genopinit.c: Update optabs generation table.
691 * reload.c (find_reloads_address_1): Use optabs accestors.
692 * builtins.c (expand_builtin_mathfn): Likewise.
693 (expand_builtin_mathfn_2): Likewise.
694 (expand_builtin_mathfn_3): Likewise.
695 (expand_builtin_interclass_mathfn): Likewise.
696 (expand_builtin_sincos): Likewise.
697 (expand_builtin_cexpi): Likewise.
698 (expand_builtin_powi): Likewise.
699 (expand_builtin_strlen): Likewise.
700 * dojump.c (do_jump): Likewise.
701 * expr.c (convert_move): Likewise.
702 (move_by_pieces): Likewise.
703 (move_by_pieces_ninsns): Likewise.
704 (can_store_by_pieces): Likewise.
705 (store_by_pieces_1): Likewise.
706 (emit_move_via_integer): Likewise.
707 (emit_move_complex): Likewise.
708 (emit_move_ccmode): Likewise.
709 (emit_move_insn_1): Likewise.
710 (emit_single_push_insn): Likewise.
711 (store_constructor): Likewise.
712 (expand_expr_real_1): Likewise.
713 (do_store_flag): Likewise.
714 * ada/misc.c (gnat_compute_largest_alignment): Likewise.
715 (enumerate_modes): Likewise.
716 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
717 (supportable_widening_operation): Likewise.
718 (supportable_narrowing_operation): Likewise.
719 * expmed.c (store_bit_field_1): Likewise.
720 (extract_bit_field_1): Likewise.
721 (expand_mult_highpart_optab): Likewise.
722 (expand_smod_pow2): Likewise.
723 (expand_divmod): Likewise.
724 (emit_store_flag): Likewise.
725 * tree-vect-patterns.c
726 (vect_pattern_recog_1): Likewise.
727 * tree-ssa-loop-prefetch.c
728 (nontemporal_store_p): Likewise.
729 * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
730 (vect_create_epilog_for_reduction): Likewise.
731 (vectorizable_reduction): Likewise.
732 (vectorizable_operation): Likewise.
733 (vect_strided_store_supported): Likewise.
734 (vectorizable_store): Likewise.
735 (vect_strided_load_supported): Likewise.
736 (vectorizable_load): Likewise.
737 * combine.c (simplify_comparison): Likewise.
738 * tree-vect-generic.c
739 (type_for_widest_vector_mode): Likewise.
740 (expand_vector_operations_1): Likewise.
741 * config/spu/spu.c (spu_expand_mov): Likewise.
742 (spu_emit_vector_compare): Likewise.
743 * config/rs6000/rs6000.c
744 (rs6000_emit_vector_compare): Likewise.
745 * stmt.c (add_case_node): Likewise.
746 * reload1.c (gen_reload):
747
748 2007-08-09 Michael Matz <matz@suse.de>
749
750 * tree.h (fixed_zerop): Declare as taking a const_tree.
751 * tree.c (fixed_zerop): Take a const_tree.
752
753 2007-08-09 Ira Rosen <irar@il.ibm.com>
754
755 * tree-vect-transform.c (vectorizable_store): Remove call to
756 copy_virtual_operands() and call mark_symbols_for_renaming() for
757 the created vector store.
758 (vect_setup_realignment): Don't call copy_virtual_operands() and
759 update_vuses_to_preheader().
760 (vectorizable_load): Don't call copy_virtual_operands().
761 (update_vuses_to_preheader): Remove.
762
763 2007-08-08 Chao-ying Fu <fu@mips.com>
764
765 * tree.def (FIXED_POINT_TYPE): New type.
766 (FIXED_CST): New constant.
767 (FIXED_CONVERT_EXPR): New expr.
768 * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
769 (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
770 * tree.h (struct tree_base): Add saturating_flag.
771 Remove one bit of spare for saturating_flag.
772 (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
773 (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
774 FIXED_POINT_TYPE_P): Define.
775 (TYPE_SATURATING): Define.
776 (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
777 (struct tree_fixed_cst): New.
778 (TYPE_IBIT, TYPE_FBIT): Define.
779 (tree_node): Add fixed_cst.
780 (enum tree_index): Add new enumeration values of
781 TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
782 TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
783 TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
784 TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
785 TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
786 TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
787 TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
788 TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
789 TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
790 TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
791 TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
792 TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
793 TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
794 TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
795 TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
796 TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
797 TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
798 TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
799 (sat_short_fract_type_node, sat_fract_type_node,
800 sat_long_fract_type_node, sat_long_long_fract_type_node,
801 sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
802 sat_unsigned_long_fract_type_node,
803 sat_unsigned_long_long_fract_type_node, short_fract_type_node,
804 fract_type_node, long_fract_type_node, long_long_fract_type_node,
805 unsigned_short_fract_type_node, unsigned_fract_type_node,
806 unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
807 sat_short_accum_type_node, sat_accum_type_node,
808 sat_long_accum_type_node, sat_long_long_accum_type_node,
809 sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
810 sat_unsigned_long_accum_type_node,
811 sat_unsigned_long_long_accum_type_node, short_accum_type_node,
812 accum_type_node, long_accum_type_node, long_long_accum_type_node,
813 unsigned_short_accum_type_node, unsigned_accum_type_node,
814 unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
815 qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
816 uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
817 utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
818 sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
819 sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
820 sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
821 ta_type_node, uha_type_node, usa_type_node, uda_type_node,
822 uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
823 sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
824 sat_uda_type_node, sat_uta_type_node): New macro.
825 (make_fract_type, make_accum_type): Declare.
826 (make_signed_fract_type, make_unsigned_fract_type,
827 make_sat_signed_fract_type, make_sat_unsigned_fract_type,
828 make_signed_accum_type, make_unsigned_accum_type,
829 make_sat_signed_accum_type, make_sat_unsigned_accum_type,
830 make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
831 make_or_reuse_sat_signed_fract_type,
832 make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
833 make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
834 make_or_reuse_sat_unsigned_accum_type): New macro.
835 (fixed_zerop): Declare.
836 * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
837 LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
838 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
839 LONG_LONG_ACCUM_TYPE_SIZE): Define.
840 * treestruct.def: Add TS_FIXED_CST.
841 * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
842 (tree.o): Likewise.
843 (tree-dump.o): Likewise.
844 (print-tree.o): Likewise.
845 (tree-pretty-print.o): Likewise.
846 (fold-const.o): Likewise.
847 * tree-complex.c (some_nonzerop): Handle FIXED_CST.
848 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
849 (is_gimple_min_invariant): Handle FIXED_CST.
850 * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
851 MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
852 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
853 (layout_type): Handle FIXED_POINT_TYPE.
854 (make_fract_type, make_accum_type): New functions.
855 * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
856 * tree-dump.c (fixed-value.h): New include.
857 (dump_fixed): New function.
858 (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
859 * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
860 (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
861 * tree-pretty-print.c (fixed-value.h): New include.
862 (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
863 FIXED_CONVERT_EXPR.
864 * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
865 * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
866 * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
867 * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
868 for non-saturating fixed-point types.
869 (reassociate_bb): Likewise.
870 * emit-rtl.c (fixed-value.h): New include.
871 (fconst0, fconst1): New array.
872 (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
873 * tree-vect-generic.c expand_vector_operation): Support
874 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
875 MODE_VECTOR_UACCUM.
876 (type_for_widest_vector_mode): Add one parameter for the
877 saturating flag.
878 Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
879 vector mode.
880 Pass the satp parameter to type_for_mode for fixed-point types.
881 (expand_vector_operations_1): Pass the saturating flag to
882 type_for_widest_vector_mode.
883 Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
884 and MODE_VECTOR_UACCUM.
885 * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
886 (vectorizable_condition): Likewise.
887 * tree.c (fixed-value.h): New include.
888 (tree_code_size): Support FIXED_CST.
889 (build_fixed): New function.
890 (build_one_cst): Support FIXED_POINT_TYPE for accum types.
891 (fixed_zerop): New function.
892 (tree_node_structure): Support FIXED_CST.
893 (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
894 (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
895 (type_hash_eq): Handle FIXED_POINT_TYPE.
896 (simple_cst_equal): Support FIXED_CST.
897 (iterative_hash_expr): Handle FIXED_CST.
898 (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
899 (get_narrower): Likewise.
900 (variably_modified_type_p): Handle FIXED_POINT_TYPE.
901 (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
902 (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
903 MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
904 nodes.
905 (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
906 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
907 (initializer_zerop): Support FIXED_CST.
908 (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
909 * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
910 DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
911 (is_base_type): Handle FIXED_POINT_TYPE.
912 (add_type_attribute): Handle FIXED_POINT_TYPE.
913 (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
914 * print-tree.c (fixed-value.h): New include.
915 (print_node_brief): Support FIXED_CST.
916 (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
917 * c-pretty-print.c (fixed-value.h): New include.
918 (pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass
919 TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
920 (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
921 Support fixed-point types for inner items in VECTOR_TYPE.
922 (pp_c_direct_declarator): Likewise.
923 (pp_c_declarator): Likewise.
924 (pp_c_fixed_constant): New function.
925 (pp_c_constant): Handle FIXED_CST.
926 (pp_c_primary_expression): Likewise.
927 (pp_c_expression): Likewise.
928 * fold-const.c (fixed-value.h): New include.
929 (negate_expr_p): Return true for FIXED_CST.
930 (fold_negate_expr): Support FIXED_CST.
931 (split_tree): Support FIXED_CST.
932 (const_binop): Support FIXED_CST.
933 (fold_convert_const_int_from_fixed): New function to convert from
934 fixed to int.
935 (fold_convert_const_real_from_fixed): New function to convert from
936 fixed to real.
937 (fold_convert_const_fixed_from_fixed): New function to convert from
938 fixed to another fixed.
939 (fold_convert_const_fixed_from_int): New function to convert from
940 int to fixed.
941 (fold_convert_const_fixed_from_real): New function to convert from
942 real to fixed.
943 (fold_convert_const): Support conversions from fixed to int, from
944 fixed to real, from fixed to fixed, from int to fixed, and from real
945 to fixed.
946 (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
947 (operand_equal_p): Support FIXED_CST.
948 (make_range): For fixed-point modes, we need to pass the
949 saturating flag as the 2nd parameter.
950 (tree_swap_operands_p): Handle FIXED_CST.
951 (fold_plusminus_mult_expr): For fract modes, we cannot generate
952 constant 1.
953 (fold_unary): Support FIXED_CONVERT_EXPR.
954 (fold_binary): Handle FIXED_CST.
955 Make sure the type is not saturating, before associating operations.
956 Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
957 (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
958 (fold_negate_const): Support FIXED_CST.
959 (fold_relational_const): Support FIXED_CST.
960 * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
961 (gimplify_expr): Handle FIXED_CST.
962 (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
963 * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
964 * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
965 * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
966 FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
967 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
968 LONG_LONG_ACCUM_TYPE_SIZE.
969 * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
970 * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
971 * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
972 * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
973 MODE_ACCUM, and MODE_UACCUM.
974 * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
975 fixed-point types to disable reduction.
976 * explow.c (promote_mode): Support FIXED_POINT_TYPE.
977
978 2007-08-08 David Edelsohn <edelsohn@gnu.org>
979
980 * config/rs6000/x-rs6000: New file.
981 * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
982 * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
983 (EXTRA_SPEC_FUNCTIONS): Define.
984 (HAVE_LOCAL_CPU_DETECT): Define.
985 (CC1_CPU_SPEC): Define.
986 * config/rs6000/driver-rs6000.c: New file.
987 * config/rs6000/aix.h (CC1_SPEC): Define.
988 * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
989 * config.host: Add x-rs6000 to host_xmake_file if host and target
990 are rs6000 or powerpc.
991
992 2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
993
994 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
995
996 2007-08-08 Richard Sandiford <richard@codesourcery.com>
997 Sandra Loosemore <sandra@codesourcery.com>
998 Chao-ying Fu <fu@mips.com>
999 Nigel Stephens <nigel@mips.com>
1000 David Ung <davidu@mips.com>
1001
1002 * doc/invoke.texi (-mcode-readable): Document.
1003 * config/mips/mips.opt (mcode-readable): New option.
1004 * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
1005 * config/mips/mips.h (mips_code_readable_setting): New enum.
1006 (mips_code_readable): Declare.
1007 (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
1008 (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
1009 (JUMP_TABLES_IN_TEXT_SECTION): Use it.
1010 (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove
1011 boiler-plate comments.
1012 (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
1013 * config/mips/mips.c (mips_code_readable): New variable.
1014 (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
1015 MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the
1016 context and -mcode-readable setting to restrict the use of
1017 SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
1018 Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
1019 (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
1020 (mips_blocks_for_constant_p): Only return false for
1021 TARGET_MIPS16_PCREL_LOADS.
1022 (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
1023 for MIPS16. Handle SYMBOL_32_HIGH.
1024 (mips_const_insns): Allow HIGHs for MIPS16 too.
1025 (mips_unspec_address_offset): New function, split out from...
1026 (mips_unspec_address): ...here.
1027 (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load
1028 16-bit symbolic constants. Assert approropiate conditions for
1029 using the "la" and "dla" macros.
1030 (mips_handle_option): Handle -mcode-readable=.
1031 (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
1032 Set up mips_lo_relocs[SYMBOL_32_HIGH].
1033 (mips_strip_unspec_address): New function, split out from...
1034 (print_operand_reloc): ...here.
1035 (print_operand): Pass constants through mips_strip_unspec_address.
1036 (print_operand_address): Likewise.
1037 (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
1038 (mips_select_rtx_section): Remove MIPS16 handling.
1039 (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
1040 (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
1041 (mips16_lay_out_constants): Do nothing unless
1042 TARGET_MIPS16_PCREL_LOADS.
1043 (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
1044 * config/mips/mips.md: Split HIGHs for MIPS16.
1045 (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
1046
1047 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1048
1049 * config/mips/mips-protos.h (mips_emit_move): Declare.
1050 * config/mips/mips.c (mips_emit_move): New function.
1051 (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
1052 (mips_legitimize_const_move): Likewise.
1053 (mips_legitimize_move): Likewise.
1054 (mips_split_64bit_move): Likewise.
1055 (mips_restore_gp): Likewise.
1056 (mips_load_call_address): Likewise.
1057 (mips_emit_fcc_reload): Likewise.
1058 (mips_set_return_address): Likewise.
1059 (mips_block_move_straight): Likewise.
1060 (mips_block_move_loop): Likewise.
1061 (mips_setup_incoming_varargs): Likewise.
1062 (mips_save_reg): Likewise.
1063 (mips_expand_prologue): Likewise.
1064 (mips_restore_reg): Likewise.
1065 (mips_expand_epilogue): Likewise.
1066 (mips_output_mi_thunk): Likewise.
1067 (build_mips16_call_stub): Likewise.
1068 (mips_builtin_branch_and_move): Likewise.
1069 * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
1070 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1071 (fixuns_truncdfdi2): Likewise.
1072 (fixuns_truncsfsi2): Likewise.
1073 (fixuns_truncsfdi2): Likewise.
1074 (loadgp_absolute): Likewise.
1075 (builtin_setjmp_setup): Likewise.
1076 (builtin_longjmp): Likewise.
1077 (untyped_call): Likewise.
1078
1079 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1080
1081 * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
1082 an "rtx *" argument. Return a bool.
1083 * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
1084 values and return true if they can be split. Take the same kind of
1085 mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter
1086 and store the lo_sum there if nonnull. Use the symbol type to
1087 determine whether a $gp or HIGH is needed.
1088 (mips_legitimize_address): Update call to mips_split_symbol and
1089 simplify accordingly.
1090 (mips_legitimize_const_move): Likewise.
1091 * config/mips/mips.md: In the combine define_split,
1092 check mips_split_symbol instead of splittable_symbolic_operand.
1093 Update use of mips_split_symbol in the generator code.
1094 * config/mips/predicates.md (splittable_symbolic_operand): Delete.
1095
1096 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1097
1098 * config/mips/mips.c (mips_symbolic_address_p): Delete.
1099 (mips_symbol_insns_1): New function, split out from...
1100 (mips_symbol_insns): ...here. Take a mode argument. Treat loads
1101 and stores separately from load addresses.
1102 (mips_classify_address): Replace uses of mips_symbolic_address_p
1103 with uses of mips_symbol_insns.
1104 (mips_address_insns): Update calls to mips_symbol_insns.
1105 (mips_const_insns): Likewise.
1106 (mips_legitimize_address): Likewise.
1107
1108 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1109
1110 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
1111 * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
1112 block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
1113 Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
1114 non-call contexts if TARGET_MIPS16.
1115 (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
1116 (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16
1117 code for SYMBOL_ABSOLUTE.
1118 (mips_symbol_insns): Likewise.
1119
1120 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1121
1122 * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
1123 * config/mips/mips.c (mips_classify_symbol): Take a context argument.
1124 (mips_symbolic_constant_p): Likewise. Update the call to
1125 mips_classify_symbol.
1126 (mips_classify_address): Update the calls to mips_symbolic_constant_p.
1127 (mips_const_insns): Likewise. Update the call to mips_classify_symbol.
1128 (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
1129 (print_operand_reloc): Add a context argument. Update the call to
1130 mips_symbolic_constant_p.
1131 (print_operand): Update the calls to print_operand_reloc.
1132 (print_operand_address): Use print_operand_reloc rather than
1133 print_operand.
1134 (mips_rewrite_small_data_p): Add a context argument. Update the call
1135 to mips_symbolic_constant_p.
1136 (mips_small_data_pattern_1): Make DATA the containing mem.
1137 Update the call to mips_rewrite_small_data_p.
1138 (mips_rewrite_small_data_1): Likewise.
1139 (mips_use_anchors_for_symbol_p): Update the call to
1140 mips_symbolic_constant_p.
1141 * config/mips/predicates.md (const_call_insn_operand): Likewise.
1142 (splittable_symbolic_operand): Likewise.
1143 (move_operand): Likewise.
1144 (absolute_symbolic_operand): Likewise.
1145 (got_disp_operand): Likewise.
1146 (got_page_ofst_operand): Likewise.
1147
1148 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1149
1150 * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
1151 (SYMBOL_ABSOLUTE): ...this.
1152 (SYMBOL_SMALL_DATA): Rename to...
1153 (SYMBOL_GP_RELATIVE): ...this.
1154 (SYMBOL_CONSTANT_POOL): Rename to...
1155 (SYMBOL_PC_RELATIVE): ...this.
1156 * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
1157 (mips_symbolic_address_p, mips_symbol_insns, override_options)
1158 (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
1159 after above changes.
1160 * config/mips/predicates.md (const_call_insn_operand): Likewise.
1161 (general_symbolic_operand): Rename to...
1162 (absolute_symbolic_operand): ...this.
1163 * config/mips/mips.md: Update after above changes.
1164
1165 2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com>
1166 Revital Eres <eres@il.ibm.com>
1167
1168 * ddg.c (print_ddg): Add dump information.
1169 * modulo-sched.c (print_node_sched_params): Add parameter and
1170 verbosity.
1171 (calculate_maxii): Remove function.
1172 (undo_generate_reg_moves): Likewise.
1173 (undo_permute_partial_schedule): Likewise.
1174 (kernel_number_of_cycles): Likewise.
1175 (MAXII_FACTOR): New definition to calculate the upper bound of II.
1176 (sms_schedule): Use it. Remove profitability checks.
1177 (sms_schedule_by_order): Fix order of nodes within the cycle.
1178
1179 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
1180
1181 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
1182 -profile option, add pie support.
1183 (ENDFILE_SPEC): New spec.
1184 * config/gnu.h (LIB_SPEC): Add -profile option.
1185
1186 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
1187
1188 * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
1189 * config/gnu.h (LIB_SPEC): Likewise.
1190
1191 2007-08-07 Yaz Saito <saito@google.com>
1192 Ian Lance Taylor <iant@google.com>
1193
1194 * common.opt (finstrument-functions-exclude-function-list): New
1195 option.
1196 (finstrument-functions-exclude-file-list): New option.
1197 * opts.c (char_p): Define and DEF_VEC.
1198 (flag_instrument_functions_exclude_functions): New static
1199 variable.
1200 (flag_instrument_functions_exclude_files): New static variable.
1201 (add_instrument_functions_exclude_list): New static function.
1202 (flag_instrument_functions_exclude_p): New function.
1203 (common_handle_option): Handle new options.
1204 * flags.h (flag_instrument_functions_exclude_p): Declare.
1205 * gimplify.c (gimplify_function_tree): Call
1206 flag_instrument_functions_exclude_p.
1207 * doc/invoke.texi (Option Summary): Mention new options.
1208 (Code Gen Options): Document new options.
1209
1210 2007-08-07 Ian Lance Taylor <iant@google.com>
1211
1212 PR rtl-optimization/32776
1213 * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
1214 (resolve_use): Likewise.
1215 (decompose_multiword_subregs): Remove "changed" local variable.
1216
1217 2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
1218
1219 * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
1220 * configure: Regenerate.
1221 * config.in: Regenerate.
1222 * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
1223 spec string.
1224
1225 2007-08-07 Ian Lance Taylor <iant@google.com>
1226
1227 * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
1228 note, just delete the insn.
1229
1230 2007-08-07 Andreas Schwab <schwab@suse.de>
1231
1232 PR bootstrap/32973
1233 * gengtype-lex.l: Ignore backslash/newline pair while scanning a
1234 struct definition.
1235
1236 2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
1237
1238 * lower-subreg.c (resolve_subreg_use): Remove assertion.
1239 (find_decomposable_shift_zext, resolve_shift_zext): New functions.
1240 (decompose_multiword_subregs): Use the functions above to decompose
1241 multiword shifts and zero-extends.
1242
1243 2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk>
1244
1245 * doc/sourcebuild.texi (Test Directives): Fix "compile" and
1246 "assemble" descriptions which were swapped.
1247
1248 2007-08-06 Chao-ying Fu <fu@mips.com>
1249
1250 * fixed-value.h: New file.
1251 * fixed-value.c: New file.
1252 * Makefile.in (OBJS-common): Add fixed-value.o.
1253 (fixed-value.o): New rule.
1254 (GTFILES): Add fixed-value.h.
1255 * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
1256 to compare a.low and b.low.
1257 * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
1258
1259 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
1260 Daniel Jacobowitz <dan@codesourcery.com>
1261
1262 PR target/31868
1263 * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
1264 tmake_file.
1265 (x86_64-*-netbsd*): Likewise.
1266 (x86_64-*-linux*): Likewise.
1267 (x86_64-*-kfreebsd*-gnu): Likewise.
1268 (x86_64-*-knetbsd*-gnu): Likewise.
1269 (i[34567]86-*-solaris2.1[0-9]*): Likewise.
1270
1271 * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
1272
1273 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
1274 Add -fno-asynchronous-unwind-tables.
1275
1276 * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
1277 * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
1278 * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
1279 * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
1280 * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
1281
1282 2007-08-06 Steve Ellcey <sje@cup.hp.com>
1283
1284 * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
1285 (TARGET_C_MODE_FOR_SUFFIX): New.
1286
1287 2007-08-06 Steve Ellcey <sje@cup.hp.com>
1288
1289 * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
1290
1291 2007-08-06 Steve Ellcey <sje@cup.hp.com>
1292
1293 * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
1294
1295 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
1296
1297 * config/i386/i386.md: Check TARGET_ macros and optimize_size
1298 before checking function returns in conditional expressions.
1299
1300 2007-08-06 Alfred Minarik <a.minarik@aon.at>
1301
1302 PR pch/13676
1303 * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
1304
1305 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
1306
1307 PR middle-end/32988
1308 * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
1309 for INTEGRAL_TYPE_P.
1310
1311 2008-08-05 Paolo Bonzini <bonzini@gnu.org>
1312
1313 * configure.ac: Remove --enable-checking=df from default settings.
1314 * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance.
1315 * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
1316 if the parameter is true.
1317 (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
1318 DF_VERIFY_SCHEDULED flag is true.
1319 * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
1320 (df_finish_pass): Adjust prototype.
1321 * passes.c (execute_todo): Schedule verification if TODO_df_verify is
1322 true.
1323
1324 * see.c (pass_see): Add TODO_df_verify.
1325 * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
1326 * global.c (rest_of_handle_global_alloc): Schedule verification
1327 after the pass.
1328 * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
1329 before the pass.
1330 * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
1331 * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
1332 * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
1333
1334 * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
1335 * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
1336 * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
1337
1338 2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com>
1339 Revital Eres <eres@il.ibm.com>
1340
1341 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
1342 flag.
1343 * ddg.c (create_ddg_dependence): Rename to...
1344 (create_ddg_dep_from_intra_loop_link): This. Do not check
1345 for interloop edges. Do not create anti dependence edge when
1346 a true dependence edge exists in the opposite direction and
1347 -fmodulo-sched-allow-regmoves is set.
1348 (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
1349 (add_cross_iteration_register_deps): Create anti dependence edge
1350 when -fno-modulo-sched-allow-regmoves is set.
1351 * common.opt (-fmodulo-sched-allow-regmoves): New flag.
1352
1353 2007-08-04 Richard Sandiford <richard@codesourcery.com>
1354
1355 * config/arm/arm.md (movsi): Add braces.
1356
1357 2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
1358
1359 PR middle-end/32780
1360 * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of operands
1361 for the folding of "A - (A & B)" into "~B & A"; cast them to type.
1362
1363 2007-08-03 Zdenek Dvorak <ook@ucw.cz>
1364
1365 * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state
1366 accessor functions.
1367 * cfgloopmanip.c (remove_path, create_preheaders,
1368 force_single_succ_latches, fix_loop_structure): Ditto.
1369 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
1370 tree_duplicate_loop_to_header_edge): Ditto.
1371 * cfgloopanal.c (mark_irreducible_loops): Ditto.
1372 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
1373 Ditto.
1374 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
1375 cleanup_tree_cfg): Ditto.
1376 * tree-cfg.c (tree_merge_blocks): Ditto.
1377 * cfgloop.c (rescan_loop_exit, record_loop_exits,
1378 release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
1379 loop_preheader_edge, single_exit): Ditto.
1380 (flow_loops_find): Do not clear loops->state.
1381 * cfgloop.h (loops_state_satisfies_p, loops_state_set,
1382 loops_state_clear): New functions.
1383
1384 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1385
1386 PR middle-end/32399
1387 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
1388 when adding to the base and convert ELT to sizetype instead of type.
1389
1390 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1391
1392 PR middle-end/32304
1393 * ipa-reference.c (has_proper_scope_for_analysis): Return false when
1394 the decl's type has TYPE_NEEDS_CONSTRUCTING set.
1395
1396 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1397
1398 PR middle-end/32935
1399 * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
1400 correct type the negate expression.
1401
1402 2007-08-03 Jan Hubicka <jh@suse.cz>
1403
1404 * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
1405 stack boundary.
1406
1407 2007-08-03 David Edelsohn <edelsohn@gnu.org>
1408
1409 * config/rs6000/rs6000.c (struct processor_cost): Change
1410 l1_cache_lines to l1_cache_size. Add l2_cache_size.
1411 (*_cost): Convert l1 cache information to kilobytes. Add l2 cache
1412 information.
1413 (rios1_costs, rios2_cost): Correct cache line size.
1414 (rs6000_override_options): Set l2-cache-size parameter.
1415
1416 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1417 Diego Novillo <dnovillo@google.com>
1418
1419 PR 31521
1420 * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
1421 if the range includes 0.
1422
1423 2007-08-03 Ben Elliston <bje@au.ibm.com>
1424
1425 * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
1426 mode to unspec expressions to silence a warning from the generator
1427 programs.
1428
1429 2007-08-02 Steve Ellcey <sje@cup.hp.com>
1430
1431 * config/ia64/constraints.md ("U"): Make constraint vector only.
1432
1433 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
1434
1435 PR middle-end/25446
1436 * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
1437 always_inline attribute on the function decl.
1438
1439 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
1440
1441 PR middle-end/25445
1442 * varasm.c (default_binds_local_p_1): Consult flag_whole_program
1443 if we are compiling with -fPIC.
1444
1445 2007-08-02 Sandra Loosemore <sandra@codesourcery.com>
1446 Nigel Stephens <nigel@mips.com>
1447
1448 * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
1449 Define for MIPS32 and MIPS64.
1450
1451 2007-08-02 Nick Clifton <nickc@redhat.com>
1452
1453 * config/host-hpux.c: Change copyright header to refer to version
1454 3 of the GNU General Public License and to point readers at the
1455 COPYING3 file and the FSF's license web page.
1456 * config/alpha/predicates.md, config/alpha/vms-ld.c,
1457 config/alpha/linux.h, config/alpha/alpha.opt,
1458 config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
1459 config/alpha/vms-unwind.h, config/alpha/ev4.md,
1460 config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
1461 config/alpha/alpha.h, config/alpha/sync.md,
1462 config/alpha/openbsd.h, config/alpha/alpha.md,
1463 config/alpha/alpha-modes.def, config/alpha/ev5.md,
1464 config/alpha/alpha-protos.h, config/alpha/freebsd.h,
1465 config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
1466 config/alpha/constraints.md, config/alpha/osf.h,
1467 config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
1468 config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
1469 config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
1470 config/frv/frv-asm.h, config/frv/frv-protos.h,
1471 config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
1472 config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
1473 config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
1474 config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
1475 config/s390/s390.opt, config/s390/s390-modes.def,
1476 config/s390/fixdfdi.h, config/s390/constraints.md,
1477 config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
1478 config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
1479 config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
1480 config/m32c/m32c-pragma.c, config/m32c/m32c.h,
1481 config/m32c/prologue.md, config/m32c/m32c.abi,
1482 config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
1483 config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
1484 config/m32c/t-m32c, config/m32c/m32c-modes.def,
1485 config/m32c/jump.md, config/m32c/shift.md,
1486 config/m32c/m32c-protos.h, config/libgloss.h,
1487 config/spu/spu-protos.h, config/spu/predicates.md,
1488 config/spu/spu-builtins.h, config/spu/spu.c,
1489 config/spu/spu-builtins.def, config/spu/spu-builtins.md,
1490 config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
1491 config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
1492 config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
1493 config/sparc/hypersparc.md, config/sparc/predicates.md,
1494 config/sparc/linux.h, config/sparc/sp64-elf.h,
1495 config/sparc/supersparc.md, config/sparc/cypress.md,
1496 config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
1497 config/sparc/niagara.md, config/sparc/sparc.md,
1498 config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
1499 config/sparc/sparc.opt, config/sparc/sync.md,
1500 config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
1501 config/sparc/ultra1_2.md, config/sparc/biarch64.h,
1502 config/sparc/sparc.c, config/sparc/little-endian.opt,
1503 config/sparc/sysv4-only.h, config/sparc/sparc.h,
1504 config/sparc/linux64.h, config/sparc/freebsd.h,
1505 config/sparc/sol2.h, config/sparc/rtemself.h,
1506 config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
1507 config/sparc/sparc-modes.def, config/sparc/sparclet.md,
1508 config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
1509 config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
1510 config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
1511 config/m32r/linux.h, config/m32r/constraints.md,
1512 config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
1513 config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
1514 config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
1515 config/i386/i386.md, config/i386/netware-crt0.c,
1516 config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
1517 config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
1518 config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
1519 config/i386/sol2.h, config/i386/constraints.md,
1520 config/i386/netware-libgcc.c, config/i386/sysv5.h,
1521 config/i386/predicates.md, config/i386/geode.md,
1522 config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
1523 config/i386/freebsd64.h, config/i386/vxworksae.h,
1524 config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
1525 config/i386/rtemself.h, config/i386/netbsd-elf.h,
1526 config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
1527 config/i386/netware.h, config/i386/i386-modes.def,
1528 config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
1529 config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
1530 config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
1531 config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
1532 config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
1533 config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
1534 config/i386/xm-mingw32.h, config/i386/linux64.h,
1535 config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
1536 config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
1537 config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
1538 config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
1539 config/i386/cygwin2.c, config/i386/i386-protos.h,
1540 config/i386/sync.md, config/i386/openbsd.h,
1541 config/i386/host-mingw32.c, config/i386/i386-aout.h,
1542 config/i386/nto.h, config/i386/biarch64.h,
1543 config/i386/i386-coff.h, config/i386/freebsd.h,
1544 config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
1545 config/i386/host-i386-darwin.c, config/i386/vxworks.h,
1546 config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
1547 config/darwin-protos.h, config/linux.opt, config/sol2.c,
1548 config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
1549 config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
1550 config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
1551 config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
1552 config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
1553 config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
1554 config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
1555 config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
1556 config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
1557 config/sh/superh64.h, config/sh/rtemself.h,
1558 config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
1559 config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
1560 config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
1561 config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
1562 config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
1563 config/avr/predicates.md, config/avr/constraints.md,
1564 config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
1565 config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
1566 config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
1567 config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
1568 config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
1569 config/c4x/c4x-modes.def, config/c4x/rtems.h,
1570 config/c4x/predicates.md, config/c4x/c4x.h,
1571 config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
1572 config/xtensa/predicates.md, config/xtensa/xtensa.c,
1573 config/xtensa/linux.h, config/xtensa/xtensa.h,
1574 config/xtensa/elf.h, config/xtensa/xtensa.md,
1575 config/xtensa/xtensa.opt, config/xtensa/constraints.md,
1576 config/xtensa/xtensa-protos.h, config/dbx.h,
1577 config/stormy16/predicates.md, config/stormy16/stormy16.md,
1578 config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
1579 config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
1580 config/host-solaris.c, config/fr30/fr30.h,
1581 config/fr30/predicates.md, config/fr30/fr30-protos.h,
1582 config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
1583 config/vxworksae.h, config/sol2-c.c, config/lynx.h,
1584 config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
1585 config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
1586 config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
1587 config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
1588 config/host-linux.c, config/interix3.h, config/cris/cris.c,
1589 config/cris/predicates.md, config/cris/linux.h,
1590 config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
1591 config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
1592 config/cris/aout.opt, config/cris/cris-protos.h,
1593 config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
1594 config/iq2000/iq2000.h, config/iq2000/predicates.md,
1595 config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
1596 config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
1597 config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
1598 config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
1599 config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
1600 config/chorus.h, config/mn10300/mn10300.c,
1601 config/mn10300/mn10300.opt, config/mn10300/predicates.md,
1602 config/mn10300/mn10300.h, config/mn10300/linux.h,
1603 config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
1604 config/mn10300/mn10300.md, config/ia64/predicates.md,
1605 config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
1606 config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
1607 config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
1608 config/ia64/freebsd.h, config/ia64/ia64.md,
1609 config/ia64/ia64-modes.def, config/ia64/constraints.md,
1610 config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
1611 config/gofast.h, config/rtems.h, config/sol2-10.h,
1612 config/m68k/predicates.md, config/m68k/m68k.md,
1613 config/m68k/linux.h, config/m68k/m68k-modes.def,
1614 config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
1615 config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
1616 config/m68k/openbsd.h, config/m68k/m68k-aout.h,
1617 config/m68k/m68k.opt, config/m68k/m68020-elf.h,
1618 config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
1619 config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
1620 config/m68k/constraints.md, config/m68k/rtemself.h,
1621 config/m68k/netbsd-elf.h, config/m68k/m68k.h,
1622 config/m68k/uclinux.h, config/rs6000/power4.md,
1623 config/rs6000/host-darwin.c, config/rs6000/6xx.md,
1624 config/rs6000/linux.h, config/rs6000/eabi.h,
1625 config/rs6000/aix41.opt, config/rs6000/xcoff.h,
1626 config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
1627 config/rs6000/eabialtivec.h, config/rs6000/8540.md,
1628 config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
1629 config/rs6000/windiss.h, config/rs6000/603.md,
1630 config/rs6000/aix41.h, config/rs6000/cell.md,
1631 config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
1632 config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
1633 config/rs6000/darwin.md, config/rs6000/darwin64.h,
1634 config/rs6000/default64.h, config/rs6000/7xx.md,
1635 config/rs6000/darwin.opt, config/rs6000/spe.md,
1636 config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
1637 config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
1638 config/rs6000/7450.md, config/rs6000/linux64.h,
1639 config/rs6000/constraints.md, config/rs6000/440.md,
1640 config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
1641 config/rs6000/rs6000.c, config/rs6000/aix52.h,
1642 config/rs6000/rs6000.h, config/rs6000/power6.md,
1643 config/rs6000/predicates.md, config/rs6000/altivec.md,
1644 config/rs6000/aix64.opt, config/rs6000/rios1.md,
1645 config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
1646 config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
1647 config/rs6000/darwin7.h, config/rs6000/dfp.md,
1648 config/rs6000/linux64.opt, config/rs6000/sync.md,
1649 config/rs6000/vxworksae.h, config/rs6000/power5.md,
1650 config/rs6000/lynx.h, config/rs6000/biarch64.h,
1651 config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
1652 config/rs6000/eabispe.h, config/rs6000/e500.h,
1653 config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
1654 config/rs6000/netbsd.h, config/rs6000/e500-double.h,
1655 config/rs6000/aix.h, config/rs6000/vxworks.h,
1656 config/rs6000/40x.md, config/rs6000/aix51.h,
1657 config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
1658 config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
1659 config/arc/arc.h, config/mcore/mcore-elf.h,
1660 config/mcore/mcore-protos.h, config/mcore/predicates.md,
1661 config/mcore/mcore.md, config/mcore/mcore.c,
1662 config/mcore/mcore.opt, config/mcore/mcore.h,
1663 config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
1664 config/score/predicates.md, config/score/score-version.h,
1665 config/score/score-protos.h, config/score/misc.md,
1666 config/score/elf.h, config/score/score.c, config/score/mac.md,
1667 config/score/score7.md, config/score/score.h,
1668 config/score/score-conv.h, config/score/score-mdaux.c,
1669 config/score/score.md, config/score/score.opt,
1670 config/score/score-modes.def, config/score/score-mdaux.h,
1671 config/score/mul-div.S, config/arm/uclinux-elf.h,
1672 config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
1673 config/arm/symbian.h, config/arm/linux-elf.h,
1674 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
1675 config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
1676 config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
1677 config/arm/strongarm-pe.h, config/arm/arm.h,
1678 config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
1679 config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
1680 config/arm/arm-modes.def, config/arm/linux-eabi.h,
1681 config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
1682 config/arm/arm-cores.def, config/arm/arm-protos.h,
1683 config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
1684 config/arm/wince-pe.h, config/arm/neon.md,
1685 config/arm/constraints.md, config/arm/neon.ml,
1686 config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
1687 config/arm/arm.opt, config/arm/arm926ejs.md,
1688 config/arm/predicates.md, config/arm/iwmmxt.md,
1689 config/arm/arm_neon.h, config/arm/unknown-elf.h,
1690 config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
1691 config/arm/neon-testgen.ml, config/arm/arm.md,
1692 config/arm/xscale-coff.h, config/arm/pe.c,
1693 config/arm/arm-generic.md, config/arm/pe.h,
1694 config/arm/kaos-strongarm.h, config/arm/freebsd.h,
1695 config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
1696 config/arm/strongarm-elf.h, config/arm/cirrus.md,
1697 config/arm/netbsd-elf.h, config/arm/vxworks.h,
1698 config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
1699 config/pa/predicates.md, config/pa/pa64-hpux.h,
1700 config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
1701 config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
1702 config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
1703 config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
1704 config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
1705 config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
1706 config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
1707 config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
1708 config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
1709 config/pa/pa64-regs.h, config/pa/pa-modes.def,
1710 config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
1711 config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
1712 config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
1713 config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
1714 config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
1715 config/mips/linux64.h, config/mips/elforion.h,
1716 config/mips/constraints.md, config/mips/generic.md,
1717 config/mips/predicates.md, config/mips/4300.md,
1718 config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
1719 config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
1720 config/mips/5k.md, config/mips/vr4120-div.S,
1721 config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
1722 config/mips/mips-protos.h, config/mips/6000.md,
1723 config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
1724 config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
1725 config/mips/mips-modes.def, config/mips/vr.h,
1726 config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
1727 config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
1728 config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
1729 config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
1730 config/vax/openbsd1.h, config/vax/netbsd.h,
1731 config/vax/vax-protos.h, config/vax/netbsd-elf.h,
1732 config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
1733 config/h8300/rtems.h, config/h8300/predicates.md,
1734 config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
1735 config/h8300/h8300.md, config/h8300/h8300.opt,
1736 config/h8300/coff.h, config/h8300/h8300-protos.h,
1737 config/v850/v850.md, config/v850/predicates.md,
1738 config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
1739 config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
1740 config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
1741 config/mmix/mmix.h, config/mmix/predicates.md,
1742 config/mmix/mmix-protos.h, config/mmix/mmix.md,
1743 config/mmix/mmix.c, config/mmix/mmix.opt,
1744 config/mmix/mmix-modes.def, config/bfin/bfin.opt,
1745 config/bfin/rtems.h, config/bfin/bfin-modes.def,
1746 config/bfin/predicates.md, config/bfin/bfin-protos.h,
1747 config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
1748 Likewise.
1749
1750 2007-08-02 Richard Sandiford <richard@codesourcery.com>
1751
1752 * emit-rtl.c (reset_used_decls): Rename to...
1753 (set_used_decls): ...this. Set the used flag rather than clearing it.
1754 (unshare_all_rtl_again): Update accordingly. Set flags on argument
1755 DECL_RTLs rather than resetting them.
1756
1757 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
1758
1759 * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
1760
1761 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
1762
1763 * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
1764 argument to find_reloads_address.
1765
1766 2007-08-01 Daniel Jacobowitz <dan@codesourcery.com>
1767
1768 PR tree-optimization/32919
1769 * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
1770 * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
1771 (coalesce_ssa_name): Call it.
1772
1773 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
1774 David Ung <davidu@mips.com>
1775
1776 * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
1777 (__mips16_unorddf2, __mips16_floatunsidf): New.
1778 * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
1779 above functions.
1780 * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
1781
1782 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
1783
1784 * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
1785 Display new operands of OMP_SECTIONS and OMP_CONTINUE.
1786 * tree.h (OMP_SECTIONS_CONTROL): New macro.
1787 (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
1788 * omp-low.c (get_ws_args_for, determine_parallel_type,
1789 expand_omp_for_generic, expand_omp_for_static_nochunk,
1790 expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
1791 Work with more precise CFG.
1792 (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
1793 (lower_omp_sections): Emit OMP_SECTIONS_SWITCH. Add arguments to
1794 OMP_CONTINUE.
1795 * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
1796 * gimple-low.c (lower_stmt): Ditto.
1797 * tree-inline.c (estimate_num_insns_1): Ditto.
1798 * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
1799 (OMP_SECTIONS_SWITCH): New.
1800 * tree-cfgcleanup.c (cleanup_omp_return): New.
1801 (cleanup_tree_cfg_bb): Call cleanup_omp_return.
1802 * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
1803 and exit edge for OMP_FOR. Handle OMP_SECTIONS_SWITCH.
1804 (tree_redirect_edge_and_branch): Handle omp constructs.
1805
1806 * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
1807 with three arguments.
1808
1809 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
1810
1811 * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
1812 in loop closed ssa.
1813
1814 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
1815
1816 * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
1817 the loop structures may need fixing.
1818 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
1819 New functions.
1820 (cleanup_tree_cfg_loop): Removed.
1821 (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
1822 * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
1823 instead of running cleanup_tree_cfg_loop.
1824 * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
1825 * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
1826 (tree_predictive_commoning): Declaration changed.
1827 * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
1828
1829 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
1830
1831 * doc/invoke.texi (l1-cache-size): Update documentation.
1832 (l2-cache-size): Document.
1833 * params.h (L2_CACHE_SIZE): New macro.
1834 * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
1835 that L1_CACHE_SIZE is in kB now.
1836 (L2_CACHE_SIZE_BYTES): New macro.
1837 (tree_ssa_prefetch_arrays): Show size in kB.
1838 * config/i386/i386.h (struct processor_costs): Add l1_cache_size
1839 and l2_cache_size fields.
1840 * config/i386/driver-i386.c (describe_cache): Detect cache size
1841 in kB.
1842 * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
1843 pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
1844 amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
1845 generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
1846 (override_options): Set l1-cache-size and l2-cache-size to default
1847 values if not specified otherwise.
1848 * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
1849 (PARAM_L2_CACHE_SIZE): New.
1850
1851 2007-08-01 Nigel Stephens <nigel@mips.com>
1852 David Ung <davidu@mips.com>
1853 Thiemo Seufer <ths@mips.com>
1854 Chris Dearman <chris@mips.com>
1855 Richard Sandiford <richard@codesourcery.com>
1856
1857 * config.gcc (mips*-sde-elf*): New stanza.
1858 (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
1859 (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
1860 (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
1861 (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
1862 (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
1863 (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
1864 to tmake_file.
1865 * config/mips/sde.h: New file.
1866 * config/mips/t-libgcc-mips16: Likewise.
1867 * config/mips/t-sde: Likewise.
1868 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
1869 of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
1870 _MIPS_FPSET and _MIPS_SZINT.
1871 * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
1872 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
1873 insertion of a default -mips option. Use MIPS_32BIT_OPTION_SPEC.
1874 * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
1875 * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1876 * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1877 * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
1878 _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
1879 _MIPS_SZPTR and _MIPS_FPSET.
1880 (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
1881 architecture is specified.
1882 (MIPS_32BIT_OPTION_SPEC): New macro.
1883
1884 2007-07-31 Dan Hipschman <dsh@google.com>
1885
1886 * gcc.c (end_going_arg): New function.
1887 (do_spec_2): Use it.
1888 (do_spec_1): Use it.
1889
1890 2007-07-31 H.J. Lu <hongjiu.lu@intel.com>
1891
1892 * ddg.c (add_cross_iteration_register_deps): Declare bb_info
1893 only if ENABLE_CHECKING is defined.
1894
1895 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
1896
1897 * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
1898 df_ru_add_problem, df_ru_get_bb_info): Removed.
1899 (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
1900 * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
1901 df_ru_free_bb_info, df_ru_alloc,
1902 df_ru_bb_local_compute_process_def,
1903 df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
1904 df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
1905 df_ru_transfer_function, df_ru_free, df_ru_start_dump,
1906 df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
1907 df_ru_add_problem): Removed.
1908
1909 2007-07-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1910
1911 PR target/32847
1912 * pa.md (casesi32): Use match_scratch. Revise insn condition.
1913 (casesi32p, casesi64p): Likewise.
1914 (casesi): Adjust for above.
1915
1916 2007-07-31 Richard Sandiford <richard@codesourcery.com>
1917
1918 * mode-switching.c (create_pre_exit): Don't search past calls.
1919
1920 2007-07-31 Sandra Loosemore <sandra@codesourcery.com>
1921
1922 * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
1923
1924 2007-07-31 Revital Eres <eres@il.ibm.com>
1925
1926 * ddg.c (add_deps_for_def): Rename to...
1927 (add_cross_iteration_register_deps): This. Change implementation
1928 to use only reaching def and def-use chains to construct the
1929 inter loop dependencies.
1930 (add_deps_for_use): Remove function.
1931 (build_inter_loop_deps): Call add_cross_iteration_register_deps
1932 function to build the inter loop dependencies.
1933 * modulo-sched.c (sms_schedule): Build only
1934 reaching def and def-use chains for the propose of the ddg
1935 construction.
1936
1937 2007-07-31 Julian Brown <julian@codesourcery.com>
1938
1939 * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
1940 New define_insns. Use correct RTL.
1941 (vec_set<mode>): Write as expander.
1942
1943 2007-07-31 Razya Ladelsky <razya@il.ibm.com>
1944
1945 * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring
1946 to an unallocated space.
1947
1948 2007-07-30 Jan Sjodin <jan.sjodin@amd.com>
1949
1950 * tree-data-ref.c
1951 (split_constant_offset): Enable split_constant_offset to extract
1952 constants from other statements.
1953 * tree-vect-transform.c
1954 (vect_create_addr_base_for_vector_ref): Generate data_ref_base
1955 to a temp var. Force base_offset to be simple.
1956
1957 2007-07-30 Seongbae Park <seongbae.park@gmail.com>
1958
1959 * df-scan.c (df_scan_verify): Remove artificial limit on
1960 the number of blocks for verification.
1961 * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
1962 df_simulate_defs): Avoid unnecessary insn checking for defs.
1963
1964 2007-07-29 Mark Mitchell <mark@codesourcery.com>
1965
1966 * config/m68k/lb1sf68.asm (FUNC): New macro.
1967 (__mulsi3): Use it.
1968 (__udivsi3): Likewise.
1969 (__divsi3): Likewise.
1970 (__umodsi3): Likewise.
1971 (__modsi3): Likewise.
1972 (__subdf3): Likewise.
1973 (__adddf3): Likewise.
1974 (__muldf3): Likewise.
1975 (__divdf3): Likewise.
1976 (__negdf2): Likewise.
1977 (__cmpdf2): Likewise.
1978 (__subsf3): Likewise.
1979 (__addsf3): Likewise.
1980 (__mulsf3): Likewise.
1981 (__divsf3): Likewise.
1982 (__negsf2): Likewise.
1983 (__cmpsf2): Likewise.
1984 (__eqdf2): Likewise.
1985 (__nedf2): Likewise.
1986 (__gtdf2): Likewise.
1987 (__gedf2): Likewise.
1988 (__ltdf2): Likewise.
1989 (__ledf2): Likewise.
1990 (__eqsf2): Likewise.
1991 (__nesf2): Likewise.
1992 (__gtsf2): Likewise.
1993 (__gesf2): Likewise.
1994 (__ltsf2): Likewise.
1995 (__lesf2): Likewise.
1996
1997 2007-07-30 Ollie Wild <aaw@google.com>
1998
1999 * c-ppoutput.c (print_lines_directives_only): New function.
2000 (scan_translation_unit_directives_only): New function.
2001 (preprocess_file): Add call to scan_translation_unit_directives_only.
2002 * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
2003 (sanitize_cpp_opts): Add default flag_dump_macros setting for
2004 -fdirectives-only. Add errors for -fdirectives-only conflict with
2005 -Wunused-macros and -traditional.
2006 (finish_options): Add builtin macro initialization for
2007 -fdirectives-only + -fpreprocessed.
2008 * c.opt (fdirectives-only): New.
2009 * doc/cppopts.texi (fdirectives-only): New.
2010
2011 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2012
2013 * alias.c (record_set, memory_modified_1): Constify.
2014 * bt-load.c (note_btr_set): Likewise.
2015 * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
2016 * combine.c (set_nonzero_bits_and_sign_copies,
2017 expand_field_assignment, record_dead_and_set_regs_1,
2018 use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
2019 likely_spilled_retval_1): Likewise.
2020 * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
2021 frv_io_handle_set): Likewise.
2022 * config/mips/mips.c (mips_sim_record_set,
2023 vr4130_true_reg_dependence_p_1): Likewise.
2024 * config/mt/mt.c (insn_dependent_p_1): Likewise.
2025 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
2026 * config/sh/sh.c (flow_dependent_p_1): Likewise.
2027 * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
2028 * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
2029 * ddg.c (mark_mem_store): Likewise.
2030 * df-problems.c (df_urec_mark_reg_change): Likewise.
2031 * function.c (update_epilogue_consts): Likewise.
2032 * gcse.c (record_set_info, record_last_set_info,
2033 mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
2034 reg_clear_last_set): Likewise.
2035 * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
2036 Likewise.
2037 * jump.c (reversed_comparison_code_parts): Likewise.
2038 * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
2039 reg_is_set): Likewise.
2040 * loop-iv.c (mark_altered): Likewise.
2041 * mode-switching.c (reg_becomes_live): Likewise.
2042 * optabs.c (no_conflict_move_test): Likewise.
2043 * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
2044 Likewise.
2045 * postreload.c (reload_combine_note_store, move2add_note_store):
2046 Likewise.
2047 * regmove.c (flags_set_1): Likewise.
2048 * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
2049 Likewise.
2050 * reload1.c (mark_not_eliminable, forget_old_reloads_1):
2051 Likewise.
2052 * resource.c (update_live_status): Likewise.
2053 * rtl.h (set_of, note_stores): Likewise.
2054 * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
2055 note_stores, parms_set): Likewise.
2056 * sched-rgn.c (sets_likely_spilled_1): Likewise.
2057 * stack-ptr-mod.c (notice_stack_pointer_modification_1):
2058 Likewise.
2059 * var-tracking.c (count_stores, add_stores): Likewise.
2060
2061 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2062
2063 * alias.c (mems_in_disjoint_alias_sets_p,
2064 fixed_scalar_and_varying_struct_p, aliases_everything_p,
2065 nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
2066 write_dependence_p, mems_in_disjoint_alias_sets_p,
2067 read_dependence, true_dependence, canon_true_dependence,
2068 anti_dependence, output_dependence): Constify.
2069 * combine.c (extended_count): Likewise.
2070 * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
2071 * cselib.c (get_value_hash, references_value_p,
2072 cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
2073 * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
2074 * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
2075 * function.c (contains, prologue_epilogue_contains,
2076 sibcall_epilogue_contains): Likewise.
2077 * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
2078 pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
2079 only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
2080 reg_or_subregno): Likewise.
2081 * recog.c (asm_noperands): Likewise.
2082 * reload1.c (function_invariant_p): Likewise.
2083 * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
2084 rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
2085 condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
2086 simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
2087 true_regnum, reg_or_subregno, condjump_in_parallel_p,
2088 extended_count, prologue_epilogue_contains,
2089 sibcall_epilogue_contains, function_invariant_p, true_dependence,
2090 canon_true_dependence, read_dependence, anti_dependence,
2091 output_dependence): Likewise.
2092 * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
2093
2094 2007-07-30 Julian Brown <julian@codesourcery.com>
2095
2096 * config/arm/neon.md (V_ext): New mode attribute.
2097 (neon_vget_lane<mode>): Replace with define_expand.
2098 (neon_vget_lane<mode>_sext_internal)
2099 (neon_vget_lane<mode>_zext_internal): New define_insns for double
2100 and quad precision vectors.
2101 (neon_vget_lanedi): Add bounds check. Remove dead comment.
2102 * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
2103 have typeless 32-bit result.
2104
2105 2007-07-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
2106
2107 PR tree-opt/32527
2108 * tree-affine.h (aff_tree): The type of rest is sizetype for types
2109 of pointers.
2110 * tree-affine.c (aff_combination_scale): If type is a pointer type,
2111 use sizetype for rest.
2112 (aff_combination_add_elt): Likewise. Don't specialize pointer types.
2113 (aff_combination_convert): Don't convert rest for pointer types.
2114
2115 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
2116
2117 * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
2118
2119 * tree-ssa-alias.c: Add alloc-pool.h.
2120 (init_alias_info): Free alias_bitmap_obstack.
2121 (delete_alias_info): Call delete_mem_ref_stats.
2122 (get_mem_sym_stats_for): Use alloc_pool.
2123 (init_mem_ref_stats): Do not delete mem_ref_stats here.
2124 (delete_mem_sym_stats): Removed.
2125
2126 2007-07-29 Sebastian Pop <sebpop@gmail.com>
2127
2128 * tree-data-ref.c (add_multivariate_self_dist): Parametric access
2129 functions cannot be represented as classical distance vectors.
2130
2131 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2132
2133 * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
2134 * builtins.c (validate_arg, builtin_mathfn_code,
2135 validate_arglist): Likewise.
2136 * calls.c (call_expr_flags): Likewise.
2137 * combine.c (reg_nonzero_bits_for_combine,
2138 reg_num_sign_bit_copies_for_combine, get_last_value,
2139 reg_truncated_to_mode): Likewise.
2140 * emit-rtl.c (subreg_lowpart_p): Likewise.
2141 * expr.c (highest_pow2_factor_for_target,
2142 categorize_ctor_elements_1, categorize_ctor_elements,
2143 count_type_elements, contains_packed_reference,
2144 highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
2145 * fold-const.c (may_negate_without_overflow_p, int_const_binop,
2146 fold_convertible_p, operand_equal_p, tree_swap_operands_p,
2147 native_encode_int, native_encode_real, native_encode_complex,
2148 native_encode_vector, native_encode_expr, native_interpret_int,
2149 native_interpret_real, native_interpret_complex,
2150 native_interpret_vector, native_interpret_expr): Likewise.
2151 * function.c (use_register_for_decl): Likewise.
2152 * gimplify.c (get_name): Likewise.
2153 * langhooks-def.h (lhd_return_null_const_tree): New.
2154 (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
2155 * langhooks.c (lhd_return_null_const_tree): New.
2156 * langhooks.h (lang_get_callee_fndecl): Constify.
2157 * output.h (constructor_static_from_elts_p): Likewise.
2158 * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
2159 * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
2160 subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
2161 * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
2162 cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
2163 nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
2164 * rtlhooks-def.h (reg_nonzero_bits_general,
2165 reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
2166 Likewise.
2167 * rtlhooks.c (reg_num_sign_bit_copies_general,
2168 reg_nonzero_bits_general, reg_truncated_to_mode_general):
2169 Likewise.
2170 * stmt.c (warn_if_unused_value, is_body_block): Likewise.
2171 * stor-layout.c (mode_for_size_tree): Likewise.
2172 * tree-ssa-loop-im.c (memref_eq): Likewise.
2173 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
2174 * tree.c (contains_placeholder_p, type_list_equal,
2175 simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
2176 Likewise.
2177 * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
2178 mode_for_size_tree, categorize_ctor_elements, count_type_elements,
2179 contains_placeholder_p, contains_packed_reference,
2180 get_callee_fndecl, operand_equal_for_phi_arg_p,
2181 warn_if_unused_value, is_body_block, native_encode_expr,
2182 native_interpret_expr, fold_convertible_p, operand_equal_p,
2183 int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
2184 validate_arglist, simple_cst_equal, type_list_equal,
2185 use_register_for_decl, call_expr_flags, get_name,
2186 highest_pow2_factor): Likewise.
2187 (const_call_expr_arg_iterator_d,
2188 init_const_call_expr_arg_iterator, next_const_call_expr_arg,
2189 first_const_call_expr_arg, more_const_call_expr_args_p,
2190 FOR_EACH_CONST_CALL_EXPR_ARG): New.
2191 * varasm.c (constructor_static_from_elts_p): Constify.
2192
2193 2007-07-28 Kazu Hirata <kazu@codesourcery.com>
2194
2195 * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
2196 config/arm/neon-schedgen.ml, config/arm/neon.ml,
2197 config/arm/vec-common.md, config/ia64/div.md, cselib.c,
2198 df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
2199 regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
2200 tree-vect-transform.c, tree.def: Fix comment typos. Follow
2201 spelling conventions.
2202 * doc/invoke.texi: Follow spelling conventions.
2203
2204 2007-07-29 Vladimir Yanovsky <yanov@il.ibm.com>
2205 Revital Eres <eres@il.ibm.com>
2206
2207 * modulo-sched.c (sms_schedule): Avoid loops which includes
2208 auto-increment instructions.
2209
2210 2007-07-28 Richard Guenther <rguenther@suse.de>
2211
2212 PR middle-end/32920
2213 * fold-const.c (fold_cond_expr_with_comparison): Convert
2214 operand zero of MIN/MAX_EXPR to correct type.
2215
2216 2007-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2217
2218 * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
2219 flags_from_decl_or_type): Constify.
2220 * gcc.c (do_spec_1): Likewise.
2221 * print-tree.c (dump_addr, print_node_brief): Likewise.
2222 * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
2223 simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
2224 tree_purge_all_dead_eh_edges): Likewise.
2225 * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
2226 tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
2227 Likewise.
2228 * tree.c (expr_location, expr_has_location, expr_locus,
2229 expr_filename, expr_lineno, get_inner_array_type,
2230 fields_compatible_p): Likewise.
2231 * tree.h (get_inner_array_type, fields_compatible_p,
2232 expr_location, expr_has_location, expr_locus, expr_filename,
2233 expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
2234 setjmp_call_p, alloca_call_p): Likewise.
2235
2236 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
2237
2238 * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
2239 TV_FLOW_INSENSITIVE.
2240
2241 * tree-ssa-alias.c (compute_call_clobbered): Push/pop
2242 TV_CALL_CLOBBER.
2243 (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
2244 (compute_flow_insensitive_aliasing): Ditto for
2245 TV_FLOW_INSENSITIVE.
2246
2247 2007-07-27 Jan Hubicka <jh@suse.cz>
2248
2249 * config/i386/i386.c (register_move_cost): Remove accidentally comitted
2250 #if 0 block.
2251
2252 * attribs.c: Include hashtab.h
2253 (attribute_hash): New.
2254 (substring): New structure.
2255 (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
2256 New function.
2257 (init_attributes): Initialize attribute hash.
2258 (decl_attributes): Use attribute hash.
2259 * Makefile.in (attribs.c): Depend on hashtab.h.
2260
2261 2007-07-27 Steve Ellcey <sje@cup.hp.com>
2262
2263 * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
2264
2265 2007-07-27 Richard Sandiford <richard@codesourcery.com>
2266
2267 * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
2268 __mips_dspr2 and __mips_dsp_rev macros.
2269 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
2270
2271 2007-07-27 Douglas Gregor <doug.gregor@gmail.com>
2272
2273 * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
2274
2275 2007-07-26 Kenneth Zadeck <zadeck@naturalbridge.com>
2276
2277 PR middle-end/32749
2278
2279 * df-problems.c (df_create_unused_note): Removed do_not_gen parm
2280 and the updating of the live and do_not_gen sets.
2281 (df_note_bb_compute): Added updating of live and do_not_gen sets
2282 for regular defs so that the case of clobber inside conditional
2283 call is processed correctly.
2284
2285 2007-07-27 Zdenek Dvorak <dvorakz@suse.cz>
2286
2287 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
2288 operands with compatible type.
2289
2290 2007-07-27 Richard Sandiford <richard@codesourcery.com>
2291
2292 * expr.h (store_bit_field): Don't return a value.
2293 * expmed.c (check_predicate_volatile_ok): New function.
2294 (store_bit_field_1): New function, extracted from store_bit_field.
2295 Take a fallback_p argument and return true if the operation succeeded.
2296 Only use store_fixed_bit_field if fallback_p. Don't recompute
2297 mode_for_extraction; use op_mode instead. Try forcing memories
2298 into registers if the insv expander fails.
2299 (store_bit_field): Use store_bit_field_1 with fallback_p true.
2300 Don't return a value.
2301 (convert_extracted_bit_field): New function, extracted from
2302 store_bit_field.
2303 (extract_bit_field_1): Likewise. Take a fallback_p argument
2304 and return NULL if the operation succeeded. Only use
2305 extract_fixed_bit_field if fallback_p. Only calculate one
2306 extraction mode. Combine code for extv and extzv. Try forcing
2307 memories into registers if the ext(z)v expander fails.
2308 (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
2309
2310 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
2311
2312 * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
2313 into bitfields.
2314 (df_ref): Likewise. Put regno with other integer fields.
2315
2316 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
2317
2318 * df.h (df_mw_hardreg): Remove "loc" field.
2319 * df-scan.c (df_ref_record): Don't set it. Remove redundant
2320 local variable.
2321 * df-problems.c (df_whole_mw_reg_unused_p): New function,
2322 split out from df_set_unused_notes_for_mw. Return false for
2323 partial references. Assert that mw_reg is a REG when returning true.
2324 (df_set_unused_notes_for_mw): Use it. Use mw_reg instead of *loc.
2325 (df_whole_mw_reg_dead_p): New function, split out from
2326 df_set_dead_notes_for_mw. Return false for partial references.
2327 Assert that mw_reg is a REG when returning true.
2328 (df_set_dead_notes_for_mw): Use it. Use mw_reg instead of *loc.
2329 Remove redundant bitmap check.
2330
2331 2007-07-26 H.J. Lu <hongjiu.lu@intel.com>
2332
2333 * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
2334 ($(T)crtend.o): Likwise.
2335 ($(T)crtbeginS.o): Likwise.
2336 ($(T)crtendS.o): Likwise.
2337 ($(T)crtfastmath.o): Likwise.
2338
2339 2007-07-26 Zdenek Dvorak <dvorakz@suse.cz>
2340
2341 * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
2342 * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
2343 * basic-block.h (struct control_flow_graph): Added x_dom_computed
2344 and x_n_bbs_in_dom_tree fields.
2345
2346 2007-07-26 Steve Ellcey <sje@cup.hp.com>
2347
2348 PR tree-optimization/32087
2349 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
2350 Do not call scale_bbs_frequencies_int with prob of zero.
2351
2352 2007-07-26 Julian Brown <julian@codesourcery.com>
2353
2354 * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
2355 (neon_element_bits): Add prototypes.
2356 * config/arm/arm.c (bounds_check, neon_lane_bounds)
2357 (neon_const_bounds, neon_element_bits): New functions.
2358 * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
2359 (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
2360 (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
2361 (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
2362 (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
2363 (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
2364 (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
2365 (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
2366 (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
2367 (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
2368 (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
2369 (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
2370 (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
2371
2372 2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
2373
2374 * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
2375 (HAVE_AS_GNU_ATTRIBUTE): Undefine.
2376
2377 2007-07-26 Mark Shinwell <shinwell@codesourcery.com>
2378 Julian Brown <julian@codesourcery.com>
2379
2380 * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
2381 * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
2382 * config/arm/cortex-a8.md: New.
2383 * config/arm/cortex-a8-neon.md: New.
2384 * config/arm/neon-schedgen.ml: New.
2385 * config/arm/neon.md (vqh_mnem): New.
2386 (neon_type): New.
2387 (Is_float_mode): New.
2388 (Scalar_mul_8_16): New.
2389 (Is_d_reg): New.
2390 (V_mode_nunits): New.
2391 (All instruction patterns): Annotate with neon_type attribute
2392 values.
2393 * config/arm/arm.md: Include cortex-a8.md.
2394 (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
2395 values.
2396 Annotate instruction patterns accordingly.
2397 (generic_sched): Do not use generic scheduling for Cortex-A8.
2398 (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
2399
2400 2007-07-26 Daniel Jacobowitz <dan@codesourcery.com>
2401
2402 * fold-const.c (fold_read_from_constant_string): Use
2403 build_int_cst_type.
2404 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
2405
2406 2007-07-26 Nick Clifton <nickc@redhat.com>
2407
2408 * tree-ssa-operands.h: Change copyright header to refer to version
2409 3 of the GNU General Public License and to point readers at the
2410 COPYING3 file and the FSF's license web page.
2411 * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
2412 sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
2413 tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
2414 targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
2415 tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
2416 hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
2417 flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
2418 opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
2419 gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
2420 cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
2421 rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
2422 optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
2423 tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
2424 genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
2425 reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
2426 c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
2427 rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
2428 tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
2429 diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
2430 gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
2431 input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
2432 gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
2433 cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
2434 graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
2435 genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
2436 tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
2437 reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
2438 real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
2439 omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
2440 tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
2441 regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
2442 tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
2443 scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
2444 double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
2445 dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
2446 gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
2447 hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
2448 ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
2449 c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
2450 tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
2451 xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
2452 tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
2453 gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
2454 mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
2455 alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
2456 dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
2457 expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
2458 genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
2459 timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
2460 tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
2461 recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
2462 dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
2463 matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
2464 tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
2465 lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
2466 ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
2467 ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
2468 langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
2469 sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
2470 gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
2471 ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
2472 init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
2473 loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
2474 mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
2475 opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
2476 insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
2477 tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
2478 dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
2479 bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
2480 coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
2481 stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
2482 cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
2483 tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
2484 loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
2485 lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
2486 tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
2487 tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
2488 ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
2489 varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
2490 sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
2491 target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
2492 omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
2493 intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
2494 sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
2495 genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
2496 tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
2497 bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
2498 cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
2499 cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
2500 tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
2501 c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
2502 fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
2503 vecprim.h, basic-block.h, tree-ssa-structalias.c,
2504 tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
2505 passes.c, genconstants.c, c-incpath.c, c-incpath.h,
2506 struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
2507 varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
2508 reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
2509 stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
2510 params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
2511 tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
2512 convert.c, convert.h, langhooks-def.h, reload1.c,
2513 tree-ssa-operands.c: Likewise.
2514
2515 2007-07-26 Jan Hubicka <jh@suse.cz>
2516
2517 * tree-ssa-live.c: Include debug.h and flags.h.
2518 (mark_scope_block_unused): New function.
2519 (remove_unused_scope_block_p): New function.
2520 (remove_unused_locals): Remove unused blocks too.
2521
2522 2007-07-25 Ian Lance Taylor <iant@google.com>
2523
2524 * combine.c (combine_max_regno): Remove. Remove all uses.
2525 (struct reg_stat_struct): Rename from struct reg_stat.
2526 (reg_stat_type): Define, and declare VECs.
2527 (reg_stat): Change from pointer to VEC. Change all uses.
2528 (combine_split_insns): New static function.
2529 (try_combine, find_split_point): Call it instead of split_insns.
2530
2531 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
2532
2533 * cfghooks.c (split_block): Fix the information about loop latch.
2534
2535 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
2536
2537 * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
2538
2539 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
2540
2541 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
2542 Scan the new edge for loop exit info.
2543
2544 2007-07-25 Andreas Tobler <a.tobler@schweiz.org>
2545
2546 * config/darwin.c: Include debug.h.
2547
2548 2007-07-25 Steve Ellcey <sje@cup.hp.com>
2549
2550 PR target/32218
2551 * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
2552
2553 2007-07-25 Steve Ellcey <sje@cup.hp.com>
2554
2555 * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
2556 (HARD_REGNO_MODE_OK): Ditto.
2557 (MODES_TIEABLE_P): Ditto.
2558 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
2559 (CLASS_MAX_NREGS): Ditto.
2560 * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
2561 * config/ia64/ia64.md (divsf3_internal_thr): Removed.
2562 (divdf3_internal_thr): Removed.
2563 * config/ia64/div.md: New file.
2564 * config/ia64/constraints.md: Add H constraint.
2565
2566 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2567
2568 * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
2569 sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
2570 sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
2571 sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
2572 sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
2573 sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
2574 sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
2575 sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
2576 sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
2577 dump_sbitmap_file, debug_sbitmap, popcount_table,
2578 sbitmap_popcount): Constify.
2579 * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
2580 (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
2581 dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
2582 sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
2583 sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
2584 sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
2585 sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
2586 sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
2587 sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
2588 sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
2589 sbitmap_popcount, sbitmap_verify_popcount): Constify.
2590
2591 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2592
2593 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
2594 bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
2595 bitmap_first_set_bit, bitmap_and, bitmap_and_into,
2596 bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
2597 bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
2598 bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
2599 bitmap_intersect_p, bitmap_intersect_compl_p,
2600 bitmap_ior_and_compl, bitmap_ior_and_compl_into,
2601 debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
2602 Constify.
2603 * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
2604 bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
2605 bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
2606 bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
2607 bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
2608 debug_bitmap, debug_bitmap_file, bitmap_print,
2609 bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
2610 bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
2611
2612 2007-07-25 Daniel Berlin <dberlin@dberlin.org>
2613
2614 * config/darwin.c (darwin_override_options): Additional fix for
2615 debug info formats that don't support var tracking.
2616
2617 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2618
2619 * cselib.c (entry_and_rtx_equal_p): Constify.
2620 * gengtype.c (output_mangled_typename, write_types, write_local):
2621 Likewise.
2622 * gengtype.h (const_type_p): New.
2623 * see.c (eq_descriptor_extension, hash_descriptor_extension):
2624 Constify.
2625 * tlink.c (scan_linker_output): De-constify.
2626 * tree-ssa-loop-im.c (memref_eq): Constify.
2627 * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
2628 (shared_bitmap_hash, shared_bitmap_eq): Constify.
2629
2630 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2631
2632 * c-common.c (fname_as_string, c_type_hash): Constify.
2633 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
2634 * cgraph.c (edge_hash, edge_eq): Likewise.
2635 * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
2636 * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
2637 reg_attrs_htab_eq): Likewise.
2638 * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
2639 Likewise.
2640 * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
2641 const_decl_t, const_state_t, const_automata_list_el_t): New.
2642 (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
2643 DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
2644 automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
2645 insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
2646 reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
2647 automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
2648 compare_max_occ_cycle_nums, out_state_arcs_num,
2649 compare_transition_els_num, units_cmp, state_reservs_cmp):
2650 Constify.
2651 * genmodes.c (cmp_modes): Likewise.
2652 * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
2653 * gimplify.c (compare_case_labels): Likewise.
2654 * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
2655 * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
2656 * matrix-reorg.c (mtt_info_hash): Likewise.
2657 * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
2658 * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
2659 (htab_hash_bucket, htab_hash_elem): Constify.
2660 * tree-browser.c (TB_parent_eq): Likewise.
2661 * tree-scalar-evolution.c (hash_scev_info): Likewise.
2662 * tree-ssa-alias.c (sort_tags_by_id): Likewise.
2663 * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
2664 (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
2665 Constify.
2666 * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
2667 * tree-ssa-pre.c (const_expr_pred_trans_t): New.
2668 (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
2669 * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
2670 const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
2671 New.
2672 (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
2673 vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
2674 vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
2675 * tree-ssa-threadupdate.c (redirection_data_hash,
2676 redirection_data_eq): Likewise.
2677 * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
2678 * tree-ssa.c (var_ann_eq): Likewise.
2679 * tree-vrp.c (compare_case_labels): Likewise.
2680 * tree.c (int_cst_hash_hash, int_cst_hash_eq,
2681 tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
2682 tree_not_check_failed, tree_class_check_failed,
2683 tree_range_check_failed, tree_not_class_check_failed,
2684 omp_clause_check_failed, omp_clause_range_check_failed,
2685 tree_contains_struct_check_failed, tree_operand_check_failed):
2686 Likewise.
2687 * tree.h (tree_contains_struct_check_failed, tree_check_failed,
2688 tree_not_check_failed, tree_class_check_failed,
2689 tree_range_check_failed, tree_not_class_check_failed,
2690 tree_operand_check_failed, omp_clause_operand_check_failed,
2691 tree_operand_length): Likewise.
2692 * var-tracking.c (const_variable): New.
2693 (variable_htab_hash, variable_htab_eq): Constify.
2694 * varasm.c (const_desc_hash): Likewise.
2695
2696 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2697
2698 * expr.c (handled_component_p): Constify.
2699 * fold-const.c (fit_double_type): Likewise.
2700 * real.h (real_value_from_int_cst): Likewise.
2701 * tree-flow-inline.h (gimple_in_ssa_p,
2702 gimple_aliases_computed_p, gimple_addressable_vars,
2703 gimple_call_clobbered_vars, gimple_referenced_vars,
2704 gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
2705 end_htab_p, end_referenced_vars_p, var_ann, function_ann,
2706 may_aliases, end_readonly_imm_use_p, has_zero_uses,
2707 has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
2708 is_label_stmt, is_global_var, phi_ssa_name_p,
2709 factoring_name_p, is_call_clobbered, tree_common_ann,
2710 op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
2711 unmodifiable_var_p, array_ref_contains_indirect_ref,
2712 ref_contains_array_ref, lookup_subvars_for_var,
2713 var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
2714 gimple_mem_ref_stats): Likewise.
2715 * tree-flow.h (tree_common_ann, var_ann, function_ann,
2716 may_aliases, is_exec_stmt, is_label_stmt,
2717 ref_contains_array_ref, array_ref_contains_indirect_ref,
2718 var_can_have_subvars, overlap_subvar, is_call_clobbered,
2719 unmodifiable_var_p): Likewise.
2720 * tree-gimple.c (is_gimple_min_invariant): Likewise.
2721 * tree-gimple.h (is_gimple_min_invariant): Likewise.
2722 * tree.c (type_hash_list, attribute_hash_list, tree_size,
2723 cst_and_fits_in_hwi, real_value_from_int_cst,
2724 build_real_from_int_cst, integer_zerop, integer_onep,
2725 integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
2726 tree_floor_log2, real_zerop, real_onep, real_twop,
2727 real_minus_onep, really_constant_p, purpose_member, chain_member,
2728 list_length, fields_length, int_size_in_bytes, bit_position,
2729 int_bit_position, byte_position, int_byte_position, expr_align,
2730 array_type_nelts, tree_node_structure,
2731 type_contains_placeholder_1, iterative_hash_pointer,
2732 is_attribute_with_length_p, is_attribute_p, check_qualified_type,
2733 tree_map_base_eq, type_hash_list, type_hash_eq,
2734 attribute_hash_list, type_num_arguments, tree_int_cst_equal,
2735 tree_int_cst_lt, tree_int_cst_compare, host_integerp,
2736 tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
2737 simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
2738 int_fits_type_p, get_containing_scope, decl_function_context,
2739 decl_type_context, omp_clause_operand_check_failed,
2740 initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
2741 * tree.h (omp_clause_operand_check_failed, tree_size,
2742 build_real_from_int_cst, array_type_nelts, purpose_member,
2743 tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
2744 host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
2745 is_attribute_p, check_qualified_type, expr_align,
2746 int_size_in_bytes, bit_position, int_bit_position, byte_position,
2747 int_byte_position, list_length, fields_length, initializer_zerop,
2748 integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
2749 integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
2750 tree_node_structure, handled_component_p, get_containing_scope,
2751 decl_function_context, decl_type_context, real_zerop,
2752 type_num_arguments, fit_double_type, really_constant_p,
2753 int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
2754 compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
2755 real_twop, real_minus_onep, int_cst_value): Likewise.
2756
2757 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2758
2759 * cfglayout.c (insn_scope, insn_line): Constify.
2760 * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
2761 const_double_htab_hash, const_double_htab_eq,
2762 mem_attrs_htab_hash): Likewise.
2763 * loop-iv.c (biv_eq): Likewise.
2764 * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
2765 print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
2766 debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
2767 Likewise.
2768 * rtl-error.c (location_for_asm, diagnostic_for_asm,
2769 error_for_asm, warning_for_asm, _fatal_insn,
2770 _fatal_insn_not_found): Likewise.
2771 * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
2772 rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
2773 rtl_check_failed_type2, rtl_check_failed_code1,
2774 rtl_check_failed_code2, rtl_check_failed_code_mode,
2775 rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
2776 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
2777 rtl_check_failed_type2, rtl_check_failed_code1,
2778 rtl_check_failed_code2, rtl_check_failed_code_mode,
2779 rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
2780 SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
2781 shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
2782 get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
2783 mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
2784 rtx_unstable_p, get_integer_term, get_related_value,
2785 offset_within_block_p, reg_mentioned_p, count_occurrences,
2786 reg_referenced_p, reg_used_between_p, no_labels_between_p,
2787 single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
2788 reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
2789 find_reg_note, find_regno_note, find_reg_equal_equiv_note,
2790 find_constant_src, find_reg_fusage, find_regno_fusage,
2791 pure_call_p, remove_note, side_effects_p, volatile_refs_p,
2792 volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
2793 may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
2794 computed_jump_p, auto_inc_p, in_expr_list_p,
2795 remove_node_from_expr_list, loc_mentioned_in_p,
2796 label_is_jump_target_p, reversed_comparison_code_parts,
2797 debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
2798 print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
2799 print_inline_rtx): Likewise.
2800 * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
2801 computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
2802 rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
2803 get_integer_term, get_related_value, offset_within_block_p,
2804 count_occurrences, reg_mentioned_p, no_labels_between_p,
2805 reg_used_between_p, reg_referenced_p, single_set_2,
2806 multiple_sets, set_noop_p, refers_to_regno_p,
2807 reg_overlap_mentioned_p, dead_or_set_p,
2808 covers_regno_no_parallel_p, covers_regno_p,
2809 dead_or_set_regno_p, find_reg_note, find_regno_note,
2810 find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
2811 find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
2812 remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
2813 side_effects_p, may_trap_p_1, may_trap_p,
2814 may_trap_after_code_motion_p, may_trap_or_fault_p,
2815 inequality_comparisons_p, tablejump_p, computed_jump_p_1,
2816 computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
2817 subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
2818 * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
2819 mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
2820 Likewise.
2821 * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
2822 warning_for_asm): Likewise.
2823 * tree.h (print_rtl): Likewise.
2824 * varasm.c (get_pool_mode): Likewise.
2825
2826 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2827
2828 * c-lex.c (c_lex_with_flags, lex_string): Constify.
2829 * c-ppoutput.c (print_line, pp_dir_change): Likewise.
2830 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
2831 * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
2832 * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
2833 * ddg.c (compare_sccs): Likewise.
2834 * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
2835 * dfp.c (decimal_real_from_string, decimal_to_decnumber,
2836 decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
2837 decimal_do_fix_trunc, decimal_real_to_integer,
2838 decimal_real_to_integer2, decimal_real_maxval): Likewise.
2839 * dse.c (const_group_info_t): New.
2840 (invariant_group_base_eq, invariant_group_base_hash): Constify.
2841 * dwarf2out.c (const_dw_die_ref): New.
2842 (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
2843 * tree-browser.c (TB_parent_eq): Likewise.
2844 * unwind-dw2-fde.c (__register_frame_info_bases,
2845 __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
2846 add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
2847 Likewise.
2848 * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
2849 * unwind-dw2.c (uw_frame_state_for): Likewise.
2850 * value-prof.c (histogram_hash, histogram_eq): Likewise.
2851 * value-prof.h (const_histogram_value): New.
2852
2853 2007-07-25 Richard Sandiford <richard@codesourcery.com>
2854
2855 * config/mips/mips.c (machine_function): Add
2856 initialized_mips16_gp_pseudo_p.
2857 (mips16_gp_pseudo_reg): Do not emit the initialization of
2858 mips16_gp_pseudo_rtx when being called from the gimple cost-
2859 calculation routines; emit it on the first use outside those
2860 routines.
2861
2862 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2863
2864 * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
2865 New.
2866
2867 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
2868 RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
2869 RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
2870 RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
2871 RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
2872 Preserve const-ness of parameters through use of __typeof(),
2873 also constify and tidy.
2874
2875 * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
2876 TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
2877 NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
2878 CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
2879 OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
2880 GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
2881 PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
2882 TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
2883 TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
2884
2885 2007-07-25 Julian Brown <julian@codesourcery.com>
2886 Mark Shinwell <shinwell@codesourcery.com>
2887
2888 * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
2889 (alpha_mangle_type): This.
2890 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2891 (TARGET_MANGLE_TYPE): Define this instead.
2892 * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
2893 * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
2894 (arm_init_neon_builtins): Fix comment.
2895 (arm_mangle_map_entry): New.
2896 (arm_mangle_map): New.
2897 (arm_mangle_type): New.
2898 * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
2899 (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
2900 mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
2901 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2902 (TARGET_MANGLE_TYPE): Define this instead.
2903 * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
2904 (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
2905 mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
2906 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2907 (TARGET_MANGLE_TYPE): Define this instead.
2908 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
2909 to...
2910 (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
2911 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2912 (TARGET_MANGLE_TYPE): Define this instead.
2913 * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
2914 (s390_mangle_type): This.
2915 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2916 (TARGET_MANGLE_TYPE): Define this instead.
2917 * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
2918 (sparc_mangle_type): This.
2919 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2920 (TARGET_MANGLE_TYPE): Define this instead.
2921 * cp/mangle.c (write_type): Call mangle_type target hook on all
2922 types before mangling. Use original type, not main variant, as
2923 argument.
2924 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
2925 (TARGET_MANGLE_TYPE): This.
2926 * target.h (gcc_target): Rename mangle_fundamental_type to
2927 mangle_type.
2928 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
2929 (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
2930
2931 2007-07-25 Julian Brown <julian@codesourcery.com>
2932 Paul Brook <paul@codesourcery.com>
2933 Joseph Myers <joseph@codesourcery.com>
2934 Mark Shinwell <shinwell@codesourcery.com>
2935
2936 * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
2937 * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
2938 (with_fpu): Allow --with-fpu=neon.
2939 * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
2940 * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
2941 * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
2942 * config/arm/arm-protos.h (neon_immediate_valid_for_move)
2943 (neon_immediate_valid_for_logic, neon_output_logic_immediate)
2944 (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
2945 (neon_emit_pair_result_insn, neon_disambiguate_copy)
2946 (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
2947 (output_move_neon): Add prototypes.
2948 * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
2949 (all_fpus): Add FPUTYPE_NEON.
2950 (fp_model_for_fpu): Add NEON field.
2951 (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
2952 (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
2953 in registers.
2954 (arm_legitimate_address_p): Don't support fancy addressing for NEON
2955 structure moves.
2956 (thumb2_legitimate_address_p): Likewise.
2957 (neon_valid_immediate): Recognize and prepare constants suitable for
2958 NEON instructions.
2959 (neon_immediate_valid_for_move): New function. Recognize and prepare
2960 immediates for NEON move instructions.
2961 (neon_immediate_valid_for_logic): New function. Recognize and
2962 prepare immediates for NEON logic instructions.
2963 (neon_output_logic_immediate): New function. Create asm string
2964 suitable for outputting immediate logic instructions.
2965 (neon_pairwise_reduce): New function. Implement reduction using
2966 pairwise operations.
2967 (neon_expand_vector_init): New function. Expand a (possibly
2968 non-constant) vector initialization.
2969 (neon_vector_mem_operand): New function. Memory operands supported
2970 for quad-word loads/stores to/from ARM or NEON registers. Don't
2971 allow base+offset addressing for core regs.
2972 (neon_struct_mem_operand): New function. Valid mems for NEON
2973 structure moves.
2974 (coproc_secondary_reload_class): Enable NEON registers to be loaded
2975 from neon_vector_mem_operand addresses without a secondary register.
2976 (add_minipool_forward_ref): Handle >8-byte minipool entries.
2977 (add_minipool_backward_ref): Likewise.
2978 (dump_minipool): Likewise.
2979 (push_minipool_fix): Likewise.
2980 (output_move_quad): New function. Output quad-word moves, loads and
2981 stores using ARM registers.
2982 (output_move_vfp): Add support for vectors in VFP (NEON) D
2983 registers.
2984 (output_move_neon): Output a NEON load/store to/from a quadword
2985 register.
2986 (arm_print_operand): Implement new codes:
2987 - 'c' for unadorned integers (without a # sign).
2988 - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
2989 mode.
2990 - 'e', 'f' for the low and high D parts of a NEON Q register.
2991 - 'q' outputs a NEON Q register.
2992 - 'h' outputs ranges of D registers for VLDM/VSTM etc.
2993 - 'T' prints NEON opcode features from a coded bitmask.
2994 - 'F' is similar to T, but signed/unsigned codes both print as
2995 'i'.
2996 - 't' is similar to T, but 'u' is printed instead of 'p'.
2997 - 'O' prints 'r' if NEON instruction should perform rounding (as
2998 specified by bitmask), else prints nothing.
2999 - '#' is a punctuation character to stop operand numbers from
3000 running together with following digits in the assembler
3001 strings for instructions (when using mode attributes).
3002 (arm_assemble_integer): Handle extra NEON vector modes. Permute
3003 constant vectors in big-endian mode, where necessary.
3004 (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
3005 Handle EI, OI, CI, XI modes.
3006 (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
3007 (ashrv2si3): Rename IWMMXT2_BUILTINs to...
3008 (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
3009 (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
3010 (neon_builtin_type_bits): Add enumeration, one bit for each vector
3011 type.
3012 (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
3013 (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
3014 to turn v8qi, etc. into bits defined above.
3015 (neon_itype): New enumeration. Classifications of NEON builtins.
3016 (neon_builtin_datum): Define struct. Contains information about
3017 a single builtin (with multiple modes).
3018 (CF): Define helper macro for...
3019 (VAR1...VAR10): Define builtins with a type, name and 1-10 different
3020 modes.
3021 (neon_builtin_data): New array. Define information about builtins
3022 for use during initialization/expansion.
3023 (arm_init_neon_builtins): New function.
3024 (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
3025 true.
3026 (neon_builtin_compare): New function.
3027 (locate_neon_builtin_icode): New function. Find an insn code for a
3028 builtin given a function code for that builtin. Also return type of
3029 builtin (NEON_BINOP, NEON_UNOP etc.).
3030 (builtin_arg): New enumeration. Types of arguments for builtins.
3031 (arm_expand_neon_args): New function. Expand a generic NEON builtin.
3032 Takes a variable argument list of builtin_arg types, terminated by
3033 NEON_ARG_STOP.
3034 (arm_expand_neon_builtin): New function. Expand a NEON builtin.
3035 (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
3036 (neon_emit_pair_result_insn): New function. Support returning pairs
3037 of vectors via a pointer.
3038 (neon_disambiguate_copy): New function. Set up operands for a
3039 multi-word copy such that registers do not get clobbered.
3040 (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
3041 ARM_BUILTIN_NEON_BASE.
3042 (arm_file_start): Set float-abi attribute for NEON.
3043 (arm_vector_mode_supported_p): Enable NEON vector modes.
3044 (arm_mangle_map_entry): New.
3045 (arm_mangle_map): New.
3046 (arm_mangle_vector_type): New.
3047 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
3048 when appropriate.
3049 (TARGET_NEON): New macro. Target supports NEON.
3050 (fputype): Add FPUTYPE_NEON.
3051 (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
3052 for vectorization based on command-line arg.
3053 (NEON_REGNO_OK_FOR_NREGS): Define.
3054 (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
3055 (VALID_NEON_STRUCT_MODE): Define.
3056 (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
3057 (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
3058 * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
3059 (consttable_16): Add pattern for outputting 16-byte minipool
3060 entries.
3061 (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
3062 vec-common.md).
3063 (vec-common.md, neon.md): Include md files.
3064 * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
3065 * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
3066 (memory_constraint "Ut", "Un", "Us"): Define.
3067 * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
3068 (MMX_char): New mode attribute.
3069 (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
3070 (*add<mode>3_iwmmxt): New insn pattern.
3071 (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
3072 (*sub<mode>3_iwmmxt): New insn pattern.
3073 (mulv4hi3): Rename to...
3074 (*mulv4hi3_iwmmxt): This.
3075 (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
3076 (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
3077 (uminv4hi3, uminv2si3): Remove. Replace with...
3078 (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
3079 (*umin<mode>3_iwmmxt): These.
3080 (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
3081 (ashr<mode>3_iwmmxt): This new pattern.
3082 (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
3083 (lshr<mode>3_iwmmxt): This new pattern.
3084 (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
3085 (ashl<mode>3_iwmmxt): This new pattern.
3086 * config/arm/neon-docgen.ml: New file. Generate documentation for
3087 intrinsics.
3088 * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
3089 * config/arm/arm_neon.h: New (autogenerated).
3090 * config/arm/neon-testgen.ml: New file. Generate NEON tests
3091 automatically.
3092 * config/arm/neon.md: New file. Define NEON instructions.
3093 * config/arm/neon.ml: New file. Abstract description of NEON
3094 instructions, used to generate arm_neon.h header, documentation and
3095 tests.
3096 * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
3097 * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
3098 support.
3099 * doc/extend.texi (ARM Built-in Functions): Rename and remove
3100 extraneous comma.
3101 (ARM NEON Intrinsics): New subsection.
3102 * doc/arm-neon-intrinsics.texi: New (autogenerated).
3103
3104 2007-07-25 Danny Smith <dannysmith@users.sourceforge.net>
3105
3106 * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
3107 prototype.
3108
3109 2007-07-24 Jan Hubicka <jh@suse.cz>
3110
3111 * regclass.c (move_table): New type.
3112 (move_cost, may_move_in_cost, may_move_out_cost): Use it.
3113 (init_move_cost): Break out from ...
3114 (init_reg_sets_1): ... here; simplify computation of
3115 have_regs-of_mode and contains_reg_of_mode.
3116 (record_reg_classes): Unswitch internal loops.
3117 (copy_cost): Trigger lazy initialization of move cost
3118 (record_address_regs): Likewise.
3119
3120 2007-07-24 Daniel Berlin <dberlin@dberlin.org>
3121
3122 * config/darwin.c (darwin_override_options): Don't force on
3123 flag_var_tracking_uninit when no debug info is requested.
3124
3125 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
3126
3127 * cfgloop.c (init_loops_structure): New function.
3128 (flow_loops_find): Create root of the loop tree unconditionally.
3129
3130 2007-07-24 Daniel Jacobowitz <dan@codesourcery.com>
3131
3132 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
3133
3134 2007-07-24 Jan Hubicka <jh@suse.cz>
3135
3136 * caller-save.c: Include ggc.h, gt-caller-save.h
3137 (reg_save_code, reg_restore_code): Rename to ...
3138 (cached_reg_save_code, cached_reg_restore_code): ... those.
3139 (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
3140 (reg_save_code, reg_restore_code): New functions.
3141 (init_caller_save): Do not intialize
3142 reg_save_code/reg_restore_code tables.
3143 * Makefile.in: (gt-caller-save.h): New.
3144
3145 2007-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
3146
3147 * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
3148 with the mode of the original operand instead of
3149 integer_one_node.
3150
3151 2007-07-23 Jan Hubicka <jH@suse.cz>
3152
3153 * i386.c (ix86_secondary_memory_needed): Break out to...
3154 (inline_secondary_memory_needed): ... here.
3155 (ix86_memory_move_cost): Break out to ...
3156 (inline_memory_move_cost): ... here; add support for IN value of 2 for
3157 maximum of input and output; fix handling of Q_REGS on 64bit.
3158 (ix86_secondary_memory_needed): Microoptimize.
3159
3160 2007-07-23 Sebastian Pop <sebpop@gmail.com>
3161
3162 * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
3163 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
3164 stmts_from_loop, known_dependences_p, build_rdg): New.
3165 * tree-data-ref.h: Depends on graphds.h.
3166 (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
3167 (build_rdg): Declared.
3168 * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
3169
3170 2007-07-23 Daniel Berlin <dberlin@dberlin.org>
3171
3172 * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
3173 ccp_min_invariant.
3174
3175 2007-07-23 Peter Bergner <bergner@vnet.ibm.com>
3176 Jakub Jelinek <jakub@redhat.com>
3177
3178 PR middle-end/PR28690
3179 * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
3180 * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
3181 and MEM_POINTER operands over REG and MEM operands.
3182 (swap_commutative_operands_p): Change return value to bool.
3183 * rtl.h: Update the corresponding prototype.
3184 * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
3185 instead of gen_rtx_PLUS.
3186 * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
3187 value to bool. Change function arguments to rtx's and update code
3188 to match.
3189 (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
3190 calls to match the new declaration.
3191 * simplify-rtx.c (simplify_associative_operation): Don't
3192 reorder simplify_binary_operation arguments.
3193
3194 2007-07-23 Richard Sandiford <richard@codesourcery.com>
3195
3196 * config/mips/mips.c (override_options): Use mips_costs to derive
3197 the default branch cost.
3198 * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
3199 than mips_costs.
3200 * config/mips/mips.opt (mbranch-cost=): New option.
3201 * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
3202
3203 2007-07-23 Richard Sandiford <richard@codesourcery.com>
3204
3205 * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
3206 (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
3207 * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
3208 instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
3209
3210 2007-07-23 Richard Sandiford <richard@codesourcery.com>
3211
3212 * config/mips/constraints.md (ks): New constraint.
3213 * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
3214 (*add<mode>3_mips16): ...here.
3215
3216 2007-07-21 Uros Bizjak <ubizjak@gmail.com>
3217
3218 * optabs.h (enum optab_index): Add new OTI_signbit.
3219 (signbit_optab): Define corresponding macro.
3220 (enum insn_code signbit_optab[]): Remove array.
3221 * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
3222 (expand_copysign_absneg): If back end provides signbit insn, use it
3223 instead of bit operations on floating point argument.
3224 * builtins.c (enum insn_code signbit_optab[]): Remove array.
3225 (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
3226 availability of signbit insn.
3227
3228 * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
3229 signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
3230 SSE mode is not active.
3231 (isinf<mode>2): Disable for mfpmath=sse,387.
3232
3233 2007-07-22 Ben Elliston <bje@au.ibm.com>
3234
3235 * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
3236 `class' parameter.
3237 * struct-equiv.c (note_local_live): Likewise for `y_regno'.
3238
3239 2007-07-20 Richard Guenther <rguenther@suse.de>
3240
3241 * tree-cfg.c (verify_expr): COND_EXPRs can have any
3242 integral typed condition.
3243 * tree-ssa.c (useless_type_conversion_p): Do not preserve
3244 booleanness. Only preserve conversions from a non-base
3245 type to a base type, not in general between types with
3246 different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
3247 * tree.def (COND_EXPR): Document that the condition
3248 can be of any integral type.
3249
3250 2007-07-20 Nigel Stephens <nigel@mips.com>
3251 Richard Sandiford <richard@codesourcery.com>
3252
3253 * config/mips/mips.h (mips_dwarf_regno): Declare.
3254 (DBX_REGISTER_NUMBER): Remove redundant brackets.
3255 (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
3256 (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
3257 (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
3258 (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
3259 (REG_CLASS_NAMES): Update accordingly.
3260 * config/mips/mips.c (mips_dwarf_regno): New array.
3261 (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
3262 (mips_subword): Remove special handling for accumulator registers.
3263 (override_options): Initiailize mips_dwarf_regno. Remove use
3264 of ACC_HI_REG_P.
3265 (mips_swap_registers): New function.
3266 (mips_conditional_register_usage): Swap accumulator registers
3267 around if TARGET_LITTLE_ENDIAN.
3268 (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
3269 * config/mips/constraints.md (h, l): Use the endianness to choose
3270 between MD0_REG and MD1_REG.
3271 * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
3272 alternative-dependent template.
3273
3274 2007-07-20 Richard Sandiford <richard@codesourcery.com>
3275
3276 * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
3277 no_new_pseudos.
3278
3279 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
3280
3281 * function.c (thread_prologue_and_epilogue_insns): Fix exit
3282 predecessor fallthru flags.
3283
3284 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
3285
3286 * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
3287 of compare to the same type.
3288 * cfgloopmanip.c (add_loop): Update information about loop exits.
3289 (loop_version): Remove the innermost loop requirement.
3290 * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
3291 to sizetype for pointers.
3292
3293 2007-07-18 H.J. Lu <hongjiu.lu@intel.com>
3294
3295 * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
3296 (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
3297 (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
3298
3299 * config/dfp-bit.c: Empty for TFmode conversions.
3300
3301 2007-07-18 Caroline Tice <ctice@apple.com>
3302
3303 * var-tracking.c (find_src_status): Check for COND_EXEC insns
3304 and handle them correctly; check that src is not NULL before
3305 trying to use it.
3306 (find_src_set_src): Likewise.
3307
3308 2007-07-18 Bob Wilson <bob.wilson@acm.org>
3309
3310 * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
3311 (struct alignment_context, init_alignment_context): New.
3312 (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
3313 * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
3314 (XCHAL_HAVE_S32C1I): Likewise.
3315 (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
3316 * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
3317 (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
3318 (ATOMIC, HQI): New macros.
3319 (memory_barrier, *memory_barrier): New.
3320 (sync_lock_releasesi): New.
3321 (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
3322 (sync_lock_test_and_set<mode>): New.
3323 (sync_<atomic><mode>): New.
3324 (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
3325 * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
3326 (xtensa_expand_atomic): New.
3327
3328 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3329
3330 PR target/30652
3331
3332 * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
3333 transformation for builtin ISNORMAL.
3334 (expand_builtin): Handle BUILT_IN_ISNORMAL.
3335 * builtins.def (BUILT_IN_ISNORMAL): New.
3336 * doc/extend.texi: Document isnormal.
3337
3338 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3339
3340 PR target/30652
3341
3342 * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
3343 optabs infrastructure. Provide generic implementation for
3344 FINITE/ISFINITE.
3345 (expand_builtin): Handle FINITE/ISFINITE.
3346 (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
3347 (fold_builtin_1): Likewise.
3348
3349 * builtins.def (BUILT_IN_ISFINITE): New.
3350
3351 * doc/extend.texi: Document isfinite.
3352
3353 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3354
3355 PR target/30652
3356 PR middle-end/20558
3357
3358 * builtins.c (expand_builtin_interclass_mathfn): Provide a
3359 generic fallback for isinf.
3360 * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
3361 calculation code ...
3362 * real.c (get_max_float): ... to here.
3363 * real.h (get_max_float): New.
3364
3365 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3366
3367 PR middle-end/32668
3368
3369 * builtin-attrs.def (ATTR_TYPEGENERIC,
3370 ATTR_CONST_NOTHROW_TYPEGENERIC): New.
3371
3372 * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
3373 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
3374 BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
3375 BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
3376
3377 * c-common.c (handle_type_generic_attribute): New.
3378 (c_common_attribute_table): Add "type generic".
3379
3380 * c-typeck.c (convert_arguments): Handle "type generic" functions.
3381
3382 2007-07-18 Daniel Berlin <dberlin@dberlin.org>
3383
3384 * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
3385 * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
3386 properly.
3387
3388 2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
3389
3390 PR target/32808
3391 * config/cris/cris.c (cris_print_index): Don't use XEXP before
3392 checking that the operand is an expression.
3393
3394 2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org>
3395 Danny Smith <dannysmith@users.sourceforge.net>
3396
3397 PR/other 30335
3398 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
3399 file mapping object in local namespace if Windows version later
3400 than NT4
3401
3402 2007-07-18 Richard Sandiford <richard@codesourcery.com>
3403
3404 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
3405 * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
3406 arm_cannot_force_const_mem.
3407 (arm_cannot_force_const_mem): New function.
3408 * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
3409 (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
3410 of arm_tls_referenced_p.
3411 * config/arm/arm.md (movsi): Split out-of-section constants when
3412 ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
3413 * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
3414
3415 2007-07-18 Richard Sandiford <richard@codesourcery.com>
3416
3417 * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
3418
3419 2007-07-18 Richard Sandiford <richard@codesourcery.com>
3420
3421 * config/mips/mips.md (*extendqihi2): Convert the destination
3422 to SImode.
3423
3424 2007-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3425
3426 * config/pa/fptr.c: Update license header.
3427 * config/pa/milli64.S: Likewise.
3428
3429 2007-07-17 Nick Clifton <nickc@redhat.com>
3430
3431 * COPYING_v3: New file. Contains version 3 of the GNU General
3432 Public License.
3433 * COPYING.LIB_v3: New file. Contains version 3 of the GNU
3434 Lesser General Public License.
3435 * doc/include/gpl_v3.texi: New file. Contains version 3 of
3436 the GNU General Public License.
3437
3438 2007-07-17 Zdenek Dvorak <dvorakz@suse.cz>
3439
3440 PR rtl-optimization/32773
3441 * cfglayout.c (force_one_exit_fallthru): New function.
3442 (cfg_layout_finalize): Use it.
3443
3444 2007-07-16 Richard Guenther <rguenther@suse.de>
3445 Uros Bizjak <ubizjak@gmail.com>
3446
3447 * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
3448 before forcing it to gimple operand.
3449
3450 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
3451 David Ung <davidu@mips.com>
3452
3453 * config/mips/mips.h (TUNE_24K): Define.
3454 (TUNE_MACC_CHAINS): Add TUNE_24K.
3455 * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
3456 imadd.
3457 * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
3458 (r74k_int_madd): .. this new reservation.
3459 (define_bypass): Fixed bypasses for r74k_int_madd to use
3460 mips_linked_madd_p.
3461 * config/mips/24k.md (define_bypass): Define new
3462 r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
3463
3464 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
3465 Nigel Stephens <nigel@mips.com>
3466
3467 * config/mips/mips.md: Include 20kc.md.
3468 * config/mips/20kc.md: New file.
3469 * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
3470 (mips_adjust_cost): Tweak for 20Kc.
3471 (mips_issue_rate): Likewise.
3472 * config/mips/mips.h (TUNE_20KC): Define.
3473
3474 2007-07-16 David Edelsohn <edelsohn@gnu.og>
3475
3476 * config/rs6000/rs6000.c (struct processor_cost): Add
3477 cache_line_size, l1_cache_lines, and simultaneous_prefetches
3478 fields.
3479 (*_cost): Add cache information.
3480 (rs6000_override_options): Set cache parameters.
3481
3482 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3483
3484 PR bootstrap/3456
3485 * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
3486 * doc/install.texi (mips-sgi-irix6): pthread support works now.
3487
3488 2007-07-16 Paul Brook <paul@codesourcery.com>
3489
3490 PR target/32753
3491 * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
3492 (cirrus_thumb2_movsi_insn): Ditto.
3493
3494 2007-07-15 Geoffrey Keating <geoffk@apple.com>
3495
3496 * config/rs6000/darwin-fallback.c (interpret_libc): Change
3497 CR2_REGNO to R_CR2.
3498
3499 2007-07-15 Andrew Haley <aph@redhat.com>
3500
3501 * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
3502 before looking in the context.
3503
3504 2007-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3505
3506 PR middle-end/32398
3507 PR middle-end/32769
3508 * pa-protos.h (pa_eh_return_handler_rtx): Declare.
3509 * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
3510 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3511 (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
3512 to generate .CALLINFO statement.
3513 (hppa_expand_prologue): Set rp_saved.
3514 (hppa_expand_epilogue): Use rp_saved.
3515 (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
3516 * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
3517
3518 2007-07-14 Dirk Mueller <dmueller@suse.de>
3519
3520 * omega.c (coalesce): Fix memory leak on early exit.
3521 * matrix-reorg.c (check_allocation_function): Likewise.
3522 * tree-vect-transform.c (vect_get_new_vect_var): free result
3523 of concat().
3524 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3525 pass pointer to edge vector
3526 (partition_hot_cold_basic_blocks): Fix memory leak.
3527 * collect2.c (prefix_from_string): Free temporary storage.
3528 * reload1.c (fixup_abnormal_edges): Free sbitmap.
3529
3530 2007-07-14 Kaz Kojima <kkojima@gcc.gnu.org>
3531
3532 * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
3533 (DO_GLOBAL_DTORS_BODY): Likewise.
3534
3535 2007-07-14 Sandra Loosemore <sandra@codesourcery.com>
3536 Nigel Stephens <nigel@mips.com>
3537
3538 * config/mips/mips.c (mips_classify_symbol): Don't return
3539 SYMBOL_SMALL_DATA for constant pool addresses if
3540 TARGET_EMBEDDED_DATA is true.
3541
3542 2007-07-14 Uros Bizjak <ubizjak@gmail.com>
3543
3544 * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
3545 except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
3546 __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
3547 __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
3548 __builtin_ia32_storehps, __builtin_ia32_storelps,
3549 __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
3550 __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
3551 __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
3552 __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
3553 __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
3554 __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
3555 __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
3556 __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
3557 using def_builtin_const.
3558
3559 2007-07-14 Eric Botcazou <ebotcazou@adacore.com>
3560
3561 PR tree-optimization/32705
3562 * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
3563 (simplify_binary_expression): Use SSA_VAL consistently.
3564
3565 2007-07-13 David Edelsohn <edelsohn@gnu.org>
3566
3567 * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
3568 (SPEFSCR_REGNO): Delete definition.
3569 * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
3570 COUNT_REGISTER_REGNUM -> CTR_REGNO.
3571 * config/rs6000/rs6000.h: Do not define *_REGNO.
3572 LINK_REGISTER_REGNUM -> LR_REGNO.
3573 COUNT_REGISTER_REGNUM -> CTR_REGNO.
3574 * config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> LR_REGNO.
3575 COUNT_REGISTER_REGNUM -> CTR_REGNO.
3576 * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
3577 R_VRSAVE, R_VSCR. Use them.
3578 * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
3579 R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR. Use them.
3580 * config/rs6000/rs6000.md: Define REGNO constants. Use them.
3581 * config/rs6000/aix.h: Define R_LR. Use it.
3582
3583 2007-07-13 Caroline Tice <ctice@apple.com>
3584
3585 * toplev.c (process_options): Turn flag_var_tracking_uninit off when
3586 flag_var_tracking is explicitly turned off (i.e. when variable
3587 tracking is not feasible); otherwise, turn flag_var_tracking on when
3588 flag_var_tracking_uninit is on.
3589 * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
3590 note definitions, to allow recording of initialization status in the
3591 notes.
3592 * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
3593 (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
3594 determine if two note locations are equal.
3595 (output_loc_list): Don't output list entries whose start & end labels
3596 are the same.
3597 (reg_loc_descriptor): Add parameter for initialization status; pass it
3598 to other loc descriptor functions.
3599 (one_reg_loc_descriptor): Add parameter for initialization status;
3600 check its value and add DW_OP_GNU_uninit to returned loc descr if
3601 appropriate.
3602 (multiple_reg_loc_descriptor): Add parameter for initialization
3603 status;
3604 pass init status argument to other loc descriptor functions; check
3605 value of intialization parameter and add DW_OP_GNU_uninit to returned
3606 loc descr if appropriate.
3607 (based_loc_descr): Add parameter for initialization status; add new
3608 variable for return value; check value of initialization parameter and
3609 add DW_OP_GNU_uninit to returned loc descr if appropriate.
3610 (concatn_mem_loc_descriptor): Add parameter for initialization status;
3611 pass init status argument to other loc descriptor functions; check
3612 value of intialization parameter and add DW_OP_GNU_uninit to returned
3613 loc descr if appropriate.
3614 (mem_loc_descriptor): Likewise.
3615 (concat_loc_descriptor): Likewise.
3616 (concatn_loc_descriptor): Likewise.
3617 (loc_descriptor): Add parameter for initialization status; pass it as
3618 argument to other loc descriptor function calls.
3619 (loc_descriptor_from_tree_1): Add appropriate initialization status
3620 to loc descriptor function calls.
3621 (add_location_or_const_value_attribute): Get initialization status
3622 from VAR_LOCATION note; add initialization status to loc descriptor
3623 function calls.
3624 * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
3625 * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
3626 status is uninitialized, add "[uninint]" to output.
3627 * common.opt (fvar-tracking-uninit): New option, similar to
3628 fvar-tracking, to turn on tracking of uninitialized variables; creates
3629 a new global flag, flag_var_tracking_uninit.
3630 * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
3631 (enum var_init_status): New type, for var initialization status field.
3632 * var-tracking.c (struct location_chain_def): Two new fields, init,
3633 for initialization status, and set_src for the assignment value expr.
3634 (unshare_variable): New parameter for initialization status;
3635 initialize new init and set_src fields.
3636 (var_reg_set): New parameters for initialization status and value;
3637 pass them to set_variable_part.
3638 (var_mem_set): Likewise.
3639 (get_init_value): New function.
3640 (var_reg_delete_and_set): New initialization status & value
3641 parameters; add call to get_init_value if status is unknown; pass new
3642 parameters to clobber_variable_part and var_reg_set.
3643 (var_mem_delete_and_set): Likewise.
3644 (var_reg_delete): Pass null set_src value to clobber_variable_part.
3645 (var_mem_delete): Likewise.
3646 (variable_union): Pass status to unshare_variable; initialize new init
3647 and set_src fields. If flag_var_tracking_uninit is not set, force
3648 status to initialized.
3649 (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
3650 used later to get the set_src value.
3651 (find_src_status): New function.
3652 (find_src_set_src): New function.
3653 (compute_bb_dataflow): Pass init status to calls to var_reg_set,
3654 var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
3655 MO_SET, get set_src value and pass it to var_reg_delete_and_set
3656 and var_mem_delete_and_set.
3657 (dump_variable): Print out "[uninit]" if appropriate.
3658 (set_variable_part): Add new initialization and set_src parameters;
3659 pass status to unshare_variable; set node->init and node- >set_src
3660 fields and modify slot in hash table appropriately; save the init and
3661 set_src values if appropriate and assign to the new node.
3662 (clobber_variable_part): New set_src parameter; if two nodes have
3663 same variable and same location but different set_src (assignment)
3664 values, clobber old node.
3665 (delete_variable_part): Pass init status to unshare_variable.
3666 (emit_note_insn_var_location): Add initialized var; assign var's init
3667 status to new 'initialized'; pass new init status field to calls to
3668 gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
3669 status to initialized.
3670 (emit_notes_in_bb): Pass initialization status to calls to
3671 var_reg_set, var_mem_set, var_reg_delete_and_set and
3672 var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
3673 var_reg_delete_and_set and var_mem_delete_and_set; call
3674 emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
3675 make up for change in add_stores.
3676 (vt_add_function_parameters): Add status to calls to
3677 set_variable_part.
3678 * config/darwin.c (darwin_override_options): Turn on uninitialized
3679 tracking automatically, if var_tracking is on and the system is
3680 10.5 or higher.
3681
3682 2007-07-13 Sa Liu <saliu@de.ibm.com>
3683
3684 * config.gcc: Add options for arch and tune on SPU.
3685 * config/spu/predicates.md: Add constant operands 0 and 1.
3686 * config/spu/spu-builtins.def: Add builtins for double precision
3687 floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt,
3688 si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
3689 spu_testsv.
3690 * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with
3691 a CELLEDP target.
3692 * config/spu/spu-protos.h: Add new function prototypes.
3693 * config/spu/spu.c (spu_override_options): Check options -march and
3694 -mtune.
3695 (spu_comp_icode): Add comparison code for DFmode and vector mode.
3696 (spu_emit_branch_or_set): Use the new code for DFmode and vector
3697 mode comparison.
3698 (spu_const_from_int): New. Create a vector constant from 4 ints.
3699 (get_vec_cmp_insn): New. Get insn index of vector compare instruction.
3700 (spu_emit_vector_compare): New. Emit vector compare.
3701 (spu_emit_vector_cond_expr): New. Emit vector conditional expression.
3702 * config/spu/spu.h: Add options -march and -mtune. Define processor
3703 types PROCESSOR_CELL and PROCESSOR_CELLEDP. Define macro
3704 CANONICALIZE_COMPARISON.
3705 * config/spu/spu.md: Add new insns for double precision compare
3706 and double precision vector compare. Add vcond and smax/smin patterns
3707 to enable DFmode vector conditional expression.
3708 * config/spu/spu.opt: Add options -march and -mtune.
3709 * config/spu/spu_internals.h: Add builtins for CELLEDP target:
3710 si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv. Add builtin for
3711 both CELL and CELLEDP targets: spu_testsv.
3712 * config/spu/spu_intrinsics.h: Add flag mnemonics for test special
3713 values.
3714
3715 2007-07-13 Richard Guenther <rguenther@suse.de>
3716
3717 PR tree-optimization/32721
3718 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
3719 TREE_THIS_VOLATILE on the folded reference.
3720 * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
3721 if the array reference has TREE_THIS_VOLATILE set.
3722
3723 2007-07-13 H.J. Lu <hongjiu.lu@intel.com>
3724
3725 PR other/32188
3726 * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
3727
3728 2007-07-13 Andreas Schwab <schwab@suse.de>
3729
3730 * gengtype-lex.l: Allow declarations to be indented.
3731
3732 2007-07-12 Geoffrey Keating <geoffk@apple.com>
3733
3734 * ginclude/tgmath.h: New.
3735 * config.gcc: Use GCC's tgmath.h on non-glibc systems.
3736 * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
3737 * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
3738 * configure: Regenerate.
3739
3740 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
3741
3742 * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
3743 correct index when setting register save state for xd
3744 registers.
3745
3746 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
3747
3748 * config/sh/sh.c (mark_use): Remove.
3749
3750 2007-07-12 Paul Brook <paul@codesourcery.com>
3751
3752 * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
3753 reg does not overlap return value.
3754
3755 2007-07-12 Daniel Berlin <dberlin@dberlin.org>
3756
3757 * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
3758 (set_expression_vuses): Ditto.
3759 (init_pre): Initialize expression_vuses.
3760
3761 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
3762
3763 * config/i386/sse.md (storentdf, storentsf): New.
3764
3765 2007-07-12 Geoffrey Keating <geoffk@apple.com>
3766
3767 * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
3768 FUNCTION_DECL.
3769 * tree.c (build_decl_stat): Move code from here...
3770 (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN.
3771 (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment
3772 about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
3773 * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
3774 * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
3775 FUNCTION_BOUNDARY.
3776
3777 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
3778 Devang Patel <dpatel@apple.com>
3779
3780 PR tree-optimization/25413
3781 * targhooks.c (default_builtin_vector_alignment_reachable): New.
3782 * targhooks.h (default_builtin_vector_alignment_reachable): New.
3783 * tree.h (contains_packed_reference): New.
3784 * expr.c (contains_packed_reference): New.
3785 * tree-vect-analyze.c (vector_alignment_reachable_p): New.
3786 (vect_enhance_data_refs_alignment): Call
3787 vector_alignment_reachable_p.
3788 * target.h (vector_alignment_reachable): New builtin.
3789 * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
3790 * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
3791 (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
3792
3793 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
3794
3795 * target.h (builtin_vectorization_cost): Add new target builtin.
3796 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
3797 * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
3798 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
3799 * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
3800 uninitialized variables.
3801 * tree-vect-transform.c (cost_for_stmt): New function.
3802 (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
3803 using cost 1 for all scalar stmts. Be less conservative when
3804 estimating the number of prologue/epulogue iterations. Call
3805 targetm.vectorize.builtin_vectorization_cost. Return
3806 min_profitable_iters-1.
3807 (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
3808 initialization cost instead of TARG_VEC_STMT_COST. Use
3809 TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
3810 epilogue code. Fix epilogue cost computation.
3811 * config/spu/spu.c (spu_builtin_vectorization_cost): New.
3812 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
3813 * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
3814 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
3815 (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
3816 (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
3817
3818 2007-07-12 Richard Guenther <rguenther@suse.de>
3819
3820 * gimplify.c (gimplify_conversion): Make sure that the result
3821 from maybe_fold_offset_to_reference is trivially convertible
3822 to the desired type before doing the simplification.
3823 (gimplify_expr): Likewise.
3824 * fold-const.c (fold_binary): Use the correct types for
3825 building the simplified expression.
3826
3827 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
3828
3829 PR rtl-optimization/32729
3830 * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
3831 that fallthru to exit.
3832
3833 2007-07-12 Kaz Kojima <kkojima@gcc.gnu.org>
3834
3835 * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
3836 (symDTPOFF2reg): Likewise.
3837
3838 2007-07-11 Daniel Berlin <dberlin@dberlin.org>
3839
3840 PR tree-optimization/32663
3841
3842 * tree.h (VALUE_HANDLE_VUSES): Remove.
3843 (struct tree_value_handle): Remove vuses.
3844
3845 * tree-vn.c (create_value_handle_for_expr): Don't set
3846 VALUE_HANDLE_VUSES.
3847
3848 * tree-ssa-pre.c (expression_vuses): New.
3849 (alloc_expression_id): Set up expression_vuses.
3850 (get_expression_vuses): New.
3851 (set_expression_vuses): Ditto.
3852 (clear_expression_ids): Modify for expression_vuses.
3853 (phi_translate_1): Ditto.
3854 (phi_translate_set): Ditto.
3855 (value_dies_in_block_x): Ditto
3856 (valid_in_sets): Ditto.
3857 (add_to_sets): Ditto.
3858 (find_existing_value_expr): Ditto.
3859 (create_value_handle_for_expr): Ditto.
3860 (make_values_for_stmt): Ditto.
3861 (vuse_equiv): Remove.
3862
3863 2007-07-11 Alexandre Oliva <aoliva@redhat.com>
3864
3865 * Makefile.in (mostlyclean): Remove object files.
3866
3867 2007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3868
3869 * toplev.c (no_new_pseudos): Deleted.
3870 * rtl.h (no_new_pseudos): Deleted.
3871 * tree-pass.h (pass_no_new_pseudos): Deleted.
3872 * passes.c (pass_no_new_pseudos): Deleted.
3873 * final.c (rest_of_clean_state): Removed no_new_pseudos.
3874 (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
3875 * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with
3876 reload_completed.
3877 * cfgcleanup.c (try_crossjump_to_edge): Ditto.
3878 * rtlhooks.c (gen_lowpart_general): Ditto.
3879 * optabs.c (prepare_operand): Ditto.
3880 * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
3881 no_new_pseudos.
3882 * modulo-sched.c (rest_of_handle_sms): Ditto.
3883 * see.c (rest_of_handle_see): Ditto.
3884 * ifcvt.c (if_convert): Ditto.
3885 (gate_handle_if_after_combine): Replaced no_new_pseudos with
3886 reload_completed.
3887 * init-regs.c (gate_initialize_regs): Deleted set of
3888 no_new_pseudos.
3889 * lower-subreg.c (decompose_multiword_subregs): Ditto.
3890 * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
3891 * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
3892
3893 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
3894
3895 PR target/32661
3896 * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
3897 (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
3898 (*vec_extractv2di_1_rex64): New insn pattern.
3899
3900 2007-07-11 David Daney <ddaney@avtrex.com>
3901
3902 * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
3903 return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN
3904 for SIGNAL_UNWIND_RETURN_COLUMN.
3905 * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
3906 (DWARF_FRAME_REGNUM): Rewrite.
3907 (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
3908
3909 2007-07-11 Nick Clifton <nickc@redhat.com>
3910
3911 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
3912 delta and use gen_int_mode in place of GET_INT instead.
3913
3914 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
3915
3916 * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
3917 and letter field.
3918
3919 2007-07-11 Douglas Gregor <doug.gregor@gmail.com>
3920
3921 * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
3922 (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
3923 types or not.
3924 * params.h (VERIFY_CANONICAL_TYPES): Remove.
3925 (USE_CANONICAL_TYPES): New.
3926 * doc/invoke.texi (verify-canonical-types): Remove.
3927 (use-canonical-types): Add.
3928
3929 2007-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3930
3931 * config/spu/spu.c (spu_optimization_options): Remove setting of
3932 parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
3933 (spu_override_options): Move it here.
3934
3935 2007-07-11 Richard Sandiford <richard@codesourcery.com>
3936
3937 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
3938 * config/mips/mips.c (mips_cpu_info_table): Mention
3939 MIPS_ISA_LEVEL_SPEC in the comment.
3940
3941 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
3942
3943 PR tree-optimization/32713
3944 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
3945
3946 2007-07-11 Paolo Carlini <pcarlini@suse.de>
3947
3948 PR middle-end/30482
3949 * c-opts.c (c_common_post_options): Do not change flag_complex_method
3950 conditional to flag_isoc99.
3951 (c_common_init_options): Do it here, unconditionally.
3952
3953 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
3954
3955 PR tree-optimization/32589
3956 * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
3957 * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
3958 * tree-ssa-propagate.c (valid_gimple_expression_p): New
3959 predicate, extracted from...
3960 (set_rhs): ...here. Call it for the expression on entry.
3961 * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
3962 * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
3963 (simplify_binary_expression): Use valid_gimple_expression_p
3964 to validate the simplification.
3965 * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
3966
3967 2007-07-11 Danny Smith <dannysmith@users.sourceforge.net>
3968
3969 * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
3970 DWARF2_DEBUG on 32 bit target too.
3971 (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition.
3972
3973 2007-07-11 Nick Clifton <nickc@redhat.com>
3974
3975 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
3976 version for 64-bit hosts.
3977
3978 2007-07-10 David Daney <ddaney@avtrex.com>
3979
3980 * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
3981 predicate.
3982 (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library
3983 call.
3984 * config/mips/mips.c (mips_expand_synci_loop): New function.
3985 * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
3986 (UNSPEC_RDHWR): Same.
3987 (UNSPEC_SYNCI): Same.
3988 (UNSPEC_SYNC): Same.
3989 (clear_cache): New expand.
3990 (sync): New insn.
3991 (synci): Same.
3992 (rdhwr): Same.
3993 (clear_hazard): Same.
3994 * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
3995 function.
3996 * testsuite/gcc.target/mips/clear-cache-1.c: New test.
3997 * testsuite/gcc.target/mips/clear-cache-2.c: New test.
3998
3999 2007-07-10 Ian Lance Taylor <iant@google.com>
4000
4001 * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
4002 no_new_pseudos.
4003
4004 2007-07-10 David Daney <ddaney@avtrex.com>
4005
4006 * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
4007 * builtins.c (expand_builtin___clear_cache): New function.
4008 (expand_builtin): Call expand_builtin___clear_cache for
4009 BUILT_IN_CLEAR_CACHE case.
4010 * doc/extend.texi (__builtin___clear_cache): Document new builtin.
4011 * doc/md.texi (clear_cache): Document new instruction pattern.
4012 * testsuite/gcc.dg/builtins-64.c: New test.
4013
4014 2007-07-11 Hans-Peter Nilsson <hp@axis.com>
4015
4016 * config/cris/cris.md ("movsi"): Fix typo in last change.
4017
4018 2007-07-09 Geoffrey Keating <geoffk@apple.com>
4019
4020 PR 32617
4021 * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
4022 FUNCTION_DECLs.
4023 (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
4024 * varasm.c (assemble_start_function): Honor DECL_ALIGN
4025 for FUNCTION_DECLs. Don't use align_functions_log if
4026 DECL_USER_ALIGN.
4027 * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
4028 even for FUNCTION_DECLs.
4029 * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
4030 FUNCTION_DECLs.
4031 * tree.h (DECL_ALIGN): Update for new location of 'align'.
4032 (DECL_FUNCTION_CODE): Update for new location and name of
4033 'function_code'.
4034 (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
4035 (struct tree_decl_common): Move 'align' and 'off_align' out
4036 of union, ensure they're still on a 32-bit boundary. Remove
4037 other fields in union 'u1'.
4038 (struct tree_function_decl): Add field 'function_code' replacing
4039 'u1.f' in tree_decl_common.
4040 * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
4041 * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
4042 (Variable Attributes): Cross-reference 'aligned' attribute
4043 to Function Attributes.
4044 * flags.h (force_align_functions_log): Delete.
4045 * toplev.c (force_align_functions_log): Delete.
4046
4047 2007-07-10 Uros Bizjak <ubizjak@gmail.com>
4048
4049 PR target/32708
4050 * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
4051 (*vec_concatv2di_rex): New insn pattern.
4052
4053 2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4054
4055 PR target/32538
4056 * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
4057
4058 2007-07-10 Ian Lance Taylor <iant@google.com>
4059
4060 Replace no_new_pseudos in backends.
4061 * rtl.h (can_create_pseudo_p): Define.
4062 * config/darwin.c (machopic_indirect_data_reference): Use
4063 can_create_pseudo_p () instead of no_new_pseudos.
4064 (machopic_indirect_data_reference): Likewise.
4065 (machopic_legitimize_pic_address): Likewise.
4066 * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
4067 (alpha_emit_set_const_1): Likewise.
4068 (alpha_emit_set_const): Likewise.
4069 (alpha_emit_conditional_move): Likewise.
4070 (alpha_split_conditional_move): Likewise.
4071 * config/alpha/alpha.md (various splitters): Likewise.
4072 (movti): Likewise.
4073 * config/arm/arm.c (legitimize_pic_address): Likewise.
4074 (arm_load_pic_register): Likewise.
4075 * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
4076 (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
4077 * config/bfin/bfin.c (legitimize_pic_address): Likewise.
4078 * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
4079 * config/cris/cris.md (movsi): Likewise.
4080 * config/frv/frv.md (symGOT2reg_hilo): Likewise.
4081 (symGOTOFF2reg_hilo): Likewise.
4082 (symGPREL2reg, symGPREL2reg_hilo): Likewise.
4083 * config/h8300/h8300.md (insv, extzv): Likewise.
4084 * config/i386/i386.c (ix86_expand_move): Likewise.
4085 (ix86_expand_vector_move): Likewise.
4086 (ix86_prepare_fp_compare_args): Likewise.
4087 (ix86_expand_carry_flag_compare): Likewise.
4088 * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
4089 (tls_dynamic_gnu2_combine_32): Likewise.
4090 (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
4091 * config/ia64/ia64.c (ia64_expand_move): Likewise.
4092 (ia64_expand_movxf_movrf): Likewise.
4093 * config/m32c/m32c.c (m32c_prepare_move): Likewise.
4094 (m32c_split_move): Likewise.
4095 (m32c_expand_insv): Likewise.
4096 * config/m68k/m68k.md (movsi): Likewise.
4097 * config/mips/mips.c (mips_force_temporary): Likewise.
4098 (mips_split_symbol): Likewise.
4099 (mips_move_integer): Likewise.
4100 (mips_legitimize_const_move): Likewise.
4101 * config/mn10300/mn10300.md (movsi): Likewise.
4102 * config/pa/pa.c (emit_move_sequence): Likewise.
4103 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
4104 (rs6000_got_register): Likewise.
4105 (create_TOC_reference): Likewise.
4106 (rs6000_machopic_legitimize_pic_address): Likewise.
4107 * config/rs6000/rs6000.md (add<mode>3): Likewise.
4108 (various splitters): Likewise.
4109 (iorsi3, xorsi3, iordi3, xordi3): Likewise.
4110 (movsi_got): Likewise.
4111 * config/s390/s390.c (emit_symbolic_move): Likewise.
4112 * config/s390/s390.md (movhi, movqi): Likewise.
4113 (load_multiple, store_multiple): Likewise.
4114 * config/score/score.c (score_force_temporary): Likewise.
4115 * config/sh/sh.c (prepare_move_operands): Likewise.
4116 (prepare_cbranch_operands): Likewise.
4117 (emit_fpu_switch): Likewise.
4118 (fpscr_set_from_mem): Likewise.
4119 * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
4120 (adddi3, subsi3): Likewise.
4121 (various splitters): Likewise.
4122 (divsi_inv_fp_combine): Likewise.
4123 (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
4124 (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
4125 (sne): Likewise.
4126 * config/sh/predicates.md (xor_operand): Likewise.
4127 * config/sparc/sparc.c (legitimize_tls_address): Likewise.
4128 * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
4129 (movdi_pic_label_ref): Likewise.
4130 * config/spu/spu.c (spu_split_immediate): Likewise.
4131 * config/alpha/alpha.md (various splitters): Remove test
4132 !no_new_pseudos || reload_completed.
4133 * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
4134 no_new_pseudos.
4135 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
4136 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
4137 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
4138 * config/score/score.c (th_output_mi_thunk): Likewise.
4139 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4140 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
4141
4142 2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org>
4143
4144 PR rtl-optimization/32664
4145 * mode-switching.c (create_pre_exit): Skip barrier insns.
4146
4147 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
4148
4149 * tree-scalar-evolution.c (scev_const_prop): Add arguments to
4150 force_gimple_operand_bsi.
4151 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
4152 rewrite_use_compare): Ditto.
4153 * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
4154 Ditto.
4155 * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
4156 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
4157 * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
4158 * tree-profile.c (prepare_instrumented_value,
4159 tree_gen_interval_profiler, tree_gen_pow2_profiler,
4160 tree_gen_one_value_profiler, tree_gen_ic_profiler,
4161 tree_gen_ic_func_profiler, tree_gen_average_profiler,
4162 tree_gen_ior_profiler): Ditto.
4163 * tree-ssa-reassoc.c (negate_value): Ditto.
4164 * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
4165 Use force_gimple_operand_bsi.
4166 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
4167 * tree-if-conv.c (add_to_dst_predicate_list,
4168 find_phi_replacement_condition): Ditto.
4169 * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
4170 Call mark_symbols_for_renaming for new statements.
4171 * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
4172
4173 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
4174
4175 * cfghooks.c (remove_edge): New function.
4176 (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
4177 loop exit rescans.
4178 * cfghooks.h (remove_edge): Declare.
4179 * cfg.c (remove_edge): Renamed to remove_edge_raw.
4180 * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
4181
4182 2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>
4183
4184 * optabs.h: Added declaration for signbit_optab.
4185 * optabs.c: (init_optabs): Added initialization for signbit_optab.
4186 * genoptinit.c (optabs): Added entry for signbit insns.
4187 * builtins.c (expand_builtin_signbit): Added code to use a signbit
4188 insn, if available.
4189 * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.
4190 * config/s390/s390.md (signbit<mode>2): New expander.
4191
4192 2007-07-09 Richard Guenther <rguenther@suse.de>
4193
4194 PR middle-end/32698
4195 * fold-const.c (fold_plusminus_mult_expr): Move constant
4196 arguments second to allow decomposing.
4197
4198 2007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br>
4199
4200 Revert:
4201 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
4202 PR debug/23551
4203 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
4204 Disregard DECL_FROM_INLINE.
4205
4206 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
4207
4208 PR target/27855
4209 * doc/invoke.texi: Add ftree-reassoc flag.
4210 * common.opt (ftree-reassoc): New flag.
4211 * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
4212 (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
4213
4214 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
4215
4216 PR tree-optimization/32681
4217 * tree-if-conv.c (find_phi_replacement_condition): Use the condition
4218 saved in second_edge->aux when first_bb is a loop header.
4219
4220 2007-07-09 Jan HUbicka <jh@suse.cz>
4221
4222 * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
4223
4224 2007-07-09 Richard Guenther <rguenther@suse.de>
4225
4226 * c-decl.c (start_function): Do not promote return type.
4227
4228 2007-07-08 Daniel Franke <franke.daniel@gmail.com>
4229
4230 * function.c (do_warn_unused_parameter): Do not warn if
4231 TREE_NO_WARNING is set.
4232
4233 2007-07-08 Andreas Schwab <schwab@suse.de>
4234
4235 * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
4236
4237 2007-07-08 Sandra Loosemore <sandra@codesourcery.com>
4238
4239 Revert this patch:
4240 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
4241
4242 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
4243 apply to assembly language, too.
4244 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
4245
4246 2007-07-07 Daniel Berlin <dberlin@dberlin.org>
4247
4248 Revert (note the sccvn portions are *not* reverted)
4249 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
4250
4251 Fix PR tree-optimization/23488
4252
4253 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
4254 handles.
4255 * tree-flow-inline.h (get_value_handle): Ditto.
4256 * tree-ssa-pre.c (decl_vh_map): New.
4257 (decl_node_pool): New.
4258 (can_value_number_operation): Support DECL_P.
4259 (can_PRE_operation): Ditto.
4260 (create_expression_by_pieces): Ditto.
4261 (find_existing_value_expr): Modify to differnetiate between
4262 addressing and top level.
4263 (create_value_handle_for_expr): Handle DECL's.
4264 (poolify_tree): Ditto.
4265 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
4266 (make_values_for_stmt): Handle DECL's properly.
4267 (init_pre): Reorg to not init useless things during FRE.
4268 (fini_pre): Ditto.
4269 * tree-flow.h: Include pointer-set.h.
4270 (decl_vh_map): Declare.
4271 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
4272
4273 2007-07-07 Eric Weddington <eweddington@cso.atmel.com>
4274
4275 * config/avr/constraints.md (define_memory_constraint "Q"): Fix
4276 the constraint description.
4277 * doc/md.texi: Update documentation of AVR constraints.
4278
4279 2007-07-07 Kazu Hirata <kazu@codesourcery.com>
4280
4281 * auto-inc-dec.c, config/arm/arm.c,
4282 config/m32r/constraints.md, config/mips/mips.md,
4283 config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
4284 df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
4285 tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
4286 typos. Follow spelling conventions.
4287 * doc/invoke.texi, doc/rtl.texi: Fix typos.
4288
4289 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4290 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4291
4292 * tree-ssa-operands.c (realloc_vop, realloc_vdef,
4293 realloc_vuse): Remove.
4294 * tree-ssa-operands.h: Remove the prototype for realloc_vdef
4295 and realloc_vuse.
4296
4297 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
4298
4299 Fix PR tree-optimization/23488
4300
4301 * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
4302 (try_to_simplify): Ditto.
4303 (visit_use): Ditto.
4304 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
4305 handles.
4306 * tree-flow-inline.h (get_value_handle): Ditto.
4307 * tree-ssa-pre.c (decl_vh_map): New.
4308 (decl_node_pool): New.
4309 (can_value_number_operation): Support DECL_P.
4310 (can_PRE_operation): Ditto.
4311 (create_expression_by_pieces): Ditto.
4312 (find_existing_value_expr): Modify to differnetiate between
4313 addressing and top level.
4314 (create_value_handle_for_expr): Handle DECL's.
4315 (poolify_tree): Ditto.
4316 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
4317 (make_values_for_stmt): Handle DECL's properly.
4318 (init_pre): Reorg to not init useless things during FRE.
4319 (fini_pre): Ditto.
4320 * tree-flow.h: Include pointer-set.h.
4321 (decl_vh_map): Declare.
4322 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
4323
4324 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
4325
4326 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
4327 apply to assembly language, too.
4328 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
4329
4330 2007-07-06 Ian Lance Taylor <iant@google.com>
4331 Zack Weinberg <zackw@panix.com>
4332
4333 PR middle-end/32441
4334 * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
4335
4336 2007-07-06 Richard Sandiford <richard@codesourcery.com>
4337
4338 * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
4339 (prefetch): Likewise if "pref" would be used.
4340
4341 2007-07-06 Josh Conner <jconner@apple.com>
4342
4343 PR middle-end/32602
4344 PR middle-end/32603
4345 * calls.c (store_one_arg): Handle arguments which are partially
4346 on the stack when detecting argument overlap.
4347
4348 2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com>
4349
4350 * reload1.c (choose_reload_regs): Set reload_spill_index for regs
4351 chosen during find_reloads.
4352
4353 2007-07-06 Richard Guenther <rguenther@suse.de>
4354
4355 * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
4356 TYPE_ARG_TYPES for verification of argument types. Use
4357 DECL_ARG_TYPE instead of the PARM_DECL type. Take excess
4358 parameters as variable arguments.
4359
4360 2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
4361
4362 * libgcc2.h (word_type): Type definition removed.
4363 (cmp_return_type, shift_count_type): Type definitions added.
4364 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
4365 replaced with shift_count_type.
4366 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
4367 cmp_return_type.
4368 * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
4369 changed from word_type to Wtype.
4370 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
4371 replaced with shift_count_type.
4372 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
4373 cmp_return_type.
4374 * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
4375 and libgcc_shift_count attribute added.
4376 * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
4377 TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
4378 (TARGET_INITIALIZER): New target hooks added.
4379 * targhooks.c (default_libgcc_cmp_return_mode,
4380 default_libgcc_shift_count_mode): Default implementations for the new
4381 target hooks added.
4382 * targhooks.h (default_libgcc_cmp_return_mode,
4383 default_libgcc_shift_count_mode): Function prototypes added.
4384 * target.h (struct gcc_target): Fields for the new target hooks added.
4385 * optabs.c (expand_binop): Use shift_count_mode when expanding shift
4386 as library call.
4387 (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
4388 library call.
4389
4390 * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
4391 TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
4392
4393 * config/s390/s390.c (s390_libgcc_cmp_return_mode,
4394 s390_libgcc_shift_count_mode): Functions added.
4395 (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
4396 Target hooks defined.
4397
4398 2007-07-06 Richard Sandiford <richard@codesourcery.com>
4399
4400 * config/mips/mips.c (compute_frame_size): Restore the original
4401 gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
4402 fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
4403 Document why the difference is needed.
4404
4405 2007-07-06 Richard Guenther <rguenther@suse.de>
4406
4407 * c-common.c (boolean_increment): Use correctly typed
4408 constant.
4409
4410 2007-07-06 Richard Sandiford <richard@codesourcery.com>
4411
4412 * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
4413 the topmost argument register is not also included in the save mask.
4414 (mips16e_collect_argument_save_p): Take a pointer to the argument
4415 register, rather than a pointer to the number of arguments.
4416 (mips16e_collect_argument_saves): Only include argument saves
4417 that aren't in the register mask.
4418
4419 2007-07-06 Uros Bizjak <ubizjak@gmail.com>
4420
4421 PR rtl-optimization/32450
4422 * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
4423 to ensure that instructions are not moved into the prologue when
4424 profiling is on. Remove unused prologue_end variable.
4425 (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
4426 as a scheduling barrier.
4427
4428 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
4429
4430 PR debug/23551
4431 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
4432 Disregard DECL_FROM_INLINE.
4433
4434 2007-07-05 Adam Nemet <anemet@caviumnetworks.com>
4435
4436 * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
4437 IORing with a constant.
4438
4439 2007-07-05 Seongbae Park <seongbae.park@gmail.com>
4440
4441 PR rtl-optimization/32475
4442 * df-scan.c (df_def_record_1): Add a use of the stack pointer
4443 for every definition of the stack pointer.
4444
4445 2007-07-05 Richard Earnshaw <rearnsha@arm.com>
4446
4447 * arm.c (vfp3_const_double_index): Copy signed results of
4448 REAL_VALUE_TO_INT into unsigned vars.
4449
4450 2007-07-05 Richard Guenther <rguenther@suse.de>
4451
4452 PR middle-end/32639
4453 * alias.c (get_alias_set): Tread METHOD_TYPE the same as
4454 FUNCTION_TYPE.
4455 * tree-ssa.c (useless_type_conversion_p): Check canonical
4456 types early.
4457
4458 2007-07-05 Anatoly Sokolov <aesok@post.ru>
4459
4460 * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2,
4461 zero_extendhisi2): Change to define_insn_and_split.
4462 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
4463
4464 2007-07-05 Paolo Bonzini <bonzini@gnu.org>
4465
4466 * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
4467 pass_match_asm_constraints): New.
4468 * passes.c (init_optimization_passes): Add new pass.
4469 * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
4470 * function.h (struct function): Add has_asm_statement bit.
4471 (current_function_has_asm_statement): New.
4472 * tree-pass.h (pass_match_asm_constraints): New.
4473
4474 2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk>
4475
4476 * config/mips/mips.c (mips_file_start): Avoid declaration
4477 after code.
4478
4479 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
4480
4481 * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
4482
4483 2007-07-05 Uros Bizjak <ubizjak@gmail.com>
4484
4485 * rtl.def (NOTE): Change print format string to print
4486 operand 5 as a note insn name.
4487
4488 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
4489 David Ung <davidu@mips.com>
4490
4491 * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
4492 * doc/invoke.texi: (MIPS Options): Document them.
4493
4494 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
4495 David Ung <davidu@mips.com>
4496
4497 Add support for SmartMIPS ASE.
4498
4499 * optabs.c (expand_binop_directly): New, broken out from...
4500 (expand_binop): Here. Make it try rotating in the other
4501 direction even when the second operand isn't constant.
4502 * config/mips/mips.md (*lwxs): New.
4503 * config/mips/mips.opt (msmartmips): New.
4504 * config/mips/mips.c (mips_lwxs_address_p): New.
4505 (mips_rtx_costs): Make it recognize scaled indexed addressing.
4506 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
4507 __mips_smartmips when compiling for TARGET_SMARTMIPS.
4508 (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
4509 (ISA_HAS_LWXS): New.
4510 (ASM_SPEC): Add -msmartmips/-mno-smartmips.
4511 * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
4512 * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
4513 * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
4514 * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
4515 * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
4516 * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
4517
4518 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
4519
4520 * tree-vectorizer.c (new_loop_vec_info): Initialize
4521 LOOP_VINFO_COST_MODEL_MIN_ITERS.
4522 * tree-vectorizer.h (_loop_vec_info): Added new filed
4523 min_profitable_iters.
4524 (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
4525 (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
4526 * tree-vect-analyze.c (vect_analyze_operations): Set
4527 LOOP_VINFO_COST_MODEL_MIN_ITERS.
4528 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
4529 VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
4530 Fix calculation of peel_iters_prologue. Move consideration of epilogue
4531 and prologue cost to after they are computed.
4532 (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
4533 TARG_VEC_STMT_COST.
4534 (vect_model_simple_cost): Takes additional argument dt. Consider cost
4535 of creating vectors from scalars according to dt.
4536 (vect_model_store_cost): Likewise.
4537 (vectorizable_call): Use dt array instead of scalar dt. Call
4538 vect_model_simple_cost with additional argument dt.
4539 (vectorizable_assignment): Likewise.
4540 (vectorizable_operation): Likewise.
4541 (vectorizable_type_demotion): Likewise.
4542 (vectorizable_type_promotion): Likewise.
4543 (vectorizable_store): Use dt array instead of scalar dt. Call
4544 vect_model_store_cost with additional argument dt.
4545 (vect_do_peeling_for_loop_bound): Don't call
4546 vect_estimate_min_profitable_iters. Instead, lookup
4547 LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
4548 "may not be profitable".
4549
4550 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
4551
4552 PR testsuite/32014
4553 * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
4554 (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
4555 (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
4556 (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns.
4557
4558 2007-07-05 Zdenek Dvorak <dvorakz@suse.cz>
4559
4560 * config/i386/i386.c (ix86_address_cost): Do not consider more complex
4561 addressing modes cheaper.
4562
4563 2007-07-05 Alexandre Oliva <aoliva@redhat.com>
4564
4565 * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
4566 (dw_ranges_struct): Rename block_num to num. Adjust.
4567 (dw_ranges_by_label_struct): New.
4568 (ranges_by_label, ranges_by_label_allocated,
4569 ranges_by_label_in_use): New variables.
4570 (add_ranges_num): Factored most of the code out of...
4571 (add_ranges): ... this one. Rewrite in terms of the former.
4572 (add_ranges_by_labels): New.
4573 (output_ranges): Output by-label ranges.
4574 (dwarf2out_finish): Output range for multiple-section
4575 compile_unit. Output standard DW_AT_low_pc in addition to
4576 unexpected DW_AT_entry_pc.
4577
4578 2007-07-04 Daniel Berlin <dberlin@dberlin.org>
4579
4580 PR tree-optimization/32604
4581 PR tree-optimization/32606
4582
4583 * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
4584 (compute_antic_safe): Removed.
4585 (ANTIC_SAFE_LOADS): Ditto.
4586 (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
4587 (execute_pre): Don't call compute_antic_safe.
4588 (vuse_equiv): New function.
4589 (make_values_for_stmt): Use it
4590 * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
4591 not always true.
4592
4593 2007-07-04 Anatoly Sokolov <aesok@post.ru>
4594
4595 PR target/31331
4596 * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
4597 rather than a decl.
4598 (avr_attribute_table): Make "naked" attribute apply to function types
4599 rather than to decls.
4600 (avr_handle_fntype_attribute): New function.
4601
4602 2007-07-04 Joseph Myers <joseph@codesourcery.com>
4603
4604 * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
4605 after \.
4606
4607 2007-07-04 David Ung <davidu@mips.com>
4608 Joseph Myers <joseph@codesourcery.com>
4609
4610 * config/mips/mips.md (type): Add logical, signext and move.
4611 (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
4612 *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
4613 *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
4614 combinations", *zero_extend<SHORT:mode><GPR:mode>2,
4615 *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
4616 *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
4617 *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
4618 *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
4619 *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
4620 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
4621 movv2sf_hardfloat_64bit): Use the new types.
4622 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
4623 *movdf_softfloat, *movdf_mips16): Use "multi".
4624 (extendqihi2): Replace with a define_expand.
4625 (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
4626 Based on extend<SHORT:mode><GPR:mode>2 patterns.
4627 * config/mips/74k.md (r74k_int_logical): New reservation and
4628 bypasses.
4629 (r74k_int_arith): Remove "slt".
4630 * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
4631 config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
4632 config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
4633 config/mips/sb1.md, config/mips/sr71k.md: Add new types to
4634 reservations for "arith".
4635
4636 2007-07-04 Richard Guenther <rguenther@suse.de>
4637
4638 * tree-ssa.c (useless_type_conversion_p): Add handling for
4639 scalar float and vector types. Only call the types_compatible_p
4640 langhook for aggregate types as last resort. Follow the
4641 rules.
4642
4643 2007-07-04 Richard Guenther <rguenther@suse.de>
4644
4645 * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
4646 the same as NOP_EXPR.
4647
4648 2007-07-04 Nick Clifton <nickc@redhat.com>
4649
4650 * target.h (struct gcc_target): Add target_help field.
4651 * target-def.h (TARGET_HELP): New.
4652 (TARGET_INITIALIZER): Use TARGET_HELP.
4653 * opts.c (command_handle_option): Invoke target_help function, if
4654 defined, when the user has specified --target-help on the command
4655 line.
4656 * doc/invoke.texi: Mention that --target-help might print
4657 additional information.
4658 * doc/tm.texi: Document TARGET_HELP hook.
4659
4660 * arm.c (TARGET_HELP): Override default definition.
4661 (arm_target_help): New - display a wrapped list of cores and
4662 architectures supported.
4663
4664 2007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk>
4665
4666 * config/v850/v850.c (expand_prologue): Make sure
4667 GEN_INT() argument is sign extended rather than zero extended.
4668 (expand_epilogue): Likewise.
4669 (output_move_double): Delete.
4670 * config/v850/v850-protos.h (output_move_double): Delete.
4671 * config/v850/v850.md (movdi): Delete.
4672 (*movdi_internal): Delete.
4673 (movdf): Delete.
4674 (*movdf_internal): Delete.
4675
4676 2007-07-04 Richard Sandiford <richard@codesourcery.com>
4677
4678 * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
4679 unless compiling RTP PIC.
4680
4681 2007-07-04 Richard Guenther <rguenther@suse.de>
4682
4683 PR tree-optimization/32482
4684 * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
4685 original ssa name if we didn't find a shift expression.
4686 Fix shift constant for bit zero test.
4687
4688 2007-07-04 Richard Sandiford <richard@codesourcery.com>
4689
4690 * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
4691
4692 2007-07-04 Richard Sandiford <richard@codesourcery.com>
4693
4694 * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
4695 * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
4696 * config/arm/vxworks.h (ASM_SPEC): Delete.
4697 (SUBTARGET_EXTRA_ASM_SPEC): Define.
4698
4699 2007-07-04 Sebastian Pop <sebpop@gmail.com>
4700
4701 * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
4702 (DDR_REVERSED_P): New.
4703 * tree-data-ref.c (initialize_data_dependence_relation,
4704 build_classic_dist_vector): Set DDR_REVERSED_P.
4705
4706 2007-07-04 Sebastian Pop <sebpop@gmail.com>
4707
4708 PR middle-end/32457
4709 * tree-data-ref.c (analyze_siv_subscript_cst_affine,
4710 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
4711 init_omega_for_ddr_1): Use non conservative number of iterations
4712 estimations.
4713 (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
4714 (analyze_siv_subscript): Remove FIXME and reinitialization of
4715 last_conflicts to chrec_dont_know.
4716 * testsuite/gfortran.dg/vect/pr32457.f90: New.
4717
4718 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
4719
4720 * tree.c (maybe_canonicalize_argtypes): Improve description.
4721
4722 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
4723
4724 * tree.c (maybe_canonicalize_argtypes): New.
4725 (build_function_type): Set canonical type.
4726 (build_method_type_directly): Ditto.
4727 (reconstruct_complex_type): Rebuild the METHOD_TYPE node
4728 properly.
4729
4730 2007-07-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
4731
4732 * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
4733 like PLUS_EXPR.
4734 (rewrite_use_nonlinear_expr): Likewise.
4735
4736 2007-07-03 Seongbae Park <seongbae.park@gmail.com>
4737
4738 * rtl.def (UNSPEC, USE, CLOBBER): More comments.
4739
4740 2007-07-04 Ben Elliston <bje@au.ibm.com>
4741
4742 * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
4743 of this file.
4744
4745 * c-objc-common.c (c_types_compatible_p): Fix indentation.
4746
4747 * doc/tm.texi (Run-time Target): Capitalise "CPU".
4748 (Exception Handling): Likewise.
4749
4750 2007-07-03 Jan Hubicka <jh@suse.cz>
4751
4752 * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
4753
4754 2007-07-03 Eric Christopher <echristo@apple.com>
4755
4756 * doc/cppopts.texi: Add conflicting option note to -dM.
4757 * doc/invoke.texi: Add note about possible conflicts with
4758 -E for -dCHARS and note that -dM will not produce
4759 any results if there is no machine dependent reorg.
4760
4761 2007-07-03 Geoffrey Keating <geoffk@apple.com>
4762
4763 * tree.h (DECL_ALIGN): Back out previous change.
4764
4765 2007-07-03 Joseph Myers <joseph@codesourcery.com>
4766
4767 * configure.ac: Test for .dtprelword support on MIPS.
4768 * configure, config.in: Regenerate.
4769 * config/mips/mips.c (mips_output_dwarf_dtprel): New.
4770 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
4771
4772 2007-07-03 Julian Brown <julian@codesourcery.com>
4773
4774 * config.gcc (with_fpu): Allow --with-fpu=vfp3.
4775 * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
4776 * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
4777 * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
4778 capability.
4779 (all_fpus): Add FPUTYPE_VFP3.
4780 (fp_model_for_fpu): Add VFPv3 field.
4781 (arm_rtx_costs_1): Give cost to VFPv3 constants.
4782 (vfp3_const_double_index): New function. Return integer index of
4783 VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
4784 isn't suitable.
4785 (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
4786 and argument represents a valid RTX for a VFPv3 constant.
4787 (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
4788 two instructions.
4789 (vfp_emit_fstmd): Similar, for fstmd.
4790 (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
4791 constants, represented as integer indices.
4792 (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
4793 VFP_REGNO_OK_FOR_DOUBLE macros.
4794 (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
4795 (arm_file_start): Set float-abi attribute for VFPv3, and output
4796 correct ".fpu" assembler directive.
4797 (arm_dbx_register_numbering): Add FIXME.
4798 * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
4799 (fputype): Add FPUTYPE_VFP3.
4800 (FIXED_REGISTERS): Add 32 registers for D16-D31.
4801 (CALL_USED_REGISTERS): Likewise.
4802 (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
4803 of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
4804 (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
4805 (D7_VFP_REGNUM): New.
4806 (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
4807 (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
4808 (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
4809 (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
4810 (REG_ALLOC_ORDER): Adjust for VFPv3.
4811 (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
4812 (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
4813 VFP_LO_REGS, VFP_HI_REGS.
4814 (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
4815 (IS_VFP_CLASS): Define macro.
4816 (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
4817 IS_VFP_CLASS.
4818 (REGISTER_MOVE_COST): Likewise.
4819 * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
4820 * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
4821 (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
4822 (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
4823 (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
4824 (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
4825 (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
4826 (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
4827 (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
4828 (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
4829 (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
4830 where appropriate for single-word registers.
4831 (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
4832 As above. Fix type attributes.
4833 * config/arm/constraints.md (register_contraint "t"): Define.
4834 (register_constraint "w"): Change to D0-D15, or D0-D31 for
4835 VFPv3/NEON.
4836 (register_constraint "x"): Define.
4837 (constraint "Dv"): Define.
4838
4839 2007-07-03 Geoffrey Keating <geoffk@apple.com>
4840
4841 * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
4842
4843 2007-07-03 Tom Tromey <tromey@redhat.com>
4844
4845 * c-parser.c (objc_pq_context): Removed.
4846 (objc_need_raw_identifier): Likewise.
4847 (c_parser) <objc_pq_context>: New field.
4848 <objc_need_raw_identifier>: Likewise.
4849 (OBJC_NEED_RAW_IDENTIFIER): Removed.
4850 (c_lex_one_token): Update.
4851 (c_parser_objc_protocol_definition): Update.
4852 (c_parser_objc_method_definition): Update.
4853 (c_parser_objc_methodproto): Update.
4854 (c_parser_declspecs): Update.
4855
4856 2007-07-03 David Ung <davidu@mips.com>
4857
4858 * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
4859
4860 2007-07-03 David Ung <davidu@mips.com>
4861 Richard Sandiford <richard@codesourcery.com>
4862
4863 * doc/invoke.texi: Document -march=74kf3_2.
4864 * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
4865 (TUNE_74K): Check for it.
4866 * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
4867 (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
4868 * config/mips/mips.md (cpu): Add 74kf3_2.
4869 * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
4870 (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
4871 (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
4872 (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
4873 74kf3_2 to the CPU list.
4874 (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
4875 (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
4876 (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
4877 (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
4878 (r74kf3_2_fxfer_from_c1): New insn reservations.
4879
4880 2007-07-03 Richard Sandiford <richard@codesourcery.com>
4881 David Ung <davidu@mips.com>
4882
4883 * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
4884 -march=24kx with -march=24kf1_1. Likewise 24ke[fx], 34k[fx]
4885 and 74k[fx]. Document aliases for the new options.
4886 * config/mips/mips.h (PROCESSOR_24KF): Rename to...
4887 (PROCESSOR_24KF2_1): ...this.
4888 (PROCESSOR_24KX): Rename to...
4889 (PROCESSOR_24KF1_1): ...this.
4890 (PROCESSOR_74KF): Rename to...
4891 (PROCESSOR_74KF2_1): ...this.
4892 (PROCESSOR_74KX): Rename to...
4893 (PROCESSOR_74KF1_1): ...this.
4894 (TUNE_74K): Update PROCESSOR_* names.
4895 * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
4896 for 24kf. Add 24kf1_1 and 24kfx as synonyms for 24kx. Likewise
4897 the 24ke*, 34k* and 74k* processors. Update PROCESSOR_* names.
4898 (mips_rtx_cost_data): Update processor names in comments.
4899 (mips_issue_rate): Update PROCESSOR_* names.
4900 * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
4901 24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
4902 * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
4903 to r24kf2_1_*. Rename r24kx_* insn reservations to r24kf1_1_*.
4904 Update cpu attribute names.
4905 (r24k_fpu_iss): Rename this reservation to...
4906 (r24kf2_1_fpu_iss): ...this and update all uses.
4907 (r24kx_fpu_iss): Rename this reservation to...
4908 (r24kf1_1_fpu_iss): ...this and update all uses.
4909 * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
4910 to r74kf2_1_*. Rename r74kx_* insn reservations to r74kf1_1_*.
4911 Update cpu attribute names.
4912
4913 2007-07-01 Kaz Kojima <kkojima@gcc.gnu.org>
4914
4915 * config/m32r/constraints.md: New file.
4916 * config/m32r/m32r.c: Include tm-constrs.h.
4917 (small_data_operand): Use satisfies_constraint_* instead of macro.
4918 (addr24_operand, gen_compare): Likewise.
4919 * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
4920 (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
4921 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
4922 EXTRA_CONSTRAINT): Likewise.
4923 * config/m32r/m32r.md: Include constraints.md.
4924 (*movsi_insn): Use satisfies_constraint_* instead of macro.
4925 (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
4926 * config/m32r/predicates.md (conditional_move_operand): Likewise.
4927 (two_insn_const_operand, int8_operand, uint16_operand,
4928 reg_or_int16_operand, reg_or_uint16_operand,
4929 reg_or_cmp_int16_operand, cmp_int16_operand,
4930 seth_add3_operand): Likewise.
4931
4932 2007-07-03 Eric Christopher <echristo@gmail.com>
4933
4934 * libgcc2.h: Conditionally declare __bswapsi2 and
4935 __bswapdi2.
4936
4937 2007-07-03 H.J. Lu <hongjiu.lu@intel.com>
4938
4939 * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
4940 defined.
4941
4942 2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4943
4944 PR target/28307
4945 * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
4946 (__gthrw_pragma): Provide default definition.
4947 (__gthrw2): Use it.
4948 * gthr-posix.c (__gthrw_pragma): Define.
4949
4950 2007-07-03 Daniel Berlin <dberlin@dberlin.org>
4951
4952 * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
4953 before declaring inequality.
4954
4955 2007-07-03 Rask Ingemann Lambertsen <rask@sygehus.dk>
4956
4957 * combine.c (recog_for_combine): Log the success or failure of
4958 matching new insn patterns against the machine description in
4959 detailed dumps.
4960
4961 2007-07-03 Revital Eres <eres@il.ibm.com>
4962
4963 * ddg.c (print_sccs): New function.
4964 (check_sccs): New function.
4965 (create_ddg_all_sccs): Use it.
4966 * ddg.h (print_sccs): Declare.
4967 * modulo-sched.c (sms_order_nodes): Call print_sccs.
4968
4969 2007-07-03 Uros Bizjak <ubizjak@gmail.com>
4970
4971 * targhooks.h (default_mode_for_suffix): New function declaration.
4972 * targhooks.c (default_mode_for_suffix): New default target hook.
4973 * target.h (struct c): New structure in the targetm struct.
4974 (mode_for_suffix): New target hook as part of struct c.
4975 target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
4976 default_mode_for_suffix.
4977 (TARGET_C): New define.
4978 * c-lex.c: Include "target.h".
4979 (interpret_float): Use targetm.c.mode_for_suffix to determine
4980 the mode for a given non-standard suffix.
4981 Makefile.in (c-lex.o): Depend on $(TARGET_H).
4982
4983 * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
4984 (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
4985
4986 * doc/extend.texi (Floating Types): New node. Document __float80 and
4987 __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes.
4988
4989 2007-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
4990
4991 PR target/32506
4992 * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
4993 predicate instead of target_operand.
4994 (divsi3_i1_media, divsi3_media_2): Likewise.
4995
4996 2007-07-02 Eric Botcazou <ebotcazou@adacore.com>
4997
4998 * tree.h (alias_sets_might_conflict_p): Rename into
4999 alias_sets_must_conflict_p.
5000 * alias.c (alias_sets_might_conflict_p): Likewise.
5001 (alias_sets_conflict_p): Use it.
5002 (objects_must_conflict_p): Likewise.
5003 * c-common.c (strict_aliasing_warning): Adjust.
5004
5005 2007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
5006
5007 * rtlhooks.c (gen_lowpart_if_possible): Check for
5008 invalid subreg before calling gen_lowpart_SUBREG.
5009
5010 2007-07-02 Geoffrey Keating <geoffk@apple.com>
5011
5012 * config/darwin9.h: Add copyright notice.
5013 (LINK_COMMAND_SPEC): Add comment.
5014 (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
5015 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
5016 DARWIN_LIBSYSTEM_HAS_UNWIND.
5017
5018 2007-07-02 Jakub Jelinek <jakub@redhat.com>
5019
5020 PR libgomp/32468
5021 * omp-low.c (check_combined_parallel): New function.
5022 (lower_omp_parallel): Call it via walk_stmts, set
5023 OMP_PARALLEL_COMBINED if appropriate.
5024 (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
5025 isn't the only statement in WS_ENTRY_BB or OMP_RETURN
5026 the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
5027 don't consider it as combined parallel.
5028
5029 2007-07-02 Richard Sandiford <richard@codesourcery.com>
5030
5031 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
5032 (gcc_tooldir): Likewise.
5033 * configure: Regenerate.
5034 * Makefile.in (libsubdir_to_prefix): New variable, based on the
5035 old configure.ac gcc_tooldir setting.
5036 (prefix_to_exec_prefix): New variable.
5037 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
5038 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
5039
5040 2007-07-02 Daniel Berlin <dberlin@dberlin.org>
5041
5042 Fix PR tree-optimization/32583
5043 Fix PR tree-optimization/32584
5044 * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
5045 (phi_translate_set): Use phi_translate directly now.
5046 (make_values_for_stmt): Don't value number RHS if we already know
5047 it is constant.
5048
5049 2007-07-02 Steve Ellcey <sje@cup.hp.com>
5050 Jim Wilson <wilson@specifix.com>
5051
5052 PR target/31684
5053 * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
5054 copy_insn.
5055
5056 2007-07-02 Sandra Loosemore <sandra@codesourcery.com>
5057 Richard Sandiford <richard@codesourcery.com>
5058 Nigel Stephens <nigel@mips.com>
5059
5060 * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
5061 (mips16e_output_save_restore): Declare.
5062 (mips16e_save_restore_pattern_p): Likewise.
5063 * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
5064 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
5065 for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16
5066 && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
5067 (BITSET_P): New global macro, extracted from...
5068 (mips_for_each_saved_reg): ...here.
5069 (mips16e_save_restore_info): New struct.
5070 (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
5071 (mips16e_save_restore_regs): New variable.
5072 (mips_split_plus, mips16e_find_first_register): New functions.
5073 (mips16e_mask_registers): New function.
5074 (compute_frame_size): Expand the commentary before the function.
5075 Enforce the MIPS16e save and restore register range restrictions.
5076 Pad the general register save area at the low end.
5077 (mips16e_save_restore_reg, mips16e_build_save_restore)
5078 (mips16e_save_restore_pattern_p, mips16e_add_register_range)
5079 (mips16e_output_save_restore, mips16e_collect_propagate_value)
5080 (mips16e_collect_argument_save, mips16e_collect_argument_saves):
5081 New functions.
5082 (mips_expand_prologue, mips_expand_epilogue): Handle
5083 GENERATE_MIPS16E_SAVE_RESTORE.
5084 * config/mips/mips.md (*mips16e_save_restore): New pattern.
5085
5086 2007-07-02 Uros Bizjak <ubizjak@gmail.com>
5087
5088 PR tree-optimization/31966
5089 PR tree-optimization/32533
5090 * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
5091 "basic_block" description as its third argument. Update function
5092 calls to get destination bb from "edge" argument. Save "cond" into
5093 aux field of the edge. Update prototype for changed arguments.
5094 (if_convertible_loop_p): Clear aux field of incoming edges if bb
5095 contains phi node.
5096 (find_phi_replacement_condition): Operate on incoming edges, not
5097 on predecessor blocks. If there is a condition saved in the
5098 incoming edge aux field, AND it with incoming bb predicate.
5099 Return source bb of the first edge.
5100 (clean_predicate_lists): Clean aux field of outgoing node edges.
5101 (tree_if_conversion): Do not initialize cond variable. Move
5102 variable declaration into the loop.
5103 (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
5104 initializations of new_stmt, arg0 and arg1 variables.
5105
5106 2007-07-02 Jakub Jelinek <jakub@redhat.com>
5107
5108 * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
5109 SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
5110
5111 2007-07-02 Richard Guenther <rguenther@suse.de>
5112
5113 * tree-ssa.c (useless_type_conversion_p): Document
5114 future intent as defining the middle-end type system.
5115 Re-structure to call langhook last, group by type class,
5116 mark questionable parts.
5117
5118 2007-07-02 Richard Guenther <rguenther@suse.de>
5119
5120 * tree-flow.h (types_compatible_p): Declare.
5121 * tree-ssa.c (types_compatible_p): New function.
5122 * ipa-type-escape.c (discover_unique_type): Use
5123 types_compatible_p instead of lang_hooks.types_compatible_p.
5124 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
5125 * tree-vn.c (expressions_equal_p): Likewise.
5126 * tree.c (fields_compatible_p): Likewise.
5127 * tree-ssa-dom.c (avail_expr_eq): Likewise.
5128 (cprop_operand): Use useless_type_conversion_p instead of
5129 lang_hooks.types_compatible_p.
5130 * tree-inline.c (setup_one_parameter): Likewise.
5131 (declare_return_variable): Likewise.
5132 * tree-nrv.c (tree_nrv): Likewise.
5133 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
5134 (maybe_fold_offset_to_component_ref): Likewise.
5135 (maybe_fold_offset_to_reference): Likewise.
5136 * tree-ssa-copy.c (may_propagate_copy): Likewise.
5137 (merge_alias_info): Likewise.
5138 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
5139 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
5140 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
5141 * tree-tailcall.c (find_tail_calls): Likewise.
5142 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
5143 * gimplify.c (canonicalize_addr_expr): Likewise.
5144 (fold_indirect_ref_rhs): Likewise.
5145 (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type.
5146 (cpt_same_type): Likewise.
5147 (check_pointer_types_r): Swap parameters to cpt_same_type
5148 where appropriate.
5149 * fold-const.c (fold_convert): Revert fix for PR15988.
5150 * tree-inline.c (setup_one_parameter): Instead fix it here by
5151 using fold_build1 instead of fold_convert and checking for
5152 error_mark_node. Convert only if the conversion is necessary.
5153
5154 2007-07-02 Joseph Myers <joseph@codesourcery.com>
5155
5156 * configure.ac: Check for .gnu_attribute on Power.
5157 * configure: Regenerate.
5158 * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
5159 attribute for floating-point ABI.
5160
5161 2007-07-02 Ira Rosen <irar@il.ibm.com>
5162
5163 PR tree-optimization/32230
5164 PR tree-optimization/32477
5165 * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base
5166 address is a constant.
5167
5168 2007-07-02 Richard Sandiford <richard@codesourcery.com>
5169
5170 * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
5171 (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
5172 (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
5173 stanzas. Use the first part of the triplet to set MIPS_ISA_DEFAULT.
5174 Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
5175 64-bit targets. Add support for *-elfoabi*.
5176 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
5177 different settings if $(tm_defines) does not select the EABI.
5178 (MULTILIB_EXCLUSIONS): Define in those circumstances.
5179 * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
5180 (MIPS_ARCH_OPTION_SPEC): Likewise.
5181 (MIPS_ISA_LEVEL_SPEC): Likewise.
5182 (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
5183 * config/mips/elfoabi.h: New file.
5184
5185 2007-07-02 Richard Guenther <rguenther@suse.de>
5186
5187 * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
5188 (useless_type_conversion_p): ... this.
5189 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
5190 (useless_type_conversion_p): ... this.
5191 * builtins.c (fold_builtin_memory_op): Rename
5192 tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
5193 * tree-cfg.c (verify_expr): Likewise.
5194 * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
5195 * tree-ssa-ccp.c (ccp_fold): Likewise.
5196 * tree-ssa-copy.c (may_propagate_copy): Likewise.
5197 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
5198 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
5199 * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
5200 * tree-ssa-pre.c (eliminate): Likewise.
5201 * tree-ssa.c (delete_tree_ssa): Likewise.
5202 (tree_ssa_useless_type_conversion): Likewise.
5203 * tree.c (build2_stat): Likewise.
5204
5205 2007-07-01 Daniel Berlin <dberlin@dberlin.org>
5206
5207 Fix PR tree-optimization/32571
5208 * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
5209 simplifying them.
5210
5211 2007-07-01 Daniel Berlin <dberlin@dberlin.org>
5212
5213 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
5214 and other expected operations explicitly, change default to
5215 gcc_unreachable.
5216
5217 2007-07-01 Daniel Jacobowitz <dan@codesourcery.com>
5218
5219 * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
5220 PARALLEL.
5221 * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
5222 (tls_load_dot_plus_eight): Move the label number into the unspec.
5223 * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
5224
5225 2007-07-01 Andreas Schwab <schwab@suse.de>
5226
5227 * dwarf2out.c (initial_return_save): Define only if used.
5228
5229 2007-07-01 Kenneth Zadeck <zadeck@naturalbridge.com>
5230
5231 Unreverting Richard's Revert of:
5232
5233 2007-06-27 Richard Sandiford <richard@codesourcery.com>
5234
5235 * dce.c (deletable_insn_p_1): New function, split out from...
5236 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
5237 specially, not those inside PARALLELs. Remove BODY argument
5238 and adjust recursive call accordingly.
5239 (prescan_insns_for_dce): Update call to delete_insn_p.
5240
5241 2007-07-01 Vladimir Yanovsky <yanov@il.ibm.com>
5242 Revital Eres <eres@il.ibm.com>
5243
5244 * ddg.c (create_ddg_all_sccs): Fix missed
5245 initialization of scc_nodes.
5246
5247 2007-07-01 Uros Bizjak <ubizjak@gmail.com>
5248
5249 PR middle-end/32559
5250 * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
5251 X + ~X to 1 only for INTEGRAL_TYPE_P type.
5252
5253 2007-06-30 Joseph Myers <joseph@codesourcery.com>
5254
5255 * configure.ac: Check for .gnu_attribute on MIPS.
5256 * configure, config.in: Regenerate.
5257 * config/mips/mips.c (mips_file_start): If supported, output
5258 attribute for floating-point ABI.
5259
5260 2007-06-30 Uros Bizjak <ubizjak@gmail.com>
5261
5262 PR target/32433
5263 * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
5264 (ffs_cmove): New expander to expand using ctz pattern.
5265 (*ffs_cmove): Remove pattern.
5266 (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
5267 (ffsdi2): Expand using ctz pattern.
5268 (*ffs_rex64): Remove pattern.
5269
5270 2007-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5271
5272 PR rtl-optimization/32296
5273 * pa.md (return): Delete pattern.
5274 (return_internal): Remove "(const_int 1)" from pattern.
5275 (epilogue): Use return_internal pattern for trivial returns.
5276 * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
5277 * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h".
5278
5279 2007-06-30 Daniel Berlin <dberlin@dberlin.org>
5280
5281 * tree-ssa-pre.c (is_exception_related): New function
5282 (can_value_number_operation): Use it.
5283
5284 2007-06-30 Daniel Berlin <dberlin@dberlin.org>
5285
5286 Fix PR tree-optimization/32540
5287 Fix PR tree-optimization/31651
5288
5289 * tree-ssa-sccvn.c: New file.
5290
5291 * tree-ssa-sccvn.h: Ditto.
5292
5293 * tree-vn.c: Include tree-ssa-sccvn.h
5294 (val_expr_paid_d): Removed.
5295 (value_table): Ditto.
5296 (vn_compute): Ditto.
5297 (val_expr_pair_hash): Ditto.
5298 (val_expr_pair_expr_eq): Ditto.
5299 (copy_vuses_from_stmt): Ditto.
5300 (vn_delete): Ditto.
5301 (vn_init): Ditto.
5302 (shared_vuses_from_stmt): Ditto.
5303 (print_creation_to_file): Moved up.
5304 (sort_vuses): Ditto.
5305 (sort_vuses_heap): Ditto.
5306 (set_value_handle): Make non-static.
5307 (make_value_handle): Ditto.
5308 (vn_add): Rewritten to use sccvn lookups.
5309 (vn_add_with_vuses): Ditto.
5310 (vn_lookup): Ditto (and second argument removed).
5311 (vn_lookup_with_vuses): Ditto.
5312 (vn_lookup_or_add): Ditto (and second argument removed);
5313 (vn_lookup_or_add_with_vuses): Ditto.
5314 (vn_lookup_with_stmt): New.
5315 (vn_lookup_or_add_with_stmt): Ditto.
5316 (create_value_handle_for_expr): Ditto.
5317
5318 * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
5319 (seen_during_translate): New function.
5320 (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
5321 (phi_trans_add): Ditto.
5322 (constant_expr_p): FIELD_DECL is always constant.
5323 (phi_translate_1): Renamed from phi_translate, add seen bitmap.
5324 Use constant_expr_p.
5325 Avoid infinite recursion on mutually valued expressions.
5326 Change callers of vn_lookup_or_add.
5327 (phi_translate): New function.
5328 (compute_antic_safe): Allow phi nodes.
5329 (create_component_ref_by_pieces): Update for FIELD_DECL change.
5330 (find_or_generate_expression): Rewrite slightly.
5331 (create_expression_by_pieces): Updated for vn_lookup_or_add
5332 change.
5333 Update VN_INFO for new names.
5334 (insert_into_preds_of_block): Update for new names.
5335 (add_to_exp_gen): New function.
5336 (add_to_sets): Use vn_lookup_or_add_with_stmt.
5337 (find_existing_value_expr): Rewrite to changed vn_lookup.
5338 (create_value_expr_from): Ditto, and use add_to_exp_gen.
5339 (try_look_through_load): Removed.
5340 (try_combine_conversion): Ditto.
5341 (get_sccvn_value): New function.
5342 (make_values_for_phi): Ditto.
5343 (make_values_for_stmt): Ditto.
5344 (compute_avail): Rewritten for vn_lookup_or_add changes and to use
5345 SCCVN.
5346 (init_pre): Update for SCCVN changes.
5347 (fini_pre): Ditto.
5348 (execute_pre): Ditto.
5349
5350 * tree-flow.h (make_value_handle): Declare.
5351 (set_value_handle): Ditto.
5352 (sort_vuses_heap): Ditto.
5353 (vn_lookup_or_add_with_stmt): Ditto.
5354 (vn_lookup_with_stmt): Ditto.
5355 (vn_compute): Remove.
5356 (vn_init): Ditto.
5357 (vn_delete): Ditto.
5358 (vn_lookup): Update arguments.
5359
5360 * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
5361 (tree-vn.o): Ditto.
5362 (tree-ssa-sccvn.o): New.
5363 (OBJS-common): Add tree-ssa-sccvn.o
5364
5365 2007-06-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5366
5367 PR c/4076
5368 * c-typeck.c (build_external_ref): Don't mark as used if called
5369 from itself.
5370 * calls.c (rtx_for_function_call): Likewise.
5371
5372 2007-06-30 Richard Sandiford <richard@codesourcery.com>
5373
5374 Revert:
5375
5376 2007-06-27 Richard Sandiford <richard@codesourcery.com>
5377
5378 * dce.c (deletable_insn_p_1): New function, split out from...
5379 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
5380 specially, not those inside PARALLELs. Remove BODY argument
5381 and adjust recursive call accordingly.
5382 (prescan_insns_for_dce): Update call to delete_insn_p.
5383
5384 2007-06-30 Rask Ingemann Lambertsen <rask@sygehus.dk>
5385
5386 * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
5387 (try_combine): Move potential calls to undo_all() so they happen
5388 before we commit to using the combined insns.
5389
5390 2006-06-30 Jan Hubicka <jh@suse.cz>
5391
5392 * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
5393 code.
5394
5395 2006-06-30 Thomas Neumann <tneumann@users.sourceforge.net>
5396
5397 * ipa.c (cgraph_postorder): Cast according to the coding conventions.
5398 (cgraph_remove_unreachable_nodes): Likewise.
5399 * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
5400 * ipa-inline.c (update_caller_keys): Cast according to the coding
5401 conventions.
5402 (cgraph_decide_recursive_inlining): Likewise.
5403 (cgraph_decide_inlining_of_small_function): Likewise.
5404 (try_inline): Likewise.
5405 (cgraph_decide_inlining_incrementally): Likewise.
5406 * ipa-pure-const.c (get_function_state): Likewise.
5407 (scan_function): Likewise.
5408 (analyze_function): Likewise.
5409 (static_execute): Likewise.
5410 * ipa-reference.c (scan_for_static_refs): Likewise.
5411 (merge_callee_local_info): Likewise.
5412 (analyze_function): Use type safe memory macros.
5413 (static_execute): Likewise. Cast according to the coding conventions.
5414 * ipa-type-escape.c (scan_for_regs): Cast according to the coding
5415 conventions.
5416 * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
5417 names.
5418 (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
5419 * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
5420 variable names.
5421
5422 2007-06-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
5423
5424 PR middle-end/30024
5425 * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
5426 for complex modes (both int and real).
5427
5428 2007-06-29 Jan Hubicka <jh@suse.cz>
5429
5430 * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
5431
5432 2007-06-29 Jan Hubicka <jh@suse.cz>
5433
5434 PR middle-end/32372
5435 * cse.c (cse_insn): Avoid invalid sharing in between register note and
5436 the insn pattern.
5437
5438 2007-06-29 Anatoly Sokolov <aesok@post.ru>
5439
5440 PR target/32335
5441 * config/avr/avr.c: Include dataflow header file.
5442 (expand_prologue): Adjust for prologue insn change.
5443 * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
5444 inside a insn.
5445
5446 2007-06-29 Richard Guenther <rguenther@suse.de>
5447
5448 PR middle-end/32493
5449 * gimplify.c (gimplify_call_expr): Ignore variable argument parts
5450 during type verification.
5451
5452 2007-06-29 Jan Hubicka <jh@suse.cz>
5453
5454 * recog.c (validate_change_rtx_1): Unshare TO argument.
5455
5456 2007-06-29 Uros Bizjak <ubizjak@gmail.com>
5457
5458 PR tree-optimization/24659
5459 * tree-vect-transform.c (vectorizable_call): Handle
5460 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
5461
5462 * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
5463 * config/i386/i386.c (enum ix86_builtins)
5464 [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
5465 (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
5466 description.
5467 (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
5468 const using def_builtin_const.
5469 (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
5470 input operands in the same modes as the result.
5471 (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
5472
5473 2007-06-29 Richard Sandiford <rsandifo@nildram.co.uk>
5474
5475 * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
5476 (df_set_dead_notes_for_mw): Likewise.
5477
5478 2007-06-29 Eric Botcazou <ebotcazou@adacore.com>
5479
5480 * c-common.c (pointer_int_sum): Do the negation in sizetype.
5481
5482 2007-06-28 DJ Delorie <dj@redhat.com>
5483
5484 * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
5485
5486 2007-06-28 Geoffrey Keating <geoffk@apple.com>
5487
5488 * doc/invoke.texi (C++ Dialect Options): Document
5489 fvisibility-ms-compat.
5490 * c.opt (fvisibility-ms-compat): New.
5491
5492 2007-06-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
5493
5494 PR tree-opt/32417
5495 * tree-affine.c (aff_combination_add_elt): Handle
5496 pointer addition specially.
5497
5498 2007-06-28 Jakub Jelinek <jakub@redhat.com>
5499
5500 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
5501 decl is non-external for AIX ABI.
5502
5503 2007-06-28 David Edelsohn <edelsohn@gnu.org>
5504
5505 * config/rs6000/predicates.md (current_file_function_operand):
5506 Ensure the symbol is non-external for AIX ABI.
5507
5508 2007-06-28 Nick Clifton <nickc@redhat.com>
5509
5510 * common.opt (fipa-matrix-reorg): Add Optimization attribute.
5511 (fdce, fdse, fpredictive-commoning): Likewise.
5512
5513 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5514
5515 PR other/31400
5516 * gcc.c (process_command): Recognize the new -static-libgfortran
5517 option.
5518
5519 2007-06-27 Rask Ingemann Lambertsen <rask@sygehus.dk>
5520
5521 PR target/32418
5522 * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
5523 Use a call clobbered hard reg instead of a pseudo reg.
5524
5525 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
5526
5527 * config/sh/sh.md (load_gbr): Use correct operand constraint.
5528
5529 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
5530
5531 PR target/32479
5532 * config/sh/sh.md (udivsi3): Don't wrap the sequence with
5533 REG_LIBCALL and REG_RETVAL notes.
5534 (divsi3, mulsi3): Likewise.
5535 (mulhisi3): Likewise. Use emit_libcall_block.
5536 (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
5537
5538 2007-06-27 Seongbae Park <seongbae.park@gmail.com>
5539
5540 PR rtl-optimization/32481
5541 * combine.c (adjust_for_new_dest): Rescan the changed insn.
5542
5543 2007-06-27 Richard Sandiford <richard@codesourcery.com>
5544
5545 * dce.c (deletable_insn_p_1): New function, split out from...
5546 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
5547 specially, not those inside PARALLELs. Remove BODY argument
5548 and adjust recursive call accordingly.
5549 (prescan_insns_for_dce): Update call to delete_insn_p.
5550
5551 2007-06-27 Richard Guenther <rguenther@suse.de>
5552
5553 PR middle-end/32492
5554 * tree.h (fold_convertible_p): Declare.
5555 * fold-const.c (fold_convertible_p): New function.
5556 * gimplify.c (gimplify_call_expr): Use fold_convertible_p
5557 instead of lang_hooks.types_compatible_p.
5558
5559 2007-06-26 Jan Hubicka <jh@suse.cz>
5560
5561 * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
5562 * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
5563 early use validate_unshare_change.
5564 (reload_combine): Likewise.
5565 * recog.c (change_t): New field unshare.
5566 (validate_change_1): Rename from validate_change; add argument unshare.
5567 (validate_change): Turn into wrapper of validate_change_1; update
5568 prototype for bools.
5569 (validate_unshare_change): New.
5570 (confirm_change_group): Unshare changes if asked for; avoid unnecesary
5571 calls of df_insn_rescan.
5572 * recog.h (validate_change): Replace ints by bools.
5573 (validate_unshare_change): Declare.
5574
5575 2007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
5576
5577 * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
5578
5579 2007-06-26 Steve Ellcey <sje@cup.hp.com>
5580
5581 * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
5582
5583 2007-06-25 Jan Hubicka <jh@suse.cz>
5584
5585 * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
5586 uninlinable call.
5587 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
5588 cgraph_decide_inlining_incrementally): Move uninlinability checks to
5589 places other call site specific checks are performed.
5590
5591 2007-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
5592
5593 PR tree-opt/32421
5594 * tree-vect-transform.c (vectorizable_operation): Convert
5595 POINTER_PLUS_EXPR over to PLUS_EXPR.
5596
5597 2007-06-25 Chao-ying Fu <fu@mips.com>
5598
5599 * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
5600 UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
5601 Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
5602 Document GET_MODE_IBIT, and GET_MODE_FBIT.
5603
5604 * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
5605 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
5606 (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
5607 SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
5608 SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
5609 ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
5610 ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
5611 SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
5612 ALL_FIXED_POINT_MODE_P): New define.
5613 (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
5614 MODE_UACCUM.
5615 (GET_MODE_IBIT, GET_MODE_FBIT): New define.
5616
5617 * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
5618 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
5619 MODE_VECTOR_UACCUM): New mode classes.
5620
5621 * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
5622 UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
5623 Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
5624 USA, UDA, and UTA.
5625
5626 * genmodes.c (struct mode_data): Add ibit and fbit fields.
5627 (blank_mode): Initialize ibit and fbit.
5628 (adj_ibit, adj_fbit): New to adjust ibit and fbit.
5629 (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
5630 MODE_UACCUM.
5631 (new_adjust): Change required_class to required_class_from and
5632 required_class_to for testing within a range.
5633 (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
5634 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
5635 MODE_VECTOR_UACCUM.
5636 (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
5637 (make_fixed_point_mode): New.
5638 (_ADD_ADJUST): Change C to C1 and C2.
5639 (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
5640 use a range for machine classes.
5641 (ADJUST_IBIT, ADJUST_FBIT): New.
5642 (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
5643 CONST_MODE_FBIT.
5644 (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
5645 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
5646 Emit adjustment for ibit and fbit.
5647 (emit_mode_ibit, emit_mode_fbit): New.
5648 (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
5649
5650 2007-06-25 Nathan Froyd <froydnj@codesourcery.com>
5651
5652 * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
5653 as the source of the set.
5654
5655 2007-06-25 Roman Zippel <zippel@linux-m68k.org>
5656
5657 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
5658 FP_REGNO_P): Use IN_RANGE.
5659 (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
5660 (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
5661 (DATA_REG_P): Use DATA_REGNO_P.
5662 (FP_REG_P): Use FP_REGNO_P.
5663 (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
5664 * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
5665 REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
5666
5667 2007-06-24 Jan Hubicka <jh@suse.cz>
5668
5669 PR middle-end/30563
5670 * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
5671
5672 2007-06-24 Sebastian Pop <sebpop@gmail.com>
5673
5674 PR middle-end/32461
5675 * fold-const.c (fold_binary): Strip nops of operand 0
5676 of BIT_NOT_EXPR before calling operand_equal_p.
5677 * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
5678 * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
5679
5680 2007-06-23 Mark Mitchell <mark@codesourcery.com>
5681
5682 * doc/extend.texi: Document that dllimport and dllexport imply
5683 default visibility.
5684 * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
5685 imported or exported declaration, including type declarations.
5686 * c-common.c (handle_visibility_attribute): Check for conflicts
5687 with dllimport/dllexport.
5688 (c_determine_visibility): Handle dllimport/dllexport as an
5689 explicit visibility atttribute.
5690
5691 2007-06-23 Richard Guenther <rguenther@suse.de>
5692
5693 PR tree-optimization/16876
5694 PR middle-end/29478
5695 * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
5696 for CALL_EXPRs.
5697 * tree-inline.c (initialize_inlined_parameters): Do not call
5698 lang_hooks.tree_inlining.convert_parm_for_inlining.
5699 * cgraphbuild.c (initialize_inline_failed): Set inline failed
5700 reason for mismatched types.
5701 * gimplify.c (gimplify_call_expr): Verify the call expression
5702 arguments match the called function type signature. Otherwise
5703 mark the call expression to be not considered for inlining
5704 using CALL_CANNOT_INLINE_P flag.
5705 * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
5706 edges call expression.
5707 (cgraph_decide_inlining_of_small_function): Likewise.
5708 (cgraph_decide_inlining): Likewise.
5709 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
5710 Remove define.
5711 * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
5712 * c-typeck.c (c_convert_parm_for_inlining): Remove.
5713 * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
5714 Remove declaration.
5715 (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
5716 * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
5717 Remove.
5718 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
5719 convert_parm_for_inlining member.
5720
5721 2007-06-23 Richard Earnshaw <rearnsha@arm.com>
5722
5723 PR target/31152
5724 * arm.md (negscc): Match the correct operand for optimized LT0 test.
5725 Remove optimization for GT.
5726
5727 2007-06-23 Kenneth Zadeck <zadeck@naturalbridge.com>
5728
5729 PR middle-end/32437
5730 * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
5731 is a PARALLEL.
5732 (prescan_insns_for_dce): Add extra parameter.
5733
5734 2007-06-23 Jan Hubicka <jh@suse.cz>
5735
5736 PR middle-end/31541
5737 * gimplify.c (mark_addressable): New function.
5738 (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
5739
5740 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
5741
5742 PR middle-end/32374
5743 * expr.c (store_constructor): Do not clobber non-zeroed memory.
5744
5745 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
5746
5747 PR target/32413
5748 * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
5749 moves between MMX/SSE registers to at least 8 units to prevent
5750 ICE caused by non-tieable SI/HI/QImodes in SSE registers.
5751
5752 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
5753
5754 * config/i386/i386.c (override_options): Correct x86_sahf
5755 setting condition.
5756
5757 2007-06-21 David Daney <ddaney@avtrex.com>
5758
5759 PR target/32406
5760 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
5761 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
5762 (exception_receiver): Renamed to ...
5763 (nonlocal_goto_receiver): ... this.
5764
5765 2007-06-22 Roman Zippel <zippel@linux-m68k.org>
5766
5767 * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
5768 (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
5769 partial register accesses.
5770
5771 2007-06-21 Adam Nemet <anemet@caviumnetworks.com>
5772
5773 * fold-const.c (debug_fold_checksum): Move it under
5774 ENABLE_FOLD_CHECKING.
5775
5776 2007-06-21 Sebastian Pop <sebpop@gmail.com>
5777
5778 PR middle-end/20623
5779 * tree.h (debug_fold_checksum): Declared.
5780 * fold-const.c (build_fold_addr_expr_with_type_1): New.
5781 (build_fold_addr_expr_with_type, build_fold_addr_expr): Use
5782 build_fold_addr_expr_with_type_1.
5783 (fold_addr_expr, debug_fold_checksum): New.
5784 (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
5785 (fold_unary, fold_comparison, split_address_to_core_and_offset):
5786 Use fold_addr_expr.
5787
5788 2007-06-21 Sebastian Pop <sebpop@gmail.com>
5789
5790 PR tree-optimization/19590
5791 * tree-vrp.c (adjust_range_with_scev): Set the range when the result
5792 of scev is a constant.
5793 * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
5794
5795 2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
5796
5797 * df-problems.c (df_note_bb_compute): Made computation of live
5798 info consistent with df_lr.
5799
5800 2007-06-21 Richard Guenther <rguenther@suse.de>
5801
5802 PR tree-optimization/32453
5803 * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
5804 for pointer anti-range.
5805
5806 2007-06-21 H.J. Lu <hongjiu.lu@intel.com>
5807
5808 * config/i386/i386.c (processor_target_table): Increase maximum
5809 skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
5810 default 64bit.
5811
5812 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
5813 byte alignment if > 8 byte alignment is preferred.
5814 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
5815
5816 2007-06-21 Jakub Jelinek <jakub@redhat.com>
5817
5818 PR tree-optimization/31866
5819 * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
5820 if ASM_EXPR's input is not a SSA_NAME.
5821
5822 PR middle-end/32362
5823 * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
5824 but decl is a global var, instead return decl.
5825 * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
5826 even for is_global_var decls, if they are private in some outer
5827 context.
5828
5829 2007-06-21 Richard Guenther <rguenther@suse.de>
5830
5831 PR tree-optimization/32451
5832 * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
5833
5834 2007-06-21 Christian Bruel <christian.bruel@st.com>
5835
5836 * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
5837 * config/sh/sh.c (sh_loads_bankedreg_p): New function.
5838 (push_regs): Changed saving order or banked registers.
5839 (sh_expand_epilogue): Likewise.
5840 * config/sh/sh.h (BANKED_REGISTER_P): New macro.
5841 (FIRST_BANKED_REG): Likewise.
5842 (LAST_BANKED_REG): Likewise.
5843 * config/sh/sh.md (banked) New attribute.
5844 (in_delay_slot): Check banked attribute.
5845
5846 2007-06-20 Sebastian Pop <sebpop@gmail.com>
5847
5848 PR tree-optimization/32075
5849 * tree-data-ref.c (subscript_dependence_tester_1,
5850 analyze_miv_subscript, analyze_overlapping_iterations,
5851 add_distance_for_zero_overlaps, build_classic_dist_vector,
5852 subscript_dependence_tester_1, analyze_overlapping_iterations,
5853 subscript_dependence_tester, access_functions_are_affine_or_constant_p,
5854 compute_affine_dependence, compute_all_dependences): Pass loop_nest
5855 to evolution_function_is_affine_multivariate_p.
5856
5857 2007-06-20 Eric Botcazou <ebotcazou@libertysurf.fr>
5858
5859 * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
5860
5861 2007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
5862
5863 PR target/32335
5864 * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
5865 for TARGET_A16.
5866 * config/m32c/prologue.md (epilogue_exitd_16): New.
5867 (epilogue_reit_16): New.
5868 (epilogue_exitd): Rename to epilogue_exitd_24.
5869 (epilogue_reit): Rename to epilogue_reit_24.
5870
5871 2007-06-20 Seongbae Park <seongbae.park@gmail.com>
5872 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
5873
5874 * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
5875 New counters.
5876 * haifa-sched.c (queue_to_ready): Don't requeue next insn
5877 if dbg_cnt (sched_insn) reaches the limit.
5878 (choose_ready): New parameter INSN_PTR and new return value.
5879 (schedule_block): Handle dbg_cnt (sched_insn). Handle
5880 the new return value from choose_ready.
5881 * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
5882 (rest_of_handle_global_alloc): New global_alloc_at_func.
5883
5884 2007-06-20 Adam Nemet <anemet@caviumnetworks.com>
5885
5886 PR tree-optimization/25737
5887 * tree.h (struct tree_struct_field_tag): Add new field alias_set.
5888 (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
5889 * tree-flow.h (struct fieldoff): Add new field alias_set.
5890 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
5891 argument addressable_type. Set alias_set of fieldoff.
5892 * tree-ssa-alias.c (create_sft): Add new argument alias_set.
5893 (create_overlap_variables_for): Pass alias_set from fieldoff to
5894 create_sft.
5895 * alias.c (get_alias_set): Use alias_set from SFT if set.
5896
5897 2007-06-20 Hui-May Chang <hm.chang@apple.com>
5898
5899 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
5900 of a variable as an unsigned HOST_WIDE_INT integer.
5901
5902 2007-06-20 Zdenek Dvorak <dvorakz@suse.cz>
5903
5904 PR rtl-optimization/32405
5905 * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
5906
5907 2007-06-20 Jakub Jelinek <jakub@redhat.com>
5908
5909 * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
5910
5911 PR middle-end/31959
5912 * builtins.c: Include diagnostic.h.
5913 (expand_builtin_expect): Make gcc_assert more permissive.
5914 * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
5915
5916 PR inline-asm/32109
5917 * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
5918 and !allows_mem.
5919
5920 PR middle-end/32285
5921 * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
5922 if ACCUMULATE_OUTGOING_ARGS.
5923
5924 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
5925
5926 * config/m68hc11/m68hc11.c: Include dataflow header file.
5927 (m68hc11_reorg): Port to dataflow.
5928
5929 2007-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
5930
5931 * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
5932 (struct df_problem.free_blocks_on_set_blocks): New field.
5933 (struct dataflow.optional_p): New field.
5934 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
5935 (df_live_set_all_dirty): New function.
5936 * df-scan.c (df_scan_alloc): Initialize optional_p.
5937 (problem_SCAN): Initialize free_blocks_on_set_blocks.
5938 * df-core.c (df_set_blocks): Removed use of
5939 DF_FIRST_OPTIONAL_PROBLEM. Now uses
5940 df_problem.free_blocks_on_set_blocks to determine which blocks are
5941 recycled.
5942 (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
5943 (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now
5944 uses dataflow.optional_p to determine if problem should be
5945 deleted.
5946 (rest_of_handle_df_initialize): Only start live problem if
5947 -02 or above.
5948 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
5949 * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
5950 df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
5951 (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
5952 problem_NOTE): Initialize free_blocks_on_set_blocks.
5953 (df_lr_bb_local_compute): Recompute luids if df_live problem is
5954 not active.
5955 (df_live_set_all_dirty, df_note_alloc): New function.
5956 * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
5957 df_get_live_*.
5958 * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
5959 * postreload.c (reload_combine): Ditto.
5960 * cse.c (cse_extended_basic_block): Ditto.
5961 * regmove.c (mark_flags_life_zones): Ditto.
5962 * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
5963 erase_matching_seqs): Ditto.
5964 * bt-load.c (compute_defs_uses_and_gen): Ditto.
5965 * integrate (allocate_initial_values): Ditto.
5966 * combine.c (reg_dead_at_p): Ditto.
5967 * resource.c (mark_target_live_regs): Ditto.
5968 * sched-rgn.c (check_live_1, update_live_1): Ditto.
5969 * config/sh/sh.c (find_r0_life_regions): Ditto.
5970 * global.c (rest_of_handle_global_alloc): Only add back df_live
5971 for -O > 1.
5972 * local-alloc.c (rest_of_handle_local_alloc): Only remove
5973 df_live for -O > 1.
5974 * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
5975 df_get_live_*.
5976 (if_convert): Make sure df_live is there at -O == 1.
5977 (pass_if_after_combine): Cleanup flags.
5978 * init-regs.c (initialize_uninitialized_regs): Make sure df_live
5979 is there at -O == 1.
5980
5981 2007-06-19 Seongbae Park <seongbae.park@gmail.com>
5982
5983 * config/arm/arm.c (arm_get_frame_offsets): Set
5984 offsets->locals_base to avoid negative stack size.
5985 (thumb1_expand_prologue): Assert on negative stack size.
5986
5987 2007-06-19 Sebastian Pop <sebpop@gmail.com>
5988
5989 PR tree-optimization/32367
5990 * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
5991 of the chrec has no evolution in that loop.
5992 * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
5993
5994 2007-06-19 Bob Wilson <bob.wilson@acm.org>
5995
5996 * config/xtensa/xtensa.c: Include "df.h".
5997 (xtensa_builtin_saveregs): Use adjust_address instead of
5998 change_address.
5999 (xtensa_va_start): Invoke make_tree with sizetype for
6000 expand_builtin_saveregs and then convert the result to a pointer.
6001 Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
6002 (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
6003 Subtract argument size from index value as integers and then use
6004 POINTER_PLUS_EXPR to add the result to the array address.
6005
6006 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
6007
6008 PR target/32335
6009 * config/m32c/m32c.c: Include dataflow header file.
6010 (m32c_emit_prologue): Adjust for prologue insn change.
6011 * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
6012 once inside a PARALLEL. Assume frame size passed in operand 0
6013 includes space to save the fb register.
6014 (prologue_enter_24): Likewise.
6015 (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
6016
6017 2007-06-19 David Daney <ddaney@avtrex.com
6018
6019 PR target/32313
6020 * config/mips/mips.md (cprestore): Mark $gp as used.
6021
6022 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
6023
6024 PR target/32369
6025 * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
6026 (frv_ifcvt_modify_insn): Likewise.
6027
6028 2007-06-19 Richard Guenther <rguenther@suse.de>
6029
6030 * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
6031 only handle positive offsets that fit in a HOST_WIDE_INT.
6032
6033 2007-06-19 Uros Bizjak <ubizjak@gmail.com>
6034
6035 * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
6036 result of rsqrt insn for zero input argument to avoid NaN.
6037
6038 2007-06-19 Richard Guenther <rguenther@suse.de>
6039
6040 PR middle-end/31950
6041 * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
6042
6043 2007-06-19 Jakub Jelinek <jakub@redhat.com>
6044
6045 PR tree-optimization/32353
6046 * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
6047
6048 2007-06-19 Nick Clifton <nickc@redhat.com>
6049
6050 * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
6051
6052 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
6053
6054 PR target/32389
6055 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
6056 * config/i386/i386.c (assign_386_stack_local): Assert that
6057 SLOT_VIRTUAL is valid only before virtual regs are instantiated.
6058 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
6059 Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
6060 * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
6061
6062 2007-06-18 Steve Ellcey <sje@cup.hp.com>
6063
6064 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
6065
6066 2007-06-18 Seongbae Park <seongbae.park@gmail.com>
6067
6068 PR rtl-optimization/32321
6069 * gcse.c (replace_store_insn): Update the note before
6070 calling emit_insn_after.
6071
6072 2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
6073
6074 PR middle-end/32355
6075 * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
6076 cse_main.
6077 * df-problems.c (df_note_bb_compute): Fix dumping info.
6078
6079 2007-06-18 Kazu Hirata <kazu@codesourcery.com>
6080
6081 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
6082 insn with emit_jump_insn.
6083
6084 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
6085
6086 PR tree-optimization/32383
6087 * targhooks.c (default_builtin_reciprocal): Add new bool argument.
6088 * targhooks.h (default_builtin_reciprocal): Update prototype.
6089 * target.h (struct gcc_target): Update builtin_reciprocal.
6090 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
6091 * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
6092 where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal
6093 when fndecl is in BUILT_IN_MD class.
6094 (execute_convert_to_rsqrt): Ditto.
6095
6096 * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
6097 argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
6098 Convert BUILT_IN_SQRTF code only when md_fn is false.
6099
6100 2007-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
6101
6102 * bt-load.c (move_btr_def): Fix the order of arguments
6103 to validate_replace_rtx.
6104
6105 2007-06-18 Nathan Sidwell <nathan@codesourcery.com>
6106
6107 * config/m68k/m68k-devices.def: Add 54450..54455.
6108
6109 2007-06-17 Uros Bizjak <ubizjak@gmail.com>
6110
6111 PR rtl-optimization/32366
6112 * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
6113 FLOAT_EXTEND]: Prevent non-scalar modes from entering
6114 significand_size.
6115
6116 2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
6117
6118 PR middle-end/32349
6119 * modulo-sched (generate_reg_moves): Added rescan parameter and if
6120 this is true, rescan insn being modified.
6121 (sms_schedule): Added rescan parameter.
6122 (rest_of_handle_sms): Moved freeing of dominance info to before
6123 getting out of cfg_layout.
6124
6125 2007-06-17 Nathan Sidwell <nathan@codesourcery.com>
6126
6127 * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
6128 * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
6129 appropriate.
6130
6131 * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
6132 FL_CF_EMAC from the entry for isac.
6133
6134 * config/m68k/predicates.md (const_call_operand): Adjust comment.
6135 (const_sibcall_operand): New.
6136 (sibcall_operand): Use it.
6137 * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
6138 (m68k_isas): ISAC does not imply FPU or EMAC.
6139 (override_options): Add ISA_C logic for symbolic jump & call.
6140
6141 2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
6142
6143 * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
6144 return mode from the builtin itself.
6145 (sparc_fold_builtin): Fix cast of zero constant.
6146
6147 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
6148
6149 * targhooks.c (default_builtin_reciprocal): New default target hook.
6150 * targhooks.h (default_builtin_reciprocal): Add prototype.
6151 * hooks.c (hook_tree_tree_bool_null): Remove hook.
6152 * hooks.h (hook_tree_tree_bool_null): Remove prototype.
6153 * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
6154 default_builtin_reciprocal.
6155
6156 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
6157
6158 PR middle-end/31723
6159 * hooks.c (hook_tree_tree_bool_null): New hook.
6160 * hooks.h (hook_tree_tree_bool_null): Add prototype.
6161 * tree-pass.h (pass_convert_to_rsqrt): Declare.
6162 * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
6163 * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
6164 and convert it to reciprocal a*rfunc(b).
6165 (execute_convert_to_rsqrt): New function.
6166 (gate_convert_to_rsqrt): New function.
6167 (pass_convert_to_rsqrt): New pass definition.
6168 * target.h (struct gcc_target): Add builtin_reciprocal.
6169 * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
6170 (TARGET_INITIALIZER): Initialize builtin_reciprocal with
6171 TARGET_BUILTIN_RECIPROCAL.
6172 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
6173
6174 * config/i386/i386.h (TARGET_RECIP): New define.
6175 * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
6176 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
6177 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
6178 and not optimizing for size.
6179 (*rcpsf2_sse): New insn pattern.
6180 (*rsqrtsf2_sse): Ditto.
6181 (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf
6182 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
6183 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
6184 and not optimizing for size.
6185 (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
6186 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
6187 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
6188 and not optimizing for size.
6189 * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
6190 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
6191 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
6192 and not optimizing for size.
6193 (*sse_rsqrtv4sf2): Do not export.
6194 (sqrtv4sf2): Ditto.
6195 (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf
6196 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
6197 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
6198 and not optimizing for size.
6199 (sqrtv4sf2): Ditto.
6200 * config/i386/i386.opt (mrecip): New option.
6201 * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
6202 (ix86_emit_swsqrtsf): Ditto.
6203 * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
6204 (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
6205 builtin definition.
6206 (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
6207 ix86_expand_unop1_builtin.
6208 (ix86_emit_swdivsf): New function.
6209 (ix86_emit_swsqrtsf): Ditto.
6210 (ix86_builtin_reciprocal): New function.
6211 (TARGET_BUILTIN_RECIPROCAL): Use it.
6212 (ix86_vectorize_builtin_conversion): Rename from
6213 ix86_builtin_conversion.
6214 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
6215 * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
6216 "i386 and x86_64 Options" section.
6217 (Intel 386 and AMD x86_64 Options): Document -mrecip.
6218
6219 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
6220 Zdenek Dvorak <dvorakz@suse.cz>
6221 Richard Guenther <rguenther@suse.de>
6222 Kaz Kojima <kkojima@gcc.gnu.org>
6223
6224 * tree-vrp.c (compare_values_warnv): Convert val2 to
6225 the type of val1.
6226 (extract_range_from_assert): Create
6227 POINTER_PLUS_EXPR for pointer types.
6228 (extract_range_from_binary_expr): Handle
6229 only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
6230 for pointer types.
6231 * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
6232 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
6233 POINTER_PLUS_EXPR as PLUS_EXPR.
6234 (number_of_iterations_lt_to_ne):
6235 For pointer types, use sizetype when
6236 creating MINUS_EXPR/PLUS_EXPRs.
6237 (assert_loop_rolls_lt): For pointer types, use sizetype when
6238 creating MINUS_EXPR/PLUS_EXPRs.
6239 (number_of_iterations_le): Likewise.
6240 (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
6241 (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
6242 like PLUS_EXPR and MINUS_EXPR.
6243 * tree-pretty-print.c (dump_generic_node): Handle
6244 POINTER_PLUS_EXPR.
6245 (op_prio): Likewise.
6246 (op_symbol_1): Likewise.
6247 * optabs.c (optab_for_tree_code): Likewise.
6248 * tree-ssa-loop-manip.c (create_iv): Handle pointer base
6249 specially.
6250 * tree-tailcall.c (process_assignment): Mention
6251 POINTER_PLUS_EXPR in a TODO comment.
6252 * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or
6253 MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
6254 not used with a pointer and an integer type.
6255 * tree-scalar-evolution.c (add_to_evolution_1): Convert the
6256 increment using chrec_convert_rhs instead of chrec_convert.
6257 (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
6258 PLUS_EXPR except for the right hand side's type will be
6259 sizetype.
6260 (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
6261 (fold_used_pointer_cast): Kill.
6262 (pointer_offset_p): Kill.
6263 (fold_used_pointer): Kill.
6264 (pointer_used_p): Kill.
6265 (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
6266 call fold_used_pointer.
6267 (instantiate_parameters_1): Convert the increment
6268 using chrec_convert_rhs instead of chrec_convert.
6269 Handle POINTER_PLUS_EXPR as PLUS_EXPR.
6270 * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
6271 instead of PLUS_EXPR.
6272 (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
6273 PLUS_EXPR for pointers.
6274 (std_gimplify_va_arg_expr): Likewise.
6275 (fold_builtin_memory_op): Likewise.
6276 (fold_builtin_strstr): Likewise.
6277 (fold_builtin_strchr): Likewise.
6278 (fold_builtin_strrchr): Likewise.
6279 (fold_builtin_strpbrk): Likewise.
6280 (expand_builtin_memory_chk): Likewise.
6281 (fold_builtin_memory_chk): Likewise.
6282 (std_expand_builtin_va_start): Use
6283 sizetype for the call to make_tree and then convert
6284 to the pointer type.
6285 (fold_builtin_memchr): Use POINTER_PLUS_EXPR
6286 instead of PLUS_EXPR for adding to a pointer.
6287 (std_gimplify_va_arg_expr): Use fold_build2 for
6288 the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast
6289 the operands to sizetype first and then cast the BIT_AND_EXPR
6290 back to the pointer type.
6291 * fold-const.c (build_range_check): Handle pointer types
6292 specially.
6293 (extract_array_ref): Look for POINTER_PLUS_EXPR instead
6294 of PLUS_EXPR's. Make sure the offset is converted to
6295 sizetype.
6296 (try_move_mult_to_index): Strip the NOPs from the offset.
6297 Remove code argument and replace all uses with PLUS_EXPR.
6298 (fold_to_nonsharp_ineq_using_bound): Handle pointer types
6299 specially. Don't use a pointer type for MINUS_EXPR.
6300 (fold_unary): Handle for (T1)(X op Y),
6301 only p+ as that is the only as that can be handled for
6302 binary operators now.
6303 (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
6304 POINTER_PLUS_EXPR.
6305 <case PLUS_EXPR>: Add folding of PTR+INT into
6306 PTR p+ INT.
6307 Don't call try_move_mult_to_index.
6308 <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
6309 into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
6310 (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
6311 Don't call try_move_mult_to_index.
6312 (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
6313 (tree_expr_nonzero_p): Likewise.
6314 (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
6315 of PLUS_EXPR for the complex expression folding.
6316 * tree-chrec.c (chrec_fold_plus_poly_poly): If the
6317 first chrec is a pointer type, then the second should
6318 be sizetype and not the first's type.
6319 For POINTER_PLUS_EXPR, use a different right hand side type.
6320 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
6321 (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
6322 different right hand side type.
6323 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
6324 (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
6325 instead of PLUS_EXPR.
6326 When either operand is zero, convert the other operand.
6327 (chrec_apply): Use chrec_convert_rhs
6328 on the argument x instead of chrec_convert.
6329 (reset_evolution_in_loop): For pointer types, the new_evol
6330 should be sizetype.
6331 (convert_affine_scev): For POINTER_PLUS_EXPR, use a
6332 different right hand side type.
6333 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
6334 (chrec_convert_rhs): New function.
6335 (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
6336 different right hand side type.
6337 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
6338 * tree-chrec.h (chrec_convert_rhs): New prototype.
6339 (build_polynomial_chrec): For pointer types, the right hand
6340 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
6341 POINTER_PLUS_EXPR instead of PLUS_EXPR's.
6342 Remove subtraction case as it is always addition now.
6343 Make sure the offset is converted to sizetype.
6344 (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
6345 Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
6346 * tree-ssa-loop-ivopts.c (determine_base_object): Abort for
6347 PLUS_EXPR in pointer type.
6348 Handle POINTER_PLUS_EXPR.
6349 (tree_to_aff_combination): Likewise.
6350 (force_expr_to_var_cost): Likewise.
6351 (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
6352 instead of PLUS_EXPR for pointers.
6353 * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
6354 instead of PLUS_EXPR of pointer types.
6355 * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
6356 as PLUS_EXPR.
6357 (check_va_list_escapes): Likewise.
6358 (check_all_va_list_escapes): Likewise.
6359 * dwarf2out.c (loc_descriptor_from_tree_1):
6360 Handle POINT_PLUS_EXPR as a PLUS_EXPR.
6361 * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
6362 (string_constant): Likewise.
6363 * tree-ssa-address.c (tree_mem_ref_addr): When adding
6364 the offset to the base, use POINTER_PLUS_EXPR.
6365 (add_to_parts): Convert the index to sizetype.
6366 (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
6367 * matrix-reorg.c (collect_data_for_malloc_call): Stmt
6368 will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
6369 Offset only holds something for PLUS_EXPR.
6370 (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
6371 a PLUS_EXPR.
6372 (analyze_transpose): POINTER_PLUS_EXPR will only show up now
6373 and not PLUS_EXPR.
6374 (analyze_accesses_for_modify_stmt): Likewise.
6375 Remove comment about the type being integral type as it is
6376 wrong now.
6377 (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
6378 PLUS_EXPR.
6379 (transform_access_sites): POINTER_PLUS_EXPR will only show up now
6380 and not PLUS_EXPR.
6381 Correct the type which the artimentic is done in (is now
6382 sizetype).
6383 Reindent one loop.
6384 * tree-data-ref.c (split_constant_offset): Handle
6385 POINTER_PLUS_EXPR
6386 * tree-affine.c (tree_to_aff_combination): Likewise.
6387 * c-typeck.c (build_unary_op): For pointers create the increment
6388 as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
6389 for pointers.
6390 * gimplify.c (gimplify_self_mod_expr): Create a
6391 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
6392 (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
6393 * tree.def (POINTER_PLUS_EXPR): New tree code.
6394 * tree-predcom.c (ref_at_iteration): If we have a pointer
6395 type do the multiplication in sizetype.
6396 * tree-mudflap.c (mf_xform_derefs_1): Create a
6397 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
6398 * tree-ssa-forwprop.c
6399 (forward_propagate_addr_into_variable_array_index):
6400 Don't expect there to be a cast for the index as that
6401 does not exist anymore.
6402 (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
6403 instead of PLUS_EXPR.
6404 Don't check for the first operand of the POINTER_PLUS_EXPR
6405 was the index as it cannot be.
6406 Call forward_propagate_addr_into_variable_array_index with
6407 the SSA_NAME instead of the statement.
6408 * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
6409 (compare_constant): Likewise.
6410 (copy_constant): Likewise.
6411 (compute_reloc_for_constant): Likewise.
6412 (output_addressed_constants): Likewise.
6413 (initializer_constant_valid_p): Likewise.
6414 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
6415 Convert the MIN/MAX of the inner type to the outer
6416 type before comparing them.
6417 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
6418 POINTER_PLUS_EXPR instead of PLUS_EXPR.
6419 (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
6420 of PLUS_EXPR for pointers.
6421 * tree-inline.c (estimate_num_insns_1): Handle
6422 POINTER_PLUS_EXPR.
6423 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
6424 Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
6425 (bump_vector_ptr): Create a POINTER_PLUS_EXPR
6426 instead of PLUS_EXPR for the pointer increment statement.
6427 (vect_update_ivs_after_vectorizer): For pointer types, create
6428 POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
6429 MULT_EXPR in sizetype.
6430 (vect_gen_niters_for_prolog_loop): Add a cast when creating
6431 byte_misalign.
6432 * tree-object-size.c (plus_expr_object_size): Handle
6433 POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra
6434 code which is trying to figure out which side is a pointer and
6435 is the index.
6436 (check_for_plus_in_loops_1): Likewise.
6437 (check_for_plus_in_loops): Likewise.
6438 * c-common.c (pointer_int_sum): Create a
6439 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
6440 * tree-ssa-structalias.c (handle_ptr_arith): Handle
6441 only POINTER_PLUS_EXPR. Removing all the extra
6442 code which is trying to figure out which side is a pointer and
6443 is the index.
6444 * tree-cfg.c (verify_expr): Add extra checking for pointers and
6445 PLUS_EXPR and MINUS_EXPR.
6446 Also add checking to make sure the operands of POINTER_PLUS_EXPR
6447 are correct.
6448 * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
6449 with make_tree, instead of a pointer type.
6450 * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
6451 for pointers instead of PLUS_EXPR.
6452 (s390_gimplify_va_arg): Likewise.
6453 * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
6454 instead of PLUS_EXPR when doing addition on pointer
6455 types. Use sizetype for the second operand.
6456 (spu_gimplify_va_arg_expr): Likewise.
6457 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use
6458 POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
6459 a pointer. Don't create a BIT_AND_EXPR for pointer types.
6460 * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
6461 for the pointer addition and also use size_int/sizetype
6462 for the offset.
6463 (ix86_gimplify_va_arg): Likewise.
6464 Perform BIT_AND_EXPR on sizetype arguments.
6465 * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
6466 and convert its result to a pointer type. Use POINTER_PLUS_EXPR
6467 for the pointer additions and also use size_int for the offsets.
6468 (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
6469 additions and also use size_int for the offsets. Perform
6470 BIT_AND_EXPR on sizetype arguments.
6471 * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
6472 POINTER_PLUS_EXPR for pointers and create the
6473 BIT_AND_EXPR in sizetype.
6474 * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
6475 instead of PLUS_EXPR for pointer addition.
6476 (rs6000_va_start): Likewise.
6477 Also use sizetype for the offset.
6478 * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
6479 as PLUS_EXPR/MINUS_EXPR.
6480 (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
6481 PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
6482 Don't use BIT_AND_EXPR on a pointer type, convert the
6483 expression to sizetype first.
6484 * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
6485 for pointers.
6486 (mips_gimplify_va_arg_expr): Likewise.
6487 Don't create BIT_AND_EXPR in a pointer type.
6488
6489 2007-06-15 Eric Christopher <echristo@apple.com>
6490
6491 * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
6492 (x86_64-*-darwin*): Ditto.
6493 * config/i386/darwin.h (CRTEND_SPEC): New. Add support
6494 for above.
6495
6496 2007-06-15 Matthew Wilcox <matthew@wil.cx>
6497
6498 * doc/extend.texi: Document behavior of __attribute__((aligned))
6499 on typedefs.
6500
6501 2007-06-15 Mark Mitchell <mark@codesourcery.com>
6502
6503 * rtlanal.c (note_stores): Improve documentation.
6504
6505 2007-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
6506
6507 * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
6508 LOCAL_LABEL_PREFIX): Delete.
6509 * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
6510 (bfin_internal_label): Delete.
6511
6512 2007-06-15 Uros Bizjak <ubizjak@gmail.com>
6513
6514 * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
6515 define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
6516 otherwise define to LIBGCC2_TF_CEXT.
6517 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
6518 (LIBGCC_TF_CEXT): Ditto.
6519 (TF_SIZE): Ditto.
6520
6521 2007-06-14 Seongbae Park <seongbae.park@gmail.com>
6522
6523 PR rtl-optimization/32339
6524 * df-scan.c (df_uses_record): Don't modify flags but just add to
6525 it for df_ref_record.
6526
6527 2007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
6528
6529 * tree-mudflap.c: Fix whitespace issues.
6530
6531 2007-06-15 Kazu Hirata <kazu@codesourcery.com>
6532
6533 * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
6534
6535 2007-06-14 Eric Christopher <echristo@apple.com>
6536
6537 * config/i386/sse.md (movdi_to_sse): Rewrite body.
6538 (movv4sf): Use gcc_unreachable instead of abort.
6539
6540 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
6541
6542 PR target/32268
6543 * config/i386/sfp-machine.h (CMPtype): New define.
6544 (mach stubs): Use CMPtype instead of int as a return type.
6545
6546 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
6547
6548 * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
6549 config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
6550 config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
6551 config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
6552 config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
6553 config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
6554 config/soft-fp/soft-fp.h: Update from glibc CVS.
6555
6556 2007-06-14 Bernd Schmidt <bernd.schmidt@analog.com>
6557
6558 * config/bfin/uclinux.h (MFWRAP_SPEC): New.
6559
6560 2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
6561
6562 PR target/32341
6563 * config/v850/v850.c: Include dataflow header file.
6564 (substitute_ep_register): Fix typo.
6565
6566 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
6567
6568 * configure.ac: Fix earlier checkin.
6569 * configure: Regenerated.
6570
6571 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
6572
6573 * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
6574 * aclocal.m4: Regenerate.
6575 * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
6576 ACX_PROG_CC_WARNINGS_ARE_ERRORS,
6577 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
6578 * configure: Regenerate.
6579 * Makefile.in (LOOSE_WARN): Subst loose_warn.
6580
6581 * Makefile.in (quickstrap): Build libgcc too.
6582
6583 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
6584
6585 * configure.ac: Add --enable-checking=df. Explicitly mention that
6586 the variables are initialized as for "release".
6587 * df-core.c: Use it.
6588 * configure: Regenerate.
6589 * config.in: Regenerate.
6590
6591 2007-06-14 Bob Wilson <bob.wilson@acm.org>
6592
6593 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
6594 validate_replace_rtx instead of replace_rtx.
6595 (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
6596
6597 2007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
6598
6599 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
6600 (DWARF2_UNWIND_INFO): Override default if configured with
6601 SJLJ EH disabled.
6602 * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
6603 (ENDFILE_SPEC): Add crtend.o.
6604 * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
6605 (ENDFILE_SPEC): Add crtend.o.
6606 (TARGET_USE_JCR_SECTION): Define.
6607 (MD_UNWIND_SUPPORT): Define for 32-bit target.
6608
6609 * config/i386/cygming-crtbegin.c: New file.
6610 * config/i386/cygming-crtend.c: New file.
6611
6612 2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com>
6613
6614 * config/i386/w32-unwind.h: New file.
6615
6616 2007-06-13 Eric Christopher <echristo@apple.com>
6617
6618 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
6619 the user set a value below STACK_BOUNDARY.
6620
6621 2007-06-13 Thiemo Seufer <ths@networkno.de>
6622
6623 * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
6624 imply -lpthread for -pthread.
6625
6626 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
6627
6628 * basic-block.h: Remove the prototype for
6629 free_basic_block_vars.
6630 * cfglayout.h: Remove the prototype for
6631 insn_locators_initialize.
6632 * tree.h: Remove the prototype for emit_line_note.
6633
6634 * tree-ssa-pre.c (mergephitemp): Remove.
6635 (init_pre): Don't use mergephitemp.
6636
6637 2007-06-13 Eric Christopher <echristo@apple.com>
6638
6639 * config/i386/i386.c (override_options): If we've specified
6640 an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
6641
6642 2007-06-13 Bob Wilson <bob.wilson@acm.org>
6643
6644 * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
6645 is defined.
6646
6647 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
6648
6649 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
6650 * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
6651 (eh_store_handler): New pattern.
6652 (eh_return): Emit it instead of a plain move.
6653
6654 2007-06-13 Uros Bizjak <ubizjak@gmail.com>
6655
6656 * config/i386/i386.c (ix86_init_mmx_sse_builtins)
6657 [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
6658 [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
6659 def_builtin_const.
6660
6661 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
6662
6663 * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
6664 (find_next_insn_start, find_load): New functions.
6665 (bfin_reorg): Use them to deal with the fact that parallel insns are
6666 no longer represented as a SEQUENCE.
6667
6668 2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
6669
6670 * config/sparc/sparc.c (sparc_override_options): Initialize
6671 fpu mask correctly.
6672
6673 2007-06-13 Dave Korn <dave.korn@artimi.com>
6674
6675 * config/i386/i386.c (ix86_eax_live_at_start_p): Use
6676 df_get_live_out.
6677
6678 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
6679
6680 * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
6681 config/sh/divcost-analysis, dbgcnt.def, df-core.c,
6682 df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
6683 tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
6684 tree-vect-transform.c: Fix comment typos. Follow spelling
6685 conventions.
6686
6687 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
6688
6689 * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
6690 to the exit block use set.
6691 (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring".
6692 * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
6693 * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
6694
6695 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
6696
6697 * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
6698 * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
6699 to indicate an error.
6700 (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
6701 New functions.
6702 (dbg_cnt_process_opt): Print an error on a bad argument.
6703 * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
6704 * common.opt (-fdbg-cnt-list): New.
6705 * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
6706
6707 2007-06-12 Eric Botcazou <ebotcazou@adacore.com>
6708
6709 * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
6710 flag on ref-all pointers.
6711
6712 2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
6713
6714 PR middle-end/31579
6715 * expr.c (expand_expr_addr_expr_1): Call expand_expr
6716 for the offset with the modifier as EXPAND_INITIALIZER
6717 if the modifier is EXPAND_INITIALIZER.
6718 (expand_expr_real_1 <case INTEGER_CST>): Don't force to
6719 a register if we had an overflow.
6720
6721 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6722
6723 * real.c (real_isfinite): New.
6724 (real_sqrt): Use it.
6725 * real.h (real_isfinite): New.
6726 * builtins.c: Use it.
6727
6728 2007-06-12 Ian Lance Taylor <iant@google.com>
6729 Daniel Berlin <dberlin@dberlin.org>
6730
6731 PR libstdc++/29286
6732 * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
6733 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
6734 (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
6735 (DECL_NO_TBAA_P): Define.
6736 (struct tree_decl_common): Add no_tbaa_flag field.
6737 * tree-ssa-structalias.c (struct variable_info): Add
6738 no_tbaa_pruning field.
6739 (new_var_info): Initialize no_tbaa_pruning field.
6740 (unify_nodes): Copy no_tbaa_pruning field.
6741 (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
6742 (dump_solution_for_var): Print no_tbaa_pruning flag.
6743 (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all
6744 callers.
6745 (compute_tbaa_pruning): New static function.
6746 (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
6747 Call compute_tbaa_pruning.
6748 * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
6749 * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
6750 * gimple-low.c (lower_stmt): Likewise.
6751 * tree-gimple.c (is_gimple_stmt): Likewise.
6752 * tree-ssa-operands.c (get_expr_operands): Likewise.
6753 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6754 * tree-inline.c (estimate_num_insns_1): Likewise.
6755 (copy_result_decl_to_var): Likewise.
6756 * expr.c (expand_expr_real_1): Likewise.
6757 * tree-pretty-print.c (dump_generic_node): Likewise.
6758 * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
6759 * omp-low.c (omp_copy_decl_2): Likewise.
6760 * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
6761 * doc/c-tree.texi (Expression trees): Document
6762 CHANGE_DYNAMIC_TYPE_EXPR.
6763
6764 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6765
6766 * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
6767 with !HONOR_NANS and !HONOR_INFINITIES.
6768 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6769
6770 2007-06-12 Tristan Gingold <gingold@adacore.com>
6771
6772 * gcov.c: Comments updated.
6773 (source_info): Add file_time field.
6774 (source_index): New variable.
6775 (mutiple_files): New variable.
6776 (generate_results): New function extracted from process_file.
6777 (process_file): Save and restore chain of functions, generate
6778 results and free structures only if not merging results.
6779 (release_structures): File names are now freed in create_file_names
6780 (create_file_names): Free previous file names.
6781 (find_source): File date is now read here and modifications in
6782 source files is checked here.
6783 (read_graph_file): Only reverse order of functions for the current
6784 object file.
6785 (make_gcov_file_name): Do not generate long names if input_name is
6786 NULL.
6787 (output_lines): If merging results do not display graph, data and
6788 runs informations.
6789 Checking source file modification is done in find_source.
6790
6791 * doc/gcov.texi: Append an s to sourcefile.
6792
6793 2007-06-12 Bernd Schmidt <bernd.schmidt@analog.com>
6794
6795 * config/bfin/bfin.md (UNSPEC_NOP): New constant.
6796 (forced_nop): New pattern.
6797 * config/bfin/bfin.c: Include "df.h".
6798 (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
6799 (bfin_discover_loop): Use df_get_live_in instead of
6800 global_live_at_start.
6801 (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call
6802 df_analyze when done.
6803 (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
6804 the insns. Use QImode for the final insn in a bundle. Call
6805 df_insn_rescan on generated NOPs; use gen_forced_nop instead of
6806 gen_nop.
6807 (reorder_var_tracking_notes): New function.
6808 (bfin_reorg): Pass no argument to split_all_insns. Don't call
6809 update_life_info. Call df_analyze after scheduling and bundle
6810 generation. Call reorder_var_tracking_notes if generating these
6811 notes. Call df_finish_pass at the end.
6812
6813 2007-06-12 Dirk Mueller <dmueller@suse.de>
6814
6815 * optabs.c (debug_optab_libfuncs): fix gcc_assert to
6816 a comparison, not an assignment.
6817
6818 2007-06-12 Olivier Hainque <hainque@adacore.com>
6819
6820 * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
6821 Request walking the subtrees only, leaving the current is_lhs/val_only
6822 untouched.
6823 (convert_non_local_reference): Likewise.
6824
6825 2007-06-12 Nathan Sidwell <nathan@codesourcery.com>
6826
6827 * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
6828
6829 2007-06-12 Richard Guenther <rguenther@suse.de>
6830
6831 PR tree-optimization/15353
6832 PR tree-optimization/31657
6833 * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
6834 * timevar.def: Add TV_TREE_IFCOMBINE.
6835 * tree-pass.h (pass_tree_ifcombine): Declare.
6836 * tree-ssa-ifcombine.c: New file.
6837 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
6838 * tree-flow.h (blocks_in_phiopt_order): Declare.
6839 * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
6840 (tree-ssa-ifcombine.o): New dependencies.
6841
6842 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
6843
6844 PR rtl-optimization/32293
6845 * combine.c (simplify_if_then_else): Truncate return from
6846 nonzero_bits() to correct mode.
6847
6848 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
6849
6850 * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
6851 into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
6852
6853 2007-06-11 Diego Novillo <dnovillo@google.com>
6854
6855 * Makefile.in (reload1.o-warn): Remove.
6856
6857 2007-06-11 Seongbae Park <seongbae.park@gmail.com>
6858
6859 * combine.c (subst): Use reg_overlap_mentioned_p
6860 instead of comparing register numbers directly.
6861
6862 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
6863
6864 * reload1.c (mark_home_live_1): Use the mode parameter.
6865
6866 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
6867
6868 * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
6869 df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
6870 word "deferred".
6871 * df-core.c: Ditto.
6872
6873 2007-06-11 Daniel Berlin <dberlin@dberlin.org>
6874
6875 * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
6876
6877 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
6878
6879 * config/i386/i386.md ("*movtf_internal): Penalize moves to and
6880 from integer registers.
6881 (FP mode splitters): Handle TFmode.
6882
6883 2007-06-11 Eric Botcazou <ebotcazou@adacore.com>
6884
6885 * tree-ssa-structalias.c (find_what_p_points_to): Return false
6886 for ref-all pointers that point-to anything.
6887
6888 2007-06-11 Joseph Myers <joseph@codesourcery.com>
6889
6890 * config/arm/arm.c (arm_output_dwarf_dtprel,
6891 TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
6892
6893 2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
6894
6895 * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
6896 movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
6897 to memory moves.
6898
6899 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
6900
6901 * tree.c (signed_or_unsigned_type_for): New.
6902 (unsigned_type_for): Use signed_or_unsigned_type_for.
6903 (signed_type_for): Use signed_or_unsigned_type_for.
6904 * tree.h (signed_or_unsigned_type_for): New.
6905 (get_signed_or_unsigned_type): Remove.
6906 * fold-const.c (fold_negate_expr): Use signed_type_for instead of
6907 lang_hooks.types.signed_type
6908 (size_diffop): Likewise.
6909 (all_ones_mask_p): Likewise.
6910 (build_range_check): Likewise.
6911 (fold_cond_expr_with_comparison): Likewise.
6912 (fold_cond_expr_with_comparison): Likewise.
6913 (unextend): Likewise.
6914 (extract_muldiv_1): Likewise.
6915 (fold_single_bit_test_into_sign_test): Likewise.
6916 (fold_binary): Likewise.
6917 (fold_ternary): Likewise.
6918 (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
6919 instead of get_signed_or_unsigned_type.
6920 * c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
6921 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
6922 * expr.c (signed_or_unsigned_type_for): Use
6923 signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
6924 * langhooks.c (get_signed_or_unsigned_type): Remove.
6925 (lhd_signed_or_unsigned_type): Remove.
6926 * langhooks.h (lang_hooks_for_types): Remove signed_type and
6927 signed_or_unsigned_type.
6928 (lhd_signed_or_unsigned_type): Remove.
6929 * expmed.c (make_tree): Use signed_type_for instead of
6930 lang_hooks.types.signed_type.
6931 * c-common.c (same_scalar_type_ignoring_signedness): Use
6932 c_common_signed_type instead of lang_hooks.types.signed_type.
6933 (c_common_unsigned_type): New.
6934 (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
6935 (shorten_compare): Use c_common_unsigned_type instead of
6936 c_common_signed_or_unsigned_type.
6937 (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
6938 unsigned_type_for.
6939 * convert.c (convert_to_integer): Use signed_type_for instead of
6940 lang_hooks.types.signed_type.
6941 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
6942 (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
6943 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
6944 * c-format.c (check_format_types): Use c_common_unsigned_type
6945 instead of unsigned_type_for.
6946 * c-decl.c (groakdeclarator): Likewise.
6947 * c-typeck.c (convert_for_assignment): Likewise.
6948 * c-common.h (c_common_unsigned_type): New.
6949
6950 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
6951
6952 PR target/32280
6953 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
6954 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
6955
6956 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
6957
6958 PR middle-end/32279
6959 * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
6960 into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
6961
6962 2007-06-10 Jan Sjodin <jan.sjodin@amd.com>
6963 Sebastian Pop <sebpop@gmail.com>
6964
6965 * lambda-code.c (remove_iv): New.
6966 (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
6967
6968 2007-06-10 Zdenek Dvorak <dvorakz@suse.cz>
6969
6970 * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
6971 * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
6972 * tree-ssa-loop-prefetch.c: Include optabs.h.
6973 (FENCE_FOLLOWING_MOVNT): New macro.
6974 (struct mem_ref): Add independent_p and storent_p fields.
6975 (record_ref): Initalize the new fields.
6976 (gather_memory_references_ref): Return true if the reference
6977 could be analysed.
6978 (gather_memory_references): Check whether all memory accesses
6979 in loop were recorded.
6980 (should_issue_prefetch_p): Return false for nontemporal stores.
6981 (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
6982 may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
6983 (determine_loop_nest_reuse): Detect independent memory references.
6984 (loop_prefetch_arrays): Call mark_nontemporal_stores.
6985 * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
6986 * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
6987 * config/i386/i386.h (x86_mfence): Declare.
6988 (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
6989 * config/i386/i386.c (x86_mfence): New variable.
6990 (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
6991
6992 * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
6993 * optabs.c (init_optabs): Initialize storent_optab.
6994 * optabs.h (enum optab_index): Add OTI_storent.
6995 (storent_optab): Declare.
6996 * genopinit.c (optabs): Add initialization for storent_optab.
6997 * tree.h (MOVE_NONTEMPORAL): New macro.
6998 * expr.c (expand_assignment, store_expr, store_constructor_field,
6999 store_constructor, store_field, expand_expr_real_1): Propagate
7000 nontemporality of the expanded store.
7001 (emit_storent_insn): New function.
7002 * expr.h (expand_assignment, store_expr): Declaration changed.
7003 * function.c (assign_parm_setup_reg): Pass false as nontemporality
7004 to expand_assignment.
7005 * stmt.c (expand_asm_expr): Ditto.
7006 * calls.c (initialize_argument_information): Pass false as
7007 nontemporality to store_expr.
7008 * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
7009 storentsi): New.
7010
7011 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
7012
7013 * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
7014 parameter, use it.
7015 (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
7016
7017 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
7018
7019 * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
7020 and allow DECL_P here.
7021
7022 2007-06-09 Zdenek Dvorak <dvorakz@suse.cz>
7023
7024 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
7025 follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
7026 track of the size of the expression.
7027 * cfghooks.c (merge_blocks): Remove block from loops structure only
7028 after call of the merge_blocks hook.
7029
7030 2007-06-09 Tom Tromey <tromey@redhat.com>
7031
7032 * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
7033 (deprecated_state): Removed.
7034 (start_decl): Update.
7035 (enum deprecated_states): Moved earlier.
7036 (groktypename): Update.
7037 (push_parm_decl): Likewise.
7038 (grokfield): Likewise.
7039 (start_function): Likewise.
7040
7041 2007-06-09 Ian Lance Taylor <iant@google.com>
7042
7043 PR tree-optimization/32169
7044 * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
7045 CONVERT_EXPR, check whether min and max both converted to an
7046 overflow infinity representation.
7047
7048 2007-06-08 Eric Botcazou <ebotcazou@adacore.com>
7049
7050 * reload1.c (fixup_abnormal_edges): Clear bb field for insns
7051 not inserted on the edge.
7052
7053 2007-06-08 Bob Wilson <bob.wilson@acm.org>
7054
7055 * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
7056 instructions if they are supported.
7057 (__divsi3, __umodsi3, __modsi3): Likewise.
7058 (__ashldi3, __ashrdi3, __lshrdi3): New.
7059 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
7060
7061 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
7062 Tony Linthicum <tony.linthicum@amd.com>
7063
7064 * doc/invoke.texi: Add fvect-cost-model flag.
7065 * common.opt (fvect-cost-model): New flag.
7066 * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
7067 cost fields in stmt_vec_info struct for STMT.
7068 * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
7069 fields in stmt_vec_info struct and access functions for the same.
7070 (TARG_COND_BRANCH_COST): Define cost of conditional branch.
7071 (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
7072 load, store and vector to scalar operation.
7073 (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
7074 (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
7075 (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
7076 (TARG_VEC_STORE_COST): Define cost of vector store.
7077 (vect_estimate_min_profitable_iters): Define new function.
7078 * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
7079 check to evaluate if loop iterations are less than minimum profitable
7080 iterations determined by cost model or minimum vect loop bound defined
7081 by user, whichever is more conservative.
7082 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
7083 run-time check to evaluate if loop iterations are less than minimum
7084 profitable iterations determined by cost model or minimum vect loop
7085 bound defined by user, whichever is more conservative.
7086 (vect_estimate_min_profitable_iterations): New function to estimate
7087 mimimimum iterartions required for vector version of loop to be
7088 profitable over scalar version.
7089 (vect_model_reduction_cost): New function.
7090 (vect_model_induction_cost): New function.
7091 (vect_model_simple_cost): New function.
7092 (vect_cost_strided_group_size): New function.
7093 (vect_model_store_cost): New function.
7094 (vect_model_load_cost): New function.
7095 (vectorizable_reduction): Call vect_model_reduction_cost during
7096 analysis phase.
7097 (vectorizable_induction): Call vect_model_induction_cost during
7098 analysis phase.
7099 (vectorizable_load): Call vect_model_load_cost during analysis phase.
7100 (vectorizable_store): Call vect_model_store_cost during analysis phase.
7101 (vectorizable_call, vectorizable_assignment, vectorizable_operation,
7102 vectorizable_promotion, vectorizable_demotion): Call
7103 vect_model_simple_cost during analysis phase.
7104
7105 2007-06-08 Simon Baldwin <simonb@google.com>
7106
7107 * reg-stack.c (get_true_reg): Readability change. Moved default case
7108 label into direct switch statement scope.
7109
7110 2007-06-08 Simon Baldwin <simonb@google.com>
7111
7112 * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
7113 in gcc_assert() with '==' comparison.
7114
7115 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
7116
7117 * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
7118 TARGET_ABM handling of x86_popcnt variable.
7119
7120 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
7121
7122 * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
7123 __builtin_copysignq and __builtin_infq built-in functions.
7124
7125 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
7126
7127 * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
7128 SSE4.2 section. Correct built-in function names in SSE4A section.
7129
7130 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
7131
7132 PR tree-optimization/32243
7133 * tree-vect-transform.c (vectorizable_type_promotion): Move check
7134 for ncopies after ratio check between nunits_out and nunits_in.
7135 (vectorizable_type_demotion): Remove single-use variable "scalar_type".
7136
7137 2007-06-08 Dorit Nuzman <dorit@il.ibm.com>
7138
7139 PR tree-optimization/32224
7140 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
7141 vectorization upon a non GIMPLE_MODIFY_STMT.
7142
7143 2007-06-08 Christian Bruel <christian.bruel@st.com>
7144
7145 PR target/29953
7146 * config/sh/sh.md (doloop_end): New pattern and splitter.
7147 * loop-iv.c (simple_rhs_p): Check for hardware registers.
7148
7149 2007-06-08 Zdenek Dvorak <dvorakz@suse.cz>
7150
7151 PR middle-end/32209
7152 * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
7153 functions.
7154 (verify_dominators): Do not change dominance tree.
7155
7156 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
7157
7158 * config/sh/constraints.md: New file.
7159 * config/sh/sh.c: Include tm-constrs.h.
7160 (reg_class_from_letter): Remove.
7161 (prepare_cbranch_operands): Use satisfies_constraint_*
7162 function instead of macro.
7163 (andcosts, broken_move, sh_secondary_reload): Likewise.
7164 * config/sh/predicates.md (trapping_target_operand): Likewise.
7165 (and_operand, arith_operand, arith_reg_or_0_operand,
7166 cmp_operand, logical_operand, target_operand,
7167 ua_address_operand, ua_offset, xor_operand): Likewise.
7168 * config/sh/sh.md: Include constraints.md.
7169 (*movsicc_t_false): Use satisfies_constraint_* function
7170 instead of macro.
7171 (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
7172 lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
7173 movdi_const_16bit+1, beq, bne, *ptb): Likewise.
7174 * config/sh/sh.h (reg_class_from_letter): Remove prototype.
7175 (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
7176 (REG_CLASS_FROM_CONSTRAINT): Remove.
7177 (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
7178 CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
7179 CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
7180 CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
7181 CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
7182 (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
7183 function instead of macro.
7184 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
7185 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
7186 EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
7187 EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
7188 (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
7189 (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
7190 (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
7191 (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
7192 (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
7193 EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
7194 EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
7195 EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
7196 EXTRA_CONSTRAINT_STR): Likewise.
7197 (GO_IF_LEGITIMATE_INDEX): Fix indentation.
7198
7199 2007-06-07 Geoffrey Keating <geoffk@apple.com>
7200
7201 * config/i386/darwin.h (STACK_BOUNDARY): Define.
7202
7203 2007-06-07 Simon Martin <simartin@users.sourceforge.net>
7204
7205 PR c++/30759
7206 * c-common.h (flag_cpp0x): Replaced by...
7207 (cxx_dialect): ... this new variable specifying the C++ dialect that
7208 is used.
7209 * c-common.c (flag_cpp0x): Removed.
7210 (cxx_dialect): Defined.
7211 * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
7212 cxx_dialect.
7213 * c-opts.c (c_common_post_options): Likewise.
7214 (set_std_cxx98): Set cxx_dialect to cxx98.
7215 (set_std_cxx0x): Set cxx_dialect to cxx0x.
7216
7217 2007-06-07 Geoffrey Keating <geoffk@apple.com>
7218 Hui-May Chang <hm.chang@apple.com>
7219
7220 * doc/invoke.texi (Darwin Options): Update documentation for
7221 -mmacosx-version-min.
7222 * config.gcc (*-*-darwin*): Set extra_gcc_objs.
7223 * config/darwin-driver.c: New file.
7224 * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
7225 * config/t-darwin (darwin-driver.o): New rule.
7226
7227 * config/darwin-c.c (version_as_macro): Ignore low digit.
7228
7229 2007-06-07 Uros Bizjak <ubizjak@gmail.com>
7230
7231 * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
7232 (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
7233 (CSGNMODE): New mode macro.
7234 (CSGNVMODE): New mode attribute.
7235 (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize
7236 expander using CSGNMODE mode macro. Handle TFmode.
7237 (copysign<mode>3_const): Rename from copysignsf3_const and
7238 copysigndf3_const. Macroize pattern using CSGNMODE mode macro.
7239 Handle TFmode.
7240 (copysign<mode>3_var): Rename from copysignsf3_var and
7241 copysigndf3_var. Macroize pattern using CSGNMODE mode macro.
7242 Handle TFmode.
7243 (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
7244 mode macro. Handle TFmode.
7245 * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
7246 (iortf3, *iortf3): Ditto.
7247 (xortf3, *xortf3): Ditto.
7248 * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
7249 TFmode and TImode masks.
7250 (ix86_expand_copysign): Expand TFmode copysign insn.
7251 (IX86_BUILTIN_INFQ): New.
7252 (IX86_BUILTIN_FABSQ): Ditto.
7253 (IX86_BUILTIN_COPYSIGNQ): Ditto.
7254 (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
7255 [__builtin_fabsq]: Ditto.
7256 [__builtin_copysignq]: Ditto.
7257 (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
7258 [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
7259 [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
7260 ix86_expand_binop_builtin().
7261
7262 2007-06-07 Bob Wilson <bob.wilson@acm.org>
7263
7264 * config/xtensa/lib1funcs.asm: Clean up whitespace.
7265
7266 2007-06-07 Steve Ellcey <sje@cup.hp.com>
7267
7268 PR target/31850
7269 * rtl.h (push_to_sequence2): New.
7270 * emit-rtl.c (push_to_sequence2): New.
7271 * function.c (assign_parm_data_all): Add new fields.
7272 (assign_parm_setup_block): Call push_to_sequence2 instead of
7273 push_to_sequence.
7274 (assign_parm_setup_reg): Ditto.
7275 (assign_parm_setup_stack): Ditto.
7276 (assign_parms_unsplit_complex): Ditto.
7277 (assign_parms): Change field name.
7278
7279 2007-06-07 Zdenek Dvorak <dvorakz@suse.cz>
7280
7281 PR tree-optimization/32220
7282 * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
7283 phi node is reached before defining statement.
7284
7285 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
7286
7287 PR tree-opt/32231
7288 * tree-vect-transform.c (vectorizable_call): Call update_stmt
7289 after changing the right hand side of the assignment.
7290
7291 2007-06-06 Eric Christopher <echristo@apple.com>
7292
7293 * config.gcc (i?86-*-darwin*): Remove arch parameter.
7294 (x86_64-*-darwin*): Ditto.
7295 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
7296 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
7297
7298 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
7299
7300 * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
7301 coding conventions.
7302 (add_key): Likewise.
7303 * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
7304 * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
7305 variable names.
7306 * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
7307 macros.
7308 (add_cost_one_coalesce): Likewise.
7309 * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
7310 variable names. Rename orig to orig_name for consistency.
7311 * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
7312 coding conventions.
7313 (cprop_into_successor_phis): Avoid using C++ keywords as variable
7314 names.
7315 (record_equivalences_from_stmt): Likewise.
7316 * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
7317 the coding conventions.
7318 (memory_ssa_name_same): Likewise.
7319 (dse_optimize_stmt): Likewise.
7320 (dse_record_phis): Likewise.
7321 (dse_finalize_block): Likewise.
7322 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
7323 keywords as variable names.
7324 (may_move_till): Cast according to the coding conventions.
7325 (force_move_till_expr): Avoid using C++ keywords as variable names.
7326 (force_move_till): Cast according to the coding conventions.
7327 (memref_hash): Likewise.
7328 (memref_eq): Likewise.
7329 (gather_mem_refs_stmt): Likewise.
7330 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
7331 using C++ keywords as variable names.
7332 (idx_find_step): Cast according to the coding conventions.
7333 (idx_record_use): Likewise.
7334 (find_depends): Likewise.
7335 (prepare_decl_rtl): Likewise.
7336 (mbc_entry_hash): Likewise.
7337 (mbc_entry_eq): Likewise.
7338 * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
7339 (simplify_replace_tree): Avoid using C++ keywords as variable names.
7340 (idx_infer_loop_bounds): Cast according to the coding conventions.
7341 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
7342 * tree-ssa-math-opts.c (occ_new ): Likwise.
7343 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
7344 macros.
7345 * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
7346 variable names.
7347 (add_use_op): Likewise.
7348 (add_vop): Likewise.
7349 (add_vuse_op): Likewise.
7350 (add_vdef_op): Likewise.
7351 (get_expr_operands): Likewise.
7352 (push_stmt_changes): Use type safe memory macros.
7353 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
7354 keywords as variable names.
7355 (conditional_replacement): Likewise.
7356 (minmax_replacement): Likewise.
7357 (abs_replacement): Likewise.
7358 * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
7359 coding conventions.
7360 (insert_fake_stores): Avoid using C++ keywords as variable names.
7361 * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
7362 conventions.
7363 * tree-ssa-structalias.c (heapvar_lookup): Likewise.
7364 (heapvar_insert): Use type safe memory macros.
7365 (new_var_info): Cast according to the coding conventions.
7366 (new_constraint): Likewise.
7367 (remove_preds_and_fake_succs): Use type safe memory macros.
7368 * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
7369 conventions.
7370 (thread_single_edge): Likewise.
7371 (thread_through_loop_header): Likewise.
7372
7373 2007-06-06 Eric Christopher <echristo@apple.com>
7374
7375 * config/i386/i386.c (override_options): Move handling
7376 of TARGET_SUBTARGET* earlier.
7377
7378 2007-06-06 Paolo Bonzini <bonzini@gnu.org>
7379
7380 * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
7381 use %n on printf.
7382
7383 2007-06-06 Zdenek Dvorak <dvorakz@suse.cz>
7384
7385 * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
7386 emited outside of basic block.
7387 * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
7388 the created blocks.
7389 * rtl.h (delete_insn_chain): Declaration changed.
7390 * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
7391 non-removed insns.
7392 (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
7393 (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
7394 rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
7395 to delete_insn_chain.
7396 (rtl_verify_flow_info_1): Verify that the insns in header and footer
7397 do not have bb field set.
7398 (rtl_verify_flow_info): Verify that insns between basic blocks do not
7399 have bb field set.
7400 * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
7401 * cfgcleanup.c (try_optimize_cfg): Ditto.
7402
7403 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
7404
7405 * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
7406 (lambda_body_vector_new): Use type safe memory macros.
7407 (lambda_linear_expression_new): Likewise.
7408 (lambda_loopnest_new): Likewise.
7409 (lambda_lattice_new): Likewise.
7410 (replace_uses_equiv_to_x_with_y): Cast according to the coding
7411 conventions. Use type safe memory macros.
7412 * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
7413 (lambda_body_vector_s): Likewise.
7414 * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
7415 * lambda-trans.c (lambda_trans_matrix_new): Likewise.
7416
7417 2007-06-06 Richard Guenther <rguenther@suse.de>
7418
7419 * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
7420 if we need to schedule cfg_cleanup.
7421 (tree_ssa_forward_propagate_single_use_vars): Do so.
7422
7423 2007-06-06 Ian Lance Taylor <iant@google.com>
7424
7425 * fold-const.c (merge_ranges): If range_successor or
7426 range_predecessor fail, just return 0.
7427
7428 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
7429
7430 PR tree-optimization/32216
7431 * tree-vectorizer.c (supportable_widening_operation): Determine
7432 signedness of FIX_TRUNC_EXPR from output operand.
7433 (supportable_narrowing_operation): Ditto.
7434 * tree-vect-generic.c (expand_vector_operations_1): Determine
7435 signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
7436 from input operand.
7437
7438 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
7439
7440 * config/i386/i386.c (enum pta_flags): Move out of struct scope...
7441 (struct pta): ...from here. Change flags to unsigned to avoid
7442 excessive casting (as it is used as a bit mask).
7443 (override_options): Add casts according to the coding convenventions.
7444 (x86_64_elf_unique_section): Likewise.
7445 (examine_argument): Avoid using C++ keywords as variable names.
7446 (construct_container): Likewise.
7447 (legitimize_pic_address): Likewise.
7448 (get_dllimport_decl): Cast according to the coding conventions. Use
7449 type safe memory macros.
7450 (legitimize_address): Cast according to the coding conventions.
7451 (emit_i387_cw_initialization): Corrected the type of slot to enum
7452 ix86_stack_slot.
7453 (ix86_init_machine_status): Use type safe memory macros.
7454 (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
7455 (bdesc_pcmpistr): Likewise.
7456 (bdesc_crc32): Likewise.
7457 (bdesc_sse_3arg): Likewise.
7458 (bdesc_2arg): Likewise.
7459 (bdesc_1arg): Likewise.
7460 (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
7461 (ix86_expand_sse_pcmpistr): Likewise.
7462 (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
7463 (ix86_builtin_vectorized_function): Change the type of fn to unsigned
7464 int to match the langhook definition.
7465 (ix86_builtin_conversion): Change the type of code to unsigned init to
7466 match the langhook definition.
7467 (ix86_preferred_reload_class): Avoid using C++ keywords as variable
7468 names.
7469 (ix86_preferred_output_reload_class): Likewise.
7470 (ix86_cannot_change_mode_class): Likewise.
7471 (ix86_memory_move_cost): Likewise.
7472 (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
7473 avoid excessive casting later on.
7474 (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
7475
7476 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
7477
7478 * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
7479 as flags setting insn.
7480 (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
7481
7482 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
7483
7484 * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
7485 (UNSPEC_ROUND): New.
7486 ("sse4_1_round<mode>2"): New insn pattern.
7487 ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
7488 SSE4.1 targets.
7489 ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize
7490 expander using SSEMODEF mode macro. Expand using
7491 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
7492 ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize
7493 expander using SSEMODEF mode macro. Expand using
7494 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
7495 ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize
7496 expander using SSEMODEF mode macro. Expand using
7497 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
7498 * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
7499 UNSPEC_ROUND instead of UNSPEC_ROUNDP.
7500 ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
7501 UNSPEC_ROUNDS.
7502
7503 2007-06-06 Jan Sjodin <jan.sjodin@amd.com>
7504 Sebastian Pop <sebpop@gmail.com>
7505
7506 * lambda.h (build_linear_expr): New.
7507 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
7508 Use build_linear_expr, call fold and force_gimple_operand.
7509 (lambda_loopnest_to_gcc_loopnest): Check that there is
7510 something to insert.
7511 * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
7512
7513 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
7514
7515 PR preprocessor/23479
7516 * doc/extend.texi: Document the 0b-prefixed binary integer
7517 constant extension.
7518
7519 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
7520
7521 PR tree-optimization/32215
7522 * tree-vectorizer.c (supportable_widening_operation): Return false
7523 for unsupported FIX_TRUNC_EXPR tree code.
7524 (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
7525
7526 2007-06-06 Nathan Froyd <froydnj@codesourcery.com>
7527
7528 * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
7529 register on SPE targets. Change documentation to reflect
7530 reality.
7531 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
7532 Change FIXED_SCRATCH to 14 and document why we're keeping r14
7533 out of the register allocation pool.
7534 (rs6000_reg_live_or_pic_offset_p): New function.
7535 (rs6000_emit_prologue): Move the actual saving of LR up to free
7536 r0 for holding r11. Split saving of SPE 64-bit registers into
7537 its own case. Ensure that offsets will always be in-range for
7538 'evstdd' by using r11 as a scratch register to point at the start
7539 of the SPE save area. Save r11 if necessary, as it is the static
7540 chain register.
7541 (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
7542 into its own case. Ensure that offsets will always be in-range
7543 for 'evldd' by using r11 as a scratch register to point at the
7544 start of the SPE save area. Also adjust r11 when restoring
7545 the stack pointer to compensate for pre-loading r11.
7546
7547 2007-06-05 Thomas Neumann <tneumann@users.sourceforge.net>
7548
7549 * cfg.c (init_flow): Use type safe memory macros.
7550 (alloc_block): Likewise.
7551 (unchecked_make_edge): Likewise.
7552 (dump_flow_info): Avoid using C++ keywords as variable names.
7553 (copy_original_table_clear): Cast according to the coding conventions.
7554 (copy_original_table_set): Likewise.
7555 * cfgexpand (label_rtx_for_bb): Likewise.
7556 (expand_gimple_basic_block): Likewise.
7557 * cfghooks.c (dump_bb): Likewise.
7558 (lv_adjust_loop_header_phi): Avoid using C++ keywords as
7559 variable names.
7560 (lv_add_condition_to_bb): Likewise.
7561 * cfglayout (relink_block_chain): Cast according to the coding
7562 conventions.
7563 (fixup_reorder_chain): Likewise.
7564 (fixup_fallthru_exit_predecessor): Likewise.
7565 * cfgloop.c (glb_enum_p): Likewise.
7566 (get_exit_description): Likewise.
7567 (dump_recorded_exit): Likewise.
7568 * cfgloop.h (enum loop_estimation): Move out of struct scope...
7569 (struct loop): ... from here.
7570 * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
7571 conventions.
7572 * cfgrtl.c (rtl_create_basic_block): Likewise.
7573 (rtl_split_block): Likewise.
7574 (rtl_dump_bb): Likewise.
7575 (cfg_layout_split_block): Likewise.
7576 (init_rtl_bb_info): Use typesafe memory macros.
7577
7578 * graphds.h (struct graph_edge): Renamed edge to graph_edge.
7579 * graphds.h: Updated all usages of edge to graph_edge.
7580 * graphds.c: Likewise.
7581 * cfgloopanal.c: Likewise.
7582
7583 2007-06-05 Ian Lance Taylor <iant@google.com>
7584
7585 * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
7586 PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
7587 (extract_range_from_assert): Set TREE_NO_WARNING when creating an
7588 expression.
7589 (test_for_singularity): Likewise.
7590
7591 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
7592
7593 * config/i386/constraints.md ("Y2"): Replaced by ...
7594 ("Yt"): This.
7595 * config/i386/i386.md: Likewise.
7596 * config/i386/mmx.md: Likewise.
7597 * config/i386/sse.md: Likewise.
7598
7599 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
7600
7601 * config/i386/constraints.md ("z"): Replaced by ...
7602 ("Y0"): This.
7603 * config/i386/sse.md (sse4_1_blendvpd): Likewise.
7604 (sse4_1_blendvps): Likewise.
7605 (sse4_1_pblendvb): Likewise.
7606 (sse4_2_pcmpestr): Likewise.
7607 (sse4_2_pcmpestrm): Likewise.
7608 (sse4_2_pcmpestr_cconly): Likewise.
7609 (sse4_2_pcmpistr): Likewise.
7610 (sse4_2_pcmpistrm): Likewise.
7611 (sse4_2_pcmpistr_cconly): Likewise.
7612
7613 2007-06-05 Razya Ladelsky <razya@il.ibm.com>
7614
7615 * matrix-reorg.c (transform_access_sites): Fix computation.
7616 (transform_allocation_sites): Same.
7617
7618 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
7619
7620 * config/i386/i386.c (override_options): Use
7621 TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
7622
7623 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
7624
7625 * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
7626 (nonimm_not_xmm0_operand): Ditto.
7627 * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
7628 as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand"
7629 as operand[2] predicate. Require "z" class XMM register for
7630 operand[3]. Adjust asm template.
7631 ("sse4_1_blendvpd"): Ditto.
7632 ("sse4_1_pblendvb"): Ditto.
7633 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
7634 force op2 into xmm0 register for variable blend instructions.
7635
7636 2007-06-04 Tom Tromey <tromey@redhat.com>
7637
7638 * c-tree.h (start_enum): Update.
7639 (build_enumerator): Likewise.
7640 * c-decl.c (enum_next_value): Removed.
7641 (enum_overflow): Likewise.
7642 (start_enum): Add c_enum_contents argument. Don't use globals.
7643 (build_enumerator): Likewise.
7644 * c-tree.h (struct c_enum_contents): New struct.
7645
7646 2007-06-04 Tom Tromey <tromey@redhat.com>
7647
7648 * c-common.c (c_common_get_alias_set): Fix indentation.
7649
7650 2007-06-04 Ian Lance Taylor <iant@google.com>
7651
7652 * tree-vrp.c (adjust_range_with_scev): When loop is not expected
7653 to overflow, reduce overflow infinity to regular infinity.
7654 (vrp_var_may_overflow): New static function.
7655 (vrp_visit_phi_node): Check vrp_var_may_overflow.
7656
7657 2007-06-04 Kazu Hirata <kazu@codesourcery.com>
7658
7659 * stor-layout.c (layout_type): Remove duplicate code.
7660
7661 2007-06-04 Uros Bizjak <ubizjak@gmail.com>
7662
7663 PR c/32191
7664 * c-common.c (c_define_builtins): Call targetm.init_builtins ()
7665 before build_common_builtin_nodes ().
7666
7667 2007-06-04 Steve Ellcey <sje@cup.hp.com>
7668
7669 PR target/31733
7670 * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
7671
7672 2007-06-04 Jan Hubicka <jh@suse.cz>
7673
7674 * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
7675 reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
7676 instead of _stat version.
7677
7678 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
7679
7680 PR tree-optimization/32194
7681 * tree-predcom.c (determine_offset): Check that both references have
7682 the same type.
7683
7684 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
7685
7686 * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
7687 Change dom_bbs to vector. Add argument to iterate_fix_dominators call.
7688 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
7689 * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
7690 Add argument to iterate_fix_dominators call.
7691 (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
7692 * gcse.c (hoist_code): Change domby to vector.
7693 * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
7694 Add argument to iterate_fix_dominators call.
7695 * loop-doloop.c (doloop_modify): Changed recount_dominator to
7696 recompute_dominator.
7697 * lambda-code.c (perfect_nestify): Ditto.
7698 * cfgloopanal.c: Include graphds.h.
7699 (struct edge, struct vertex, struct graph, dump_graph, new_graph,
7700 add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
7701 (mark_irreducible_loops): Use graphds_scc. Remove argument from
7702 add_edge call.
7703 * graphds.c: New file.
7704 * graphds.h: New file.
7705 * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
7706 (get_dominated_by, get_dominated_by_region): Change return type to
7707 vector.
7708 (verify_dominators): Recompute all dominators and compare the results.
7709 (recount_dominator): Renamed to ...
7710 (recompute_dominator): ... this. Do not check that the block is
7711 dominated by entry.
7712 (iterate_fix_dominators): Reimplemented.
7713 (prune_bbs_to_update_dominators, root_of_dom_tree,
7714 determine_dominators_for_sons): New functions.
7715 * et-forest.c (et_root): New function.
7716 * et-forest.h (et_root): Declare.
7717 * Makefile.in (graphds.o): Add.
7718 (cfgloopanal.o): Add graphds.h dependency.
7719 (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
7720 * basic-block.h (get_dominated_by, get_dominated_by_region,
7721 iterate_fix_dominators): Declaration changed.
7722 (recount_dominator): Renamed to ...
7723 (recompute_dominator): ... this.
7724 * tree-ssa-threadupdate.c (thread_block): Free dominance info.
7725 (thread_through_all_blocks): Do not free dominance info.
7726
7727 2007-06-03 Andreas Schwab <schwab@suse.de>
7728
7729 * config/m68k/m68k.c (override_options): Don't override
7730 REAL_MODE_FORMAT.
7731 * config/m68k/m68k-modes.def (SF, DF): Define to use
7732 motorola_single_format and motorola_double_format, resp.
7733 * real.c (motorola_single_format): Renamed from
7734 coldfire_single_format.
7735 (motorola_double_format): Renamed from coldfire_double_format.
7736 (encode_ieee_extended): Generate a proper canonical NaN image
7737 respecting canonical_nan_lsbs_set.
7738 (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
7739 true.
7740 * real.h: Adjust declarations.
7741
7742 2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org>
7743
7744 PR target/32163
7745 * config/sh/sh.md (symGOT_load): Don't schedule insns when
7746 the symbol is generated with the stack protector.
7747
7748 2007-06-03 Kazu Hirata <kazu@codesourcery.com>
7749
7750 * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
7751 (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
7752 "interrupt".
7753 * doc/extend.texi (interrupt): Mention m68k.
7754
7755 2007-06-02 Uros Bizjak <ubizjak@gmail.com>
7756
7757 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
7758 safe_vector_operand() if input operand is VECTOR_MODE_P operand.
7759 (ix86_expand_sse_pcmpestr): Do not check operands for
7760 "register_operand", when insn operand predicate is "register_operand".
7761 (ix86_expand_sse_pcmpistr): Ditto.
7762
7763 2007-06-02 H.J. Lu <hongjiu.lu@intel.com>
7764 Uros Bizjak <ubizjak@gmail.com>
7765
7766 * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
7767 (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
7768 (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
7769 (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
7770 * config/i386/constraints.md ("z"): New register constraint
7771 for members of SSE_FIRST_REG class.
7772 * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
7773 * config/i386/i386.c (regclass_map): Change class of %xmm0 to
7774 SSE_FIRST_REG class.
7775 (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
7776 (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
7777 (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
7778 (IX86_BUILTIN_PCMPESTRM128): Likewise.
7779 (IX86_BUILTIN_PCMPESTRA128): Likewise.
7780 (IX86_BUILTIN_PCMPESTRC128): Likewise.
7781 (IX86_BUILTIN_PCMPESTRO128): Likewise.
7782 (IX86_BUILTIN_PCMPESTRS128): Likewise.
7783 (IX86_BUILTIN_PCMPESTRZ128): Likewise.
7784 (IX86_BUILTIN_PCMPISTRI128): Likewise.
7785 (IX86_BUILTIN_PCMPISTRM128): Likewise.
7786 (IX86_BUILTIN_PCMPISTRA128): Likewise.
7787 (IX86_BUILTIN_PCMPISTRC128): Likewise.
7788 (IX86_BUILTIN_PCMPISTRO128): Likewise.
7789 (IX86_BUILTIN_PCMPISTRS128): Likewise.
7790 (IX86_BUILTIN_PCMPISTRZ128): Likewise.
7791 (struct builtin_description): Change "flag" field to unsigned.
7792 (bdesc_pcmpestr): New builtin description table.
7793 (bdesc_pcmpistr): Likewise.
7794 (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
7795 v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
7796 Initialize pcmp[ei]str[im] insns for SSE4.2.
7797 (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
7798 (ix86_expand_sse_pcmpistr): Likewise.
7799 (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
7800 * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
7801 (UNSPEC_PCMPISTR): Likewise.
7802 * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
7803 (sse4_2_pcmpestri):New isns pattern.
7804 (sse4_2_pcmpestrm): Likewise.
7805 (sse4_2_pcmpestr_cconly): Likewise.
7806 (sse4_2_pcmpistr): New insn patern and splitter.
7807 (sse4_2_pcmpistri):New isns pattern.
7808 (sse4_2_pcmpistrm): Likewise.
7809 (sse4_2_pcmpistr_cconly): Likewise.
7810 * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
7811 in SSE4.2.
7812
7813 2007-06-01 David Daney <ddaney@avtrex.com>
7814
7815 * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
7816 LOADGP_ABSOLUTE and not binds_local_p.
7817
7818 2007-06-01 Geoffrey Keating <geoffk@apple.com>
7819
7820 * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
7821
7822 2007-06-01 Ian Lance Taylor <iant@google.com>
7823
7824 * tree-vrp.c (compare_name_with_value): Always set
7825 used_strict_overflow if we get a result from the variable itself.
7826
7827 2007-06-01 Ian Lance Taylor <iant@google.com>
7828
7829 PR rtl-optimization/31455
7830 * lower-subreg.c (find_decomposable_subregs): Don't decompose
7831 subregs which have a cast between modes which are not tieable.
7832
7833 2007-06-01 Uros Bizjak <ubizjak@gmail.com>
7834
7835 * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
7836 breaks after return statements.
7837
7838 2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
7839
7840 * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
7841 only after no_new_pseudos.
7842
7843 2007-05-31 Eric Christopher <echristo@apple.com>
7844
7845 * expr.c (convert_move): Assert that we don't have a BLKmode
7846 operand.
7847 (store_expr): Handle BLKmode moves by calling emit_block_move.
7848
7849 2007-05-31 Daniel Berlin <dberlin@dberlin.org>
7850
7851 * c-typeck.c (build_indirect_ref): Include type in error message.
7852 (build_binary_op): Pass types to binary_op_error.
7853 * c-common.c (binary_op_error): Take two type arguments, print out
7854 types with error.
7855 * c-common.h (binary_op_error): Update prototype.
7856
7857 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
7858
7859 * config/i386/i386.c: Correct coments on -mno-sse4.
7860
7861 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
7862
7863 * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
7864 (x86_64-*-*): Likewise.
7865 * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
7866 (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
7867 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
7868 (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
7869 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
7870 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
7871 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
7872 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
7873 (OPTION_MASK_ISA_SSE4): Likewise.
7874 (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
7875 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
7876 (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2.
7877 (override_options): Support SSE4.2.
7878 (ix86_build_const_vector): Support SImode and DImode.
7879 (ix86_build_signbit_mask): Likewise.
7880 (ix86_expand_int_vcond): Support V2DImode.
7881 (IX86_BUILTIN_CRC32QI): New for SSE4.2.
7882 (IX86_BUILTIN_CRC32HI): Likewise.
7883 (IX86_BUILTIN_CRC32SI): Likewise.
7884 (IX86_BUILTIN_CRC32DI): Likewise.
7885 (IX86_BUILTIN_PCMPGTQ): Likewise.
7886 (bdesc_crc32): Likewise.
7887 (bdesc_sse_3arg): Likewise.
7888 (ix86_expand_crc32): Likewise.
7889 (ix86_init_mmx_sse_builtins): Support SSE4.2.
7890 (ix86_expand_builtin): Likewise.
7891 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
7892 __SSE4_2__ for -msse4.2.
7893 * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
7894 (CRC32MODE): Likewise.
7895 (crc32modesuffix): Likewise.
7896 (crc32modeconstraint): Likewise.
7897 (sse4_2_crc32<mode>): Likewise.
7898 (sse4_2_crc32di): Likewise.
7899 * config/i386/i386.opt (msse4.2): New for SSE4.2.
7900 (msse4): Likewise.
7901 * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
7902 * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
7903 * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
7904 (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
7905 (vcondu<mode>): Likewise.
7906 * doc/extend.texi: Document SSE4.2 built-in functions.
7907 * doc/invoke.texi: Document -msse4.2/-msse4.
7908
7909 2007-05-31 Zdenek Dvorak <dvorakz@suse.cz>
7910
7911 PR tree-optimization/32160
7912 * tree-predcom.c (predcom_tmp_var): New function. Mark created
7913 variable as gimple reg.
7914 (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
7915
7916 2007-05-31 Kazu Hirata <kazu@codesourcery.com>
7917
7918 * gcc.c (main): Don't consider linker options when issuing the
7919 warning about a linker input file not being used.
7920
7921 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7922
7923 * tree-vrp.c (compare_names): Initialize sop.
7924
7925 2007-05-30 Dirk Mueller <dmueller@suse.de>
7926
7927 * cgraphunit.c (cgraph_analyze_function): Remove
7928 computation of inline parameters.
7929
7930 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
7931
7932 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
7933
7934 2007-05-30 Richard Sandiford <richard@codesourcery.com>
7935
7936 * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
7937 Add vx-common.h. Include vxworks.h between vx-common.h and
7938 arm/vxworks.h.
7939 * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
7940 redefining.
7941 * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
7942 (TARGET_ASM_DESTRUCTOR): Likewise.
7943 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
7944 instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS.
7945 (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
7946 (CC1_SPEC): Add -tstrongarm. Line up backslashes.
7947 (VXWORKS_ENDIAN_SPEC): Define.
7948 (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
7949 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
7950 VXWORKS_* equivalents.
7951 (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
7952 (ASM_FILE_START): Delete.
7953 (TARGET_VERSION): Reformat.
7954 (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
7955 (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
7956 * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
7957 (FPBIT, DPBIT): Define.
7958 (fp-bit.c, dp-bit.c): New rules.
7959 (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
7960 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
7961 * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
7962 * config/arm/arm.h: Include vxworks-dummy.h.
7963 * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
7964 Mark with ATTRIBUTE_UNUSED.
7965 (arm_override_options): Do not allow VxWorks RTP PIC to be used
7966 for Thumb. Force r9 to be the PIC register for VxWorks RTPs and
7967 make it incompatible with -msingle-pic-base.
7968 (arm_function_ok_for_sibcall): Return false for calls that might
7969 go through a VxWorks PIC PLT entry.
7970 (require_pic_register): New function, split out from...
7971 (legitimize_pic_address): ...here. Do not use GOTOFF accesses
7972 for VxWorks RTPs.
7973 (arm_load_pic_register): Handle the VxWorks RTP initialization
7974 sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg.
7975 (arm_emit_call_insn): New function.
7976 (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
7977 * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
7978 (pic_offset_arm): New pattern.
7979 (call, call_value): Use arm_emit_call_insn.
7980 (call_internal, call_value_internal): New expanders.
7981 * config/arm/lib1funcs.asm (__PLT__): Define to empty for
7982 VxWorks unless __PIC__.
7983
7984 2007-05-30 Eric Christopher <echristo@gmail.com>
7985
7986 * genrecog.c: Include regs.h in generated file.
7987 * genemit.c: Ditto. Fix up formatting.
7988 * config/mn10300/constraints.md: New.
7989 * config/mn10300/mn10300.md: Include.
7990 * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
7991 Fix up for removed macro.
7992 * config/mn10300/predicates.md (call_address_operand): Ditto.
7993 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
7994 (CONST_OK_FOR_I): Ditto.
7995 (CONST_OK_FOR_J): Ditto.
7996 (CONST_OK_FOR_K): Ditto.
7997 (CONST_OK_FOR_L): Ditto.
7998 (CONST_OK_FOR_M): Ditto.
7999 (CONST_OK_FOR_N): Ditto.
8000 (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
8001 (OK_FOR_Q): Ditto.
8002 (OK_FOR_R): Ditto.
8003 (OK_FOR_T): Ditto.
8004 (EXTRA_CONSTRAINT): Ditto.
8005
8006 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
8007
8008 * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
8009 Remove defines.
8010 * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
8011 OPTION_MASK_ISA_64BIT.
8012 * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
8013
8014 2007-05-30 Richard Guenther <rguenther@suse.de>
8015
8016 PR middle-end/32152
8017 * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
8018 types for comparison.
8019 * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
8020 with original typed arguments.
8021 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
8022
8023 2007-05-30 Jakub Jelinek <jakub@redhat.com>
8024
8025 PR tree-optimization/31769
8026 * except.c (duplicate_eh_regions): Clear prev_try if
8027 ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
8028
8029 2007-05-30 Zdenek Dvorak <dvorakz@suse.cz>
8030
8031 * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
8032 * tree-ssa-sink.c (statement_sink_location): Return basic block and
8033 bsi of the location where statements should be inserted.
8034 (sink_code_in_bb): Take bsi from statement_sink_location.
8035 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
8036 instead of bsi_start.
8037 * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
8038 bsi_insert_after.
8039 * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
8040 (bsi_move_before): Document inconsistency with bsi_move_after.
8041 (tree_redirect_edge_and_branch): Do not create labels if not necessary.
8042
8043 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
8044
8045 * config/i386/i386.h (TARGET_ABM): New define.
8046 (TARGET_POPCNT): Ditto.
8047 (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
8048 New temporary defines to redefine from OPTION_ISA_* defines.
8049 (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
8050 New temporary defines to redefine from OPTION_MASK_ISA_* defines.
8051 (ix86_isa_flags): New extern int declaration.
8052 (TARGET_SUBTARGET_DEFAULT): New define.
8053 (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
8054 (TARGET_SUBTARGET32_DEFAULT): Ditto.
8055 (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
8056 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
8057 * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
8058 * config/i386/darwin.h: Change TARGET_64BIT define to
8059 OPTION_ISA_64BIT.
8060
8061 * config/i386/i386.opt (m3dnowa): Define as undocumented option
8062 using existing "ix86_isa_flags" varible.
8063 (m32, m64): Use existing "ix86_isa_flags" variable.
8064 (mmmx, m3dnow): Ditto.
8065 (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
8066 (mabm): Define as non-negative option using "x86_abm" variable.
8067 (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
8068
8069 * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
8070 Rewrite feature test bitmap.
8071 (ix86_isa_flags): New initialized global int varible.
8072 (ix86_isa_flags_explicit): New static int variable.
8073 (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
8074 msse, msse2, msse3, msse4.1 and msse4a option is processed. Change
8075 i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
8076 target_flags_explicit.
8077 (override_options): Remove "target_enable" and "target_disable" fields
8078 from "struct ptt". Update processor_target_table accordingly. Remove
8079 PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
8080 defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of
8081 "target_flags" and "ix86_isa_flags_explicit" instead of
8082 "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
8083 MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when
8084 PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt"
8085 to true when either of PTA_POPCNT or PTA_ABM is set in
8086 processor_alias_table flags entry. Set "x86_prefetch_sse" to true
8087 when either of PTA_PREFETCH_SSE or PTA_SSE is set in
8088 processor_alias_table flags entry. Remove handling of
8089 "target_enable" and "target_disable" fields of processor_target_table.
8090 Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
8091 targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
8092 Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
8093 targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
8094 (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
8095 "target_flags".
8096 (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
8097
8098 2007-05-29 David Daney <ddaney@avtrex.com>
8099
8100 PR gcc/31975
8101 * config/mips/mips.c (mips_output_mi_thunk): Emit
8102 NOTE_INSN_PROLOGUE_END at beginning of the thunk.
8103
8104 2007-05-29 Hui-May Chang <hm.chang@apple.com>
8105 * config/i386/i386.c (ix86_function_regparm): Added checking of
8106 ix86_force_align_arg_pointer to determine the number of
8107 register parameters.
8108
8109 2007-05-29 Zdenek Dvorak <dvorakz@suse.cz>
8110
8111 * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
8112 (SET_DR_MISALIGNMENT): New.
8113 * tree-vect-analyze.c (vect_compute_data_ref_alignment,
8114 vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
8115 Use SET_DR_MISALIGNMENT.
8116 * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
8117 pointer.
8118 * tree-data-ref.c (create_data_ref, compute_all_dependences,
8119 find_loop_nest): Export.
8120 * tree-data-ref.h (struct data_reference): Change aux field to pointer.
8121 (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
8122 * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
8123 (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
8124 New macros.
8125 (struct mem_ref): Add field reuse_distance.
8126 (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
8127 Initialize reuse_distance field.
8128 (issue_prefetch_ref): Select temporality of prefetch according to
8129 reuse_distance.
8130 (volume_of_references, volume_of_dist_vector, add_subscript_strides,
8131 self_reuse_distance, determine_loop_nest_reuse): New functions.
8132 (loop_prefetch_arrays): Call determine_loop_nest_reuse.
8133 (tree_ssa_prefetch_arrays): Dump L2 cache size.
8134 * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
8135 dependency.
8136
8137 2007-05-29 Daniel Berlin <dberlin@dberlin.org>
8138
8139 * tree-ssa-alias.c: Add aliasing overview.
8140
8141 2007-05-29 Zuxy Meng <zuxy.meng@gmail.com>
8142 Danny Smith <dannysmith@users.sourceforge.net>
8143
8144 PR target/29498
8145 * config/i386/t-crtfm: Compile crtfastmath.o with
8146 -minline-all-stringops.
8147 * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
8148 * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
8149
8150 2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8151
8152 * doc/md.texi: Document constraints on HP PA-RISC.
8153
8154 * pa/constraints.md: New file.
8155 * pa.md: Include constraints.md.
8156 * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
8157 (integer_store_memory_operand, ldil_cint_p): New functions.
8158 * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
8159 * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
8160 IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
8161 * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
8162 * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
8163
8164 2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
8165
8166 PR c/31339
8167 * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
8168 case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
8169 case POSTDECREMENT_EXPR>): Return the error_mark_node
8170 if either the real or imaginary parts would an
8171 error_mark_node.
8172
8173 2007-05-28 Daniel Berlin <dberlin@dberlin.org>
8174
8175 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
8176 name when we remove it from a call.
8177
8178 2007-05-28 Kazu Hirata <kazu@codesourcery.com>
8179
8180 * targhooks.c (default_narrow_bitfield): Remove.
8181 * targhooks.h: Remove the prototype for
8182 default_narrow_bitfield.
8183
8184 * langhooks-def.h: Remove the prototype for
8185 hook_get_alias_set_0.
8186 * langhooks.c (hook_get_alias_set_0): Remove.
8187
8188 * global.c (EXECUTE_IF_CONFLICT): Remove.
8189
8190 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
8191
8192 PR tree-opt/32100
8193 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
8194 return true when truth_value_p is true and the type
8195 is of signed:1.
8196
8197 2007-05-28 Gerald Pfeifer <gerald@pfeifer.com>
8198
8199 * doc/install.texi (Prerequisites): We no longer require Autoconf
8200 2.13 for the top-level.
8201
8202 2007-05-28 Uros Bizjak <ubizjak@gmail.com>
8203
8204 * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
8205 memory access via x86_expand_vector_move_misalign() only for
8206 TImode values on 32-bit targets.
8207
8208 2007-05-28 Razya Ladelsky <razya@il.ibm.com>
8209
8210 * matrix-reorg.c: New file. Implement matrix flattening and
8211 transposing optimization.
8212 * tree-pass.h: Add matrix reorg pass.
8213 * common.opt: Add fipa-mreorg flag.
8214 * Makefile.in: Add matrix-reorg.c.
8215 * passes.c: Add matrix reorg pass.
8216 * varpool.c (add_new_static_var): New function.
8217 * cgraph.h (add_new_static_var): Declare.
8218
8219 2007-05-27 Eric Christopher <echristo@apple.com>
8220
8221 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
8222 sp_offset depending on stack size. Save r12 depending
8223 on registers we're saving later.
8224 (rs6000_emit_epilogue): Update sp_offset depending only
8225 on stack size.
8226
8227 2007-05-27 Zdenek Dvorak <dvorakz@suse.cz>
8228
8229 * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
8230 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8231 * ifcvt.c (if_convert): Ditto.
8232 * tree-ssa-threadupdate.c (thread_block): Ditto.
8233 (thread_through_all_blocks): Ditto. Assert that loops were analysed.
8234 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
8235 verify_loop_closed_ssa): Check number_of_loops instead of
8236 current_loops.
8237 * predict.c (tree_estimate_probability): Ditto.
8238 * tree-if-conv.c (main_tree_if_conversion): Ditto.
8239 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
8240 * modulo-sched.c (sms_schedule): Ditto.
8241 * tree-scalar-evolution.c (scev_const_prop): Ditto.
8242 (scev_finalize): Do not do anything if scev analysis was not
8243 initialized.
8244 * cfgloopanal.c (mark_irreducible_loops): Do not check whether
8245 current_loops == NULL.
8246 (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
8247 * loop-init.c (loop_optimizer_init): Do not free current_loops when
8248 there are no loops.
8249 (loop_optimizer_finalize): Assert that loops were analyzed.
8250 (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
8251 rtl_doloop): Check number_of_loops instead of current_loops.
8252 * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
8253 current_loops == NULL.
8254 (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
8255 gate_tree_vectorize tree_linear_transform, check_data_deps,
8256 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
8257 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
8258 Check number_of_loops instead of current_loops.
8259 (tree_ssa_loop_done): Do not check whether current_loops == NULL.
8260 * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
8261 free loops if available.
8262 (execute_pre): Do not pass do_fre to fini_pre.
8263
8264 2007-05-27 Tobias Burnus <burnus@net-b.de>
8265
8266 PR middle-end/32083
8267 * real.c (mpfr_from_real): Fix sign of -Inf.
8268
8269 2007-05-27 H.J. Lu <hongjiu.lu@intel.com>
8270
8271 * tree-vect-transform.c (vectorizable_conversion): Initialize
8272 tree_code variables to ERROR_MARK.
8273 (vectorizable_type_demotion): Likewise.
8274 (vectorizable_type_promotion): Likewise.
8275
8276 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
8277
8278 PR target/32065
8279 * config/i386/i386.md (movti): Handle push operands via
8280 ix86_expand_push().
8281
8282 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
8283
8284 * basic-block.h: Remove the prototype for merge_seq_blocks.
8285 * cfgcleanup.c (merge_seq_blocks): Remove.
8286
8287 * tree-flow.h: Remove the prototype for is_aliased_with.
8288 * tree-ssa-alias.c (is_aliased_with): Remove.
8289
8290 2007-05-26 H.J. Lu <hongjiu.lu@intel.com>
8291
8292 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
8293
8294 * config/i386/i386.c (ix86_expand_sse4_unpack): New.
8295
8296 * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
8297 ix86_expand_sse4_unpack if SSE4.1 is enabled.
8298 (vec_unpacks_hi_v16qi): Likewise.
8299 (vec_unpacku_lo_v16qi): Likewise.
8300 (vec_unpacks_lo_v16qi): Likewise.
8301 (vec_unpacku_hi_v8hi): Likewise.
8302 (vec_unpacks_hi_v8hi): Likewise.
8303 (vec_unpacku_lo_v8hi): Likewise.
8304 (vec_unpacks_lo_v8hi): Likewise.
8305 (vec_unpacku_hi_v4si): Likewise.
8306 (vec_unpacks_hi_v4si): Likewise.
8307 (vec_unpacku_lo_v4si): Likewise.
8308 (vec_unpacks_lo_v4si): Likewise.
8309
8310 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
8311
8312 * c-typeck.c, config/arm/arm.c, config/darwin.c,
8313 config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
8314 omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
8315 follow spelling conventions in various
8316 warning/error/diagnostic messages.
8317
8318 * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
8319 df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
8320 fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
8321 tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
8322 tree-vrp.c: Fix comment typos. Follow spelling conventions.
8323 * doc/tm.texi: Follow spelling conventions.
8324
8325 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
8326
8327 PR tree-opt/32090
8328 * tree-ssa-forwprop.c
8329 (forward_propagate_addr_into_variable_array_index): Remove
8330 the lhs argument. Use the type of def_rhs instead of lhs.
8331 (forward_propagate_addr_expr_1): Update use of
8332 forward_propagate_addr_into_variable_array_index.
8333
8334 2007-05-25 Sandra Loosemore <sandra@codesourcery.com>
8335 Nigel Stephens <nigel@mips.com>
8336
8337 * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
8338 function attributes, "far" being an alias for "long_call".
8339 (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
8340 (mips_near_type_p, mips_far_type_p): New.
8341 (mips_comp_type_attributes): New function to check that attributes
8342 attached to a function type are compatible.
8343 (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
8344 TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
8345 to the target function of the thunk.
8346 (mips_encode_section_info): Check for "near" and "far" function
8347 attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
8348
8349 * config/mips/predicates.md (const_call_insn_operand): Test only
8350 SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
8351
8352 * doc/extend.texi (Function Attributes): Document MIPS "near" and
8353 "far" attributes.
8354
8355 * testsuite/gcc.target/mips/near-far-1.c: New test case.
8356 * testsuite/gcc.target/mips/near-far-2.c: New test case.
8357 * testsuite/gcc.target/mips/near-far-3.c: New test case.
8358 * testsuite/gcc.target/mips/near-far-4.c: New test case.
8359
8360 2007-05-25 Eric Christopher <echristo@apple.com>
8361
8362 * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
8363 to x86-darwin configurations.
8364 * config/i386/t-darwin: Add softfp support.
8365 * config/i386/t-darwin64: Ditto.
8366 * config/i386/sfp-machine.h: If mach then don't use
8367 aliasing, emit a stub to call.
8368
8369 2007-05-25 Kazu Hirata <kazu@codesourcery.com>
8370
8371 * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
8372 haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
8373 tree-predcom.c, tree-ssa-alias-warnings.c,
8374 tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
8375 comment typos. Follow spelling conventions.
8376 * doc/cpp.texi, doc/invoke.texi: Fix typos.
8377
8378 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
8379
8380 PR target/32065
8381 * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
8382 constants into memory. Expand unaligned memory references for
8383 SSE modes via x86_expand_vector_move_misalign() function.
8384
8385 2007-05-25 Uros Bizjak <ubizjak@gmail.com>
8386
8387 * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
8388 "memory" attribute for "sseishft" type insn without operands[2].
8389
8390 2007-05-25 Dirk Mueller <dmueller@suse.de>
8391 Marcus Meissner <meissner@suse.de>
8392
8393 * doc/extend.texi (alloc_size): New attribute.
8394 * c-common.c (handle_alloc_size_attribute): New.
8395 * tree-object-size.c (alloc_object_size): Use alloc_size
8396 attribute, if available.
8397
8398 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
8399
8400 * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
8401 with MASK_SSE2.
8402 (__builtin_ia32_vec_ext_v2di): Likewise.
8403 (__builtin_ia32_vec_ext_v4si): Likewise.
8404 (__builtin_ia32_vec_ext_v8hi): Likewise.
8405 (__builtin_ia32_vec_ext_v16qi): Likewise.
8406 (__builtin_ia32_vec_set_v8hi): Likewise.
8407
8408 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
8409
8410 * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
8411
8412 2007-05-25 Richard Sandiford <richard@codesourcery.com>
8413
8414 * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
8415 (arm_is_longcall_p): Rename to...
8416 (arm_is_long_call_p): ...this. Take a single tree argument and
8417 return a bool.
8418 * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
8419 (CUMULATIVE_ARGS): Remove call_cookie.
8420 (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
8421 (ENCODED_LONG_CALL_ATTR_P): Delete.
8422 (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
8423 LONG_CALL_FLAG_CHAR cases.
8424 (ARM_DECLARE_FUNCTION_SIZE): Delete.
8425 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
8426 ARM_DECLARE_FUNCTION_SIZE.
8427 * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
8428 (arm_function_arg): Return const0_rtx for VOIDmode arguments.
8429 (arm_encode_call_attribute, current_file_function_operand): Delete.
8430 (arm_function_in_section_p): New function.
8431 (arm_is_longcall_p): Rename to...
8432 (arm_is_long_call_p): ...this. Take the target function as a single
8433 argument and return a bool. Do not rely on call cookies. Check
8434 whether the target symbol is in the same section as the current
8435 function, not just the same compilation unit.
8436 (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
8437 (arm_encode_section_info): Don't encode a call type.
8438 * config/arm/arm.md (call, call_value): Update calls to
8439 arm_is_long(_)call_p. Simplify logic.
8440 (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
8441 Update calls to arm_is_long(_)call_p.
8442
8443 2007-05-25 Richard Guenther <rguenther@suse.de>
8444
8445 PR tree-optimization/31982
8446 * tree-ssa-forwprop.c
8447 (forward_propagate_addr_into_variable_array_index): Handle arrays
8448 with element size one.
8449
8450 2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
8451
8452 * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
8453 (umulsi3_highpart): Likewise.
8454
8455 2007-05-24 Ian Lance Taylor <iant@google.com>
8456
8457 PR rtl-optimization/32069
8458 * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
8459 is NULL.
8460
8461 2007-05-24 Ollie Wild <aaw@google.com>
8462
8463 * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
8464 description.
8465
8466 2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk>
8467
8468 * postreload-gcse.c (reg_changed_after_insn_p): New function.
8469 (oprs_unchanged_p): Use it to check all registers in a REG.
8470 (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
8471 (reg_set_between_after_reload_p): Delete.
8472 (reg_used_between_after_reload_p): Likewise.
8473 (reg_set_or_used_since_bb_start): Likewise.
8474 (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
8475 and reg_used_between_p instead of reg_set_or_used_since_bb_start.
8476 Use reg_set_between_p instead of reg_set_between_after_reload_p.
8477 * rtlanal.c (reg_set_p): Check whether REG overlaps
8478 regs_invalidated_by_call, rather than just checking the
8479 membership of REGNO (REG).
8480
8481 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
8482
8483 * doc/passes.texi: Document predictive commoning.
8484 * doc/invoke.texi (-fpredictive-commoning): Document.
8485 * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
8486 * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
8487 adding indices to the generated name.
8488 (schedule_sm): Pass 0 to get_lsm_tmp_name.
8489 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
8490 * tree-pretty-print.c (op_symbol_1): Renamed to ...
8491 (op_symbol_code): ... and exported.
8492 (dump_omp_clause, op_symbol): Use op_symbol_code
8493 instead of op_symbol_1.
8494 * tree-pass.h (pass_predcom): Declare.
8495 * timevar.def (TV_PREDCOM): New timevar.
8496 * tree-ssa-loop.c (run_tree_predictive_commoning,
8497 gate_tree_predictive_commoning, pass_predcom): New.
8498 * tree-data-ref.c (find_data_references_in_loop): Find the
8499 references in dominance order.
8500 (canonicalize_base_object_address): Ensure that the result has
8501 pointer type.
8502 (dr_analyze_innermost): Export.
8503 (create_data_ref): Code to fail for references with invariant
8504 address moved ...
8505 (find_data_references_in_stmt): ... here.
8506 * tree-data-ref.h (dr_analyze_innermost): Declare.
8507 * tree-affine.c: Include tree-gimple.h and hashtab.h.
8508 (aff_combination_find_elt, name_expansion_hash,
8509 name_expansion_eq, tree_to_aff_combination_expand,
8510 double_int_constant_multiple_p, aff_combination_constant_multiple_p):
8511 New functions.
8512 * tree-affine.h (aff_combination_constant_multiple_p,
8513 tree_to_aff_combination_expand): Declare.
8514 * tree-predcom.c: New file.
8515 * common.opt (fpredictive-commoning): New option.
8516 * tree-flow.h (op_symbol_code, tree_predictive_commoning,
8517 stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
8518 * Makefile.in (tree-predcom.o): Add.
8519 (tree-affine.o): Add TREE_GIMPLE_H dependency.
8520 * passes.c (init_optimization_passes): Add dceloop after
8521 copy propagation in loop optimizer. Add predictive commoning
8522 to loop optimizer passes.
8523
8524 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
8525
8526 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
8527 default hook.
8528
8529 2007-05-24 Jan Hubicka <jh@suse.cz>
8530
8531 * gengenrtl.c (gendecl, gendef): Output the gens annotated for
8532 statistics.
8533 (genheader): Include statistics.h.
8534
8535 * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
8536 notes are gone.
8537 * print-rtl.c (flag_dump_unnumbered): Update comments.
8538 (print_rtl): Fix my previous change.
8539 * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
8540 specific data.
8541
8542 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
8543
8544 PR middle-end/32018
8545 * tree-ssa-threadupdate.c (thread_through_loop_header): Use
8546 set_loop_copy.
8547 (thread_through_all_blocks): Call initialize_original_copy_tables
8548 and free_original_copy_tables.
8549 * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
8550 Use set_loop_copy.
8551 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
8552 * cfghooks.c (duplicate_block): Use get_loop_copy.
8553 * cfg.c: Include cfgloop.h.
8554 (loop_copy): New hash table.
8555 (initialize_original_copy_tables): Initialize loop_copy table.
8556 (free_original_copy_tables): Free loop_copy table.
8557 (copy_original_table_clear, copy_original_table_set,
8558 set_loop_copy, get_loop_copy): New functions.
8559 (set_bb_original, set_bb_copy): Use copy_original_table_set.
8560 * cfgloop.h (struct loop): Remove copy field.
8561 * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
8562 * basic-block.h (set_loop_copy, get_loop_copy): Declare.
8563
8564 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
8565
8566 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
8567 -msse/-msse2/-msse3.
8568
8569 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
8570
8571 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
8572 __builtin_ia32_vec_set_v2di with MASK_64BIT.
8573
8574 2007-05-24 Danny Smith <dannysmith@users.sourceforge.net>
8575
8576 PR target/27067
8577 * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
8578 * targhooks.h (default_mangle_decl_assembler_name): Declare
8579 default hook.
8580 * targhooks.c (default_mangle_decl_assembler_name): Define
8581 default hook.
8582 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
8583 default hook.
8584 * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
8585 * langhooks.c (lhd_set_decl_assembler_name): Call
8586 targetm.mangle_decl_assembler_name for names with global scope.
8587
8588 * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
8589 default.
8590 (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
8591 * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
8592 Declare.
8593 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
8594 New. Factored out of i386_pe_encode_section_info.
8595 (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
8596 Move check for prior decoration of stdcall
8597 symbols to i386_pe_encode_section_info.
8598 (i386_pe_encode_section_info): Adjust call to
8599 gen_stdcall_or_fastcall_suffix. Use
8600 i386_pe_maybe_mangle_decl_assembler_name, if needed.
8601 (i386_pe_mangle_decl_assembler_name): New. Wrap
8602 i386_pe_maybe_mangle_decl_assembler_name.
8603
8604 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
8605
8606 * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
8607 INTEGRAL_TYPE_P and TYPE_UNSIGNED.
8608 * langhooks.c (get_signed_or_unsigned_type): Don't check for
8609 INTEGRAL_TYPE_P or TYPE_UNSIGNED.
8610 (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
8611 TYPE_UNSIGNED.
8612
8613 2007-05-23 Sandra Loosemore <sandra@codesourcery.com>
8614 Nigel Stephens <nigel@mips.com>
8615 Richard Sandiford <richard@codesourcery.com>
8616
8617 Fix up MIPS16 hard float and add support for complex.
8618
8619 * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
8620 (TARGET_SOFT_FLOAT_ABI): New.
8621 (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
8622 __mips_soft_float to reflect the ABI in use, not whether the
8623 FPU is directly accessible (e.g., in MIPS16 mode).
8624 (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
8625 (UNITS_PER_FPVALUE): Likewise.
8626
8627 * config/mips/mips.c (mips_expand_call): Remove redundant
8628 TARGET_MIPS16 check.
8629 (mips_arg_regno): New.
8630 (function_arg_advance): When setting bits in cum->fp_code for
8631 MIPS16, don't subtract 1 from cum->arg_number, since it is now
8632 zero-based.
8633 (function_arg): Use mips_arg_regno.
8634 (mips_return_mode_in_fpr_p): New.
8635 (mips16_call_stub_mode_suffix): New.
8636 (mips16_cfun_returns_in_fpr_p): New.
8637 (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
8638 (mips_output_function_prologue): Test mips16_hard_float, not
8639 !TARGET_SOFT_FLOAT, to decide when a function stub is required.
8640 (mips_expand_epilogue): Call MIPS16 helper routines to copy
8641 return value into a floating-point register.
8642 (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
8643 (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
8644 (mips16_fp_args): Handle MIPS32r2 ISA which supports
8645 TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
8646 word of double arguments from or to the high bits of 64-bit
8647 floating point registers.
8648 (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
8649 (mips16_fpret_double): New helper function.
8650 (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add
8651 support for complex modes. Fill in DECL_RESULT for stubdecl.
8652 (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
8653
8654 * config/mips/mips16.S
8655 (RET, ARG1, ARG2): New.
8656 (MERGE_GPRf, MERGE_GPRt): New.
8657 (DELAYt, DELAYf): New.
8658 (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
8659 (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
8660 (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
8661 (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
8662 (SFOP): Renamed to...
8663 (OPSF3): This, and macro-ified. Updated all uses.
8664 (SFOP2): Renamed to...
8665 (OPSF2): This, and macro-ified. Updated all uses.
8666 (SFCMP): Renamed to...
8667 (CMPSF): This, and macro-ified. Updated all uses.
8668 (SFREVCMP): Renamed to...
8669 (REVCMPSF): This, and macro-ified. Updated all uses.
8670 (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
8671 (LDDBL1, LDDBL2, RETDBL): Deleted.
8672 (DFOP): Renamed to...
8673 (OPDF3): This, and macro-ified. Updated all uses.
8674 (DFOP2): Renamed to...
8675 (OPDF2): This, and macro-ified. Updated all uses.
8676 (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
8677 (DFCMP): Renamed to...
8678 (CMPDF): This, and macro-ified. Updated all uses.
8679 (DFREVCMP): Renamed to...
8680 (REVCMPDF): This, and macro-ified. Updated all uses.
8681 (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
8682 (RET_FUNCTION): New.
8683 (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
8684 (__mips16_ret_sc, __mips16_ret_dc): New.
8685 (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
8686 STUB_ARGS_6, STUB_ARGS_10): New.
8687 (CALL_STUB_NO_RET): New.
8688 (__mips16_call_stub_1): Macro-ified.
8689 (__mips16_call_stub_5): Macro-ified.
8690 (__mips16_call_stub_2): Macro-ified.
8691 (__mips16_call_stub_6): Macro-ified.
8692 (__mips16_call_stub_9): Macro-ified.
8693 (__mips16_call_stub_10): Macro-ified.
8694 (CALL_STUB_RET): New.
8695 (__mips16_call_stub_sf_0): Macro-ified.
8696 (__mips16_call_stub_sf_1): Macro-ified.
8697 (__mips16_call_stub_sf_5): Macro-ified.
8698 (__mips16_call_stub_sf_2): Macro-ified.
8699 (__mips16_call_stub_sf_6): Macro-ified.
8700 (__mips16_call_stub_sf_9): Macro-ified.
8701 (__mips16_call_stub_sf_10): Macro-ified.
8702 (__mips16_call_stub_df_0): Macro-ified.
8703 (__mips16_call_stub_df_1): Macro-ified.
8704 (__mips16_call_stub_df_5): Macro-ified.
8705 (__mips16_call_stub_df_2): Macro-ified.
8706 (__mips16_call_stub_df_6): Macro-ified.
8707 (__mips16_call_stub_df_9): Macro-ified.
8708 (__mips16_call_stub_df_10): Macro-ified.
8709 (__mips16_call_stub_sc_0): New.
8710 (__mips16_call_stub_sc_1): New.
8711 (__mips16_call_stub_sc_5): New.
8712 (__mips16_call_stub_sc_2): New.
8713 (__mips16_call_stub_sc_6): New.
8714 (__mips16_call_stub_sc_9): New.
8715 (__mips16_call_stub_sc_10): New.
8716 (__mips16_call_stub_dc_0): New.
8717 (__mips16_call_stub_dc_1): New.
8718 (__mips16_call_stub_dc_5): New.
8719 (__mips16_call_stub_dc_2): New.
8720 (__mips16_call_stub_dc_6): New.
8721 (__mips16_call_stub_dc_9): New.
8722 (__mips16_call_stub_dc_10): New.
8723
8724 * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
8725 * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
8726 * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
8727
8728 2007-05-23 Ian Lance Taylor <iant@google.com>
8729
8730 * doc/invoke.texi (Invoking GCC): Document that the order of the
8731 -l option matters.
8732
8733 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
8734
8735 PR target/30987
8736 * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
8737 * config/score/predicate.md (const_pow2, const_npow2): Remove.
8738 * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
8739 undef.
8740
8741 PR target/30474
8742 * config/score/score.c (score_print_operand): Make sure that only
8743 lower bits are used.
8744
8745 2007-05-22 Ian Lance Taylor <iant@google.com>
8746
8747 * tree-vrp.c (avoid_overflow_infinity): New static function,
8748 broken out of set_value_range_to_value.
8749 (set_value_range_to_value): Call avoid_overflow_infinity.
8750 (extract_range_from_assert): Likewise.
8751
8752 2007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
8753
8754 PR middle-end/31095
8755 * builtins.c (expand_builtin_memmove_args): Strip nops that don't
8756 change the type before looking for a COMPOUND_EXPR.
8757
8758 2007-05-22 Ian Lance Taylor <iant@google.com>
8759
8760 * lower-subreg.c (decompose_multiword_subregs): If we change an
8761 insn, call remove_retval_note on it.
8762
8763 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
8764
8765 * regs.h (end_hard_regno): New function.
8766 (END_HARD_REGNO, END_REGNO): New macros.
8767 (add_to_hard_reg_set): New function.
8768 (remove_from_hard_reg_set): Likewise.
8769 (in_hard_reg_set_p): Likewise.
8770 (overlaps_hard_reg_set_p): Likewise.
8771 * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
8772 (note_btr_set): Use END_HARD_REGNO.
8773 * caller-save.c (setup_save_areas): Use end_hard_regno.
8774 (mark_set_regs): Use END_HARD_REGNO.
8775 (add_stored_regs): Use end_hard_regno.
8776 (mark_referenced_regs): Use add_to_hard_reg_set.
8777 * combine.c (update_table_tick): Use END_REGNO.
8778 (record_value_for_reg): Likewise.
8779 (record_dead_and_set_regs): Likewise.
8780 (get_last_value_validate): Likewise.
8781 (use_crosses_set_p): Likewise.
8782 (reg_dead_at_p_1): Likewise.
8783 (reg_dead_at_p): Likewise.
8784 (mark_used_regs_combine): Use add_to_hard_reg_set.
8785 (move_deaths): Use END_HARD_REGNO.
8786 (reg_bitfield_target_p): Use end_hard_regno.
8787 (distribute_notes): Use END_HARD_REGNO.
8788 * cse.c (mention_regs): Use END_REGNO.
8789 (insert): Use add_to_hard_reg_set.
8790 (invalidate): Use END_HARD_REGNO.
8791 (invalidate_for_call): Likewise.
8792 (exp_equiv_p): Use END_REGNO.
8793 (cse_insn): Likewise.
8794 * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
8795 * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
8796 * df-scan.c (df_ref_record): Use END_HARD_REGNO.
8797 * function.c (keep_stack_depressed): Use end_hard_regno.
8798 * global.c (global_alloc): Use end_hard_regno.
8799 (global_conflicts): Use add_to_hard_reg_set instead of
8800 mark_reg_live_nc.
8801 (find_reg): Likewise.
8802 (mark_reg_store): Likewise.
8803 (mark_reg_conflicts): Likewise.
8804 (mark_reg_death): Use remove_from_hard_reg_set.
8805 (mark_reg_live_nc): Delete.
8806 (set_preference): Use end_hard_regno.
8807 * local-alloc.c (mark_life): Use add_to_hard_reg_set and
8808 remove_from_hard_reg_set.
8809 (post_mark_life): Use add_to_hard_reg_set.
8810 * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
8811 (reg_becomes_live): Use add_to_hard_reg_set.
8812 * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
8813 (peep2_find_free_register): Use add_to_hard_reg_set.
8814 * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
8815 * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
8816 * regrename.c (note_sets): Use add_to_hard_reg_set.
8817 (clear_dead_regs): Use remove_from_hard_reg_set.
8818 (regrename_optimize): Use add_to_hard_reg_set.
8819 (find_oldest_value_reg): Use in_hard_reg_set_p.
8820 * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
8821 (hard_reg_set_here_p): Use end_hard_regno.
8822 (decompose): Likewise.
8823 (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
8824 (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
8825 * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
8826 (mark_home_live): Use end_hard_regno.
8827 (spill_hard_reg): Likewise.
8828 (clear_reload_reg_in_use): Likewise.
8829 * reorg.c (delete_prior_computation): Use END_REGNO.
8830 * resource.c (update_live_status): Use END_HARD_REGNO.
8831 (mark_referenced_resources): Use add_to_hard_reg_set.
8832 (mark_set_resources): Likewise.
8833 (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set.
8834 * rtlanal.c (refers_to_regno_p): Use END_REGNO.
8835 (reg_overlap_mentioned_p): Likewise.
8836 (dead_or_set_p): Likewise. Use an exclusive upper loop bound.
8837 (covers_regno_no_parallel_p): Use END_REGNO.
8838 (find_regno_note): Likewise.
8839 (find_reg_fusage): Use END_HARD_REGNO.
8840 * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
8841 * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
8842
8843 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
8844
8845 * mode-switching.c (reg_dies): Change type of second argument to
8846 "HARD_REG_SET *".
8847 (optimize_mode_switching): Update accordingly.
8848
8849 2007-05-22 Richard Sandiford <richard@codesourcery.com>
8850
8851 * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
8852 in favor of...
8853 (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
8854 (hard_reg_set_empty_p): ...these new functions.
8855 * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
8856 GO_IF_HARD_REG_SUBSET.
8857 * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
8858 instead of GO_IF_HARD_REG_EQUAL.
8859 * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
8860 instead of GO_IF_HARD_REG_EQUAL.
8861 * global.c (find_reg): Use hard_reg_set_empty_p instead of
8862 GO_IF_HARD_REG_SUBSET.
8863 (modify_reg_pav): Use hard_reg_set_empty_p instead of
8864 GO_IF_HARD_REG_EQUAL.
8865 * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
8866 of GO_IF_HARD_REG_SUBSET.
8867 * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
8868 instead of GO_IF_HARD_REG_EQUAL.
8869 * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
8870 hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
8871 (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
8872 of GO_IF_HARD_REG_SUBSET,
8873 * reload1.c (finish_spills): Use hard_reg_subset_p instead of
8874 GO_IF_HARD_REG_SUBSET.
8875 * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
8876 instead of GO_IF_HARD_REG_EQUAL.
8877 * config/sh/sh.c (push_regs, calc_live_regs): Use
8878 hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
8879 (hard_regs_intersect_p): Delete.
8880
8881 2007-05-22 Janis Johnson <janis187@us.ibm.com>
8882
8883 * doc/sourcebuild.texi (Test Directives) Add dg-message.
8884
8885 2007-05-22 H.J. Lu <hongjiu.lu@intel.com>
8886 Richard Henderson <rth@redhat.com>
8887
8888 * config.gcc (i[34567]86-*-*): Add smmintrin.h to
8889 extra_headers.
8890 (x86_64-*-*): Likewise.
8891
8892 * i386/i386-modes.def (V2QI): New.
8893
8894 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
8895 SSE4A.
8896 (override_options): Support SSE4.1.
8897 (IX86_BUILTIN_BLENDPD): New for SSE4.1.
8898 (IX86_BUILTIN_BLENDPS): Likewise.
8899 (IX86_BUILTIN_BLENDVPD): Likewise.
8900 (IX86_BUILTIN_BLENDVPS): Likewise.
8901 (IX86_BUILTIN_PBLENDVB128): Likewise.
8902 (IX86_BUILTIN_PBLENDW128): Likewise.
8903 (IX86_BUILTIN_DPPD): Likewise.
8904 (IX86_BUILTIN_DPPS): Likewise.
8905 (IX86_BUILTIN_INSERTPS128): Likewise.
8906 (IX86_BUILTIN_MOVNTDQA): Likewise.
8907 (IX86_BUILTIN_MPSADBW128): Likewise.
8908 (IX86_BUILTIN_PACKUSDW128): Likewise.
8909 (IX86_BUILTIN_PCMPEQQ): Likewise.
8910 (IX86_BUILTIN_PHMINPOSUW128): Likewise.
8911 (IX86_BUILTIN_PMAXSB128): Likewise.
8912 (IX86_BUILTIN_PMAXSD128): Likewise.
8913 (IX86_BUILTIN_PMAXUD128): Likewise.
8914 (IX86_BUILTIN_PMAXUW128): Likewise.
8915 (IX86_BUILTIN_PMINSB128): Likewise.
8916 (IX86_BUILTIN_PMINSD128): Likewise.
8917 (IX86_BUILTIN_PMINUD128): Likewise.
8918 (IX86_BUILTIN_PMINUW128): Likewise.
8919 (IX86_BUILTIN_PMOVSXBW128): Likewise.
8920 (IX86_BUILTIN_PMOVSXBD128): Likewise.
8921 (IX86_BUILTIN_PMOVSXBQ128): Likewise.
8922 (IX86_BUILTIN_PMOVSXWD128): Likewise.
8923 (IX86_BUILTIN_PMOVSXWQ128): Likewise.
8924 (IX86_BUILTIN_PMOVSXDQ128): Likewise.
8925 (IX86_BUILTIN_PMOVZXBW128): Likewise.
8926 (IX86_BUILTIN_PMOVZXBD128): Likewise.
8927 (IX86_BUILTIN_PMOVZXBQ128): Likewise.
8928 (IX86_BUILTIN_PMOVZXWD128): Likewise.
8929 (IX86_BUILTIN_PMOVZXWQ128): Likewise.
8930 (IX86_BUILTIN_PMOVZXDQ128): Likewise.
8931 (IX86_BUILTIN_PMULDQ128): Likewise.
8932 (IX86_BUILTIN_PMULLD128): Likewise.
8933 (IX86_BUILTIN_ROUNDPD): Likewise.
8934 (IX86_BUILTIN_ROUNDPS): Likewise.
8935 (IX86_BUILTIN_ROUNDSD): Likewise.
8936 (IX86_BUILTIN_ROUNDSS): Likewise.
8937 (IX86_BUILTIN_PTESTZ): Likewise.
8938 (IX86_BUILTIN_PTESTC): Likewise.
8939 (IX86_BUILTIN_PTESTNZC): Likewise.
8940 (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
8941 (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
8942 (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
8943 (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
8944 (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
8945 (bdesc_ptest): New.
8946 (bdesc_sse_3arg): Likewise.
8947 (bdesc_2arg): Likewise.
8948 (bdesc_1arg): Likewise.
8949 (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins
8950 with 3 args.
8951 (ix86_expand_sse_4_operands_builtin): New.
8952 (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
8953 smaller than 8 bits as the 2nd arg.
8954 (ix86_expand_sse_ptest): New.
8955 (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
8956 (ix86_expand_vector_set): Support SSE4.1.
8957 (ix86_expand_vector_extract): Likewise.
8958
8959 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
8960 __SSE4_1__ for -msse4.1.
8961
8962 * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
8963 (UNSPEC_INSERTPS): Likewise.
8964 (UNSPEC_DP): Likewise.
8965 (UNSPEC_MOVNTDQA): Likewise.
8966 (UNSPEC_MPSADBW): Likewise.
8967 (UNSPEC_PHMINPOSUW): Likewise.
8968 (UNSPEC_PTEST): Likewise.
8969 (UNSPEC_ROUNDP): Likewise.
8970 (UNSPEC_ROUNDS): Likewise.
8971
8972 * config/i386/i386.opt (msse4.1): New for SSE4.1.
8973
8974 * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
8975 (const_pow2_1_to_32768_operand): Likewise.
8976
8977 * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
8978 file.
8979
8980 * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
8981 SSE4.1.
8982 (sse4_1_insertps): Likewise.
8983 (*sse4_1_extractps): Likewise.
8984 (sse4_1_ptest): Likewise.
8985 (sse4_1_mulv2siv2di3): Likewise.
8986 (*sse4_1_mulv4si3): Likewise.
8987 (*sse4_1_smax<mode>3): Likewise.
8988 (*sse4_1_umax<mode>3): Likewise.
8989 (*sse4_1_smin<mode>3): Likewise.
8990 (*sse4_1_umin<mode>3): Likewise.
8991 (sse4_1_eqv2di3): Likewise.
8992 (*sse4_1_pinsrb): Likewise.
8993 (*sse4_1_pinsrd): Likewise.
8994 (*sse4_1_pinsrq): Likewise.
8995 (*sse4_1_pextrb): Likewise.
8996 (*sse4_1_pextrb_memory): Likewise.
8997 (*sse4_1_pextrw_memory): Likewise.
8998 (*sse4_1_pextrq): Likewise.
8999 (sse4_1_blendpd): Likewise.
9000 (sse4_1_blendps): Likewise.
9001 (sse4_1_blendvpd): Likewise.
9002 (sse4_1_blendvps): Likewise.
9003 (sse4_1_dppd): Likewise.
9004 (sse4_1_dpps): Likewise.
9005 (sse4_1_movntdqa): Likewise.
9006 (sse4_1_mpsadbw): Likewise.
9007 (sse4_1_packusdw): Likewise.
9008 (sse4_1_pblendvb): Likewise.
9009 (sse4_1_pblendw): Likewise.
9010 (sse4_1_phminposuw): Likewise.
9011 (sse4_1_extendv8qiv8hi2): Likewise.
9012 (*sse4_1_extendv8qiv8hi2): Likewise.
9013 (sse4_1_extendv4qiv4si2): Likewise.
9014 (*sse4_1_extendv4qiv4si2): Likewise.
9015 (sse4_1_extendv2qiv2di2): Likewise.
9016 (*sse4_1_extendv2qiv2di2): Likewise.
9017 (sse4_1_extendv4hiv4si2): Likewise.
9018 (*sse4_1_extendv4hiv4si2): Likewise.
9019 (sse4_1_extendv2hiv2di2): Likewise.
9020 (*sse4_1_extendv2hiv2di2): Likewise.
9021 (sse4_1_extendv2siv2di2): Likewise.
9022 (*sse4_1_extendv2siv2di2): Likewise.
9023 (sse4_1_zero_extendv8qiv8hi2): Likewise.
9024 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
9025 (sse4_1_zero_extendv4qiv4si2): Likewise.
9026 (*sse4_1_zero_extendv4qiv4si2): Likewise.
9027 (sse4_1_zero_extendv2qiv2di2): Likewise.
9028 (*sse4_1_zero_extendv2qiv2di2): Likewise.
9029 (sse4_1_zero_extendv4hiv4si2): Likewise.
9030 (*sse4_1_zero_extendv4hiv4si2): Likewise.
9031 (sse4_1_zero_extendv2hiv2di2): Likewise.
9032 (*sse4_1_zero_extendv2hiv2di2): Likewise.
9033 (sse4_1_zero_extendv2siv2di2): Likewise.
9034 (*sse4_1_zero_extendv2siv2di2): Likewise.
9035 (sse4_1_roundpd): Likewise.
9036 (sse4_1_roundps): Likewise.
9037 (sse4_1_roundsd): Likewise.
9038 (sse4_1_roundss): Likewise.
9039 (mulv4si3): Don't expand for SSE4.1.
9040 (smax<mode>3): Likewise.
9041 (umaxv4si3): Likewise.
9042 (uminv16qi3): Likewise.
9043 (umin<mode>3): Likewise.
9044 (umaxv8hi3): Rewrite. Only enabled for SSE4.1.
9045
9046 * doc/extend.texi: Document SSE4.1 built-in functions.
9047
9048 * doc/invoke.texi: Document -msse4.1.
9049
9050 2007-05-22 Nathan Sidwell <nathan@codesourcery.com>
9051
9052 * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
9053 * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
9054 * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
9055 (ASM_SPEC): Add asm_pcrel_spec.
9056 (EXTRA_SPECS): Add asm_pcrel_spec.
9057
9058 2007-05-21 David Daney <ddaney@avtrex.com>
9059
9060 * doc/install.texi (Building a cross compiler): Add requirements
9061 for Java cross compiler.
9062
9063 2007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
9064
9065 PR middle-end/31995
9066 * tree-chrec.c (evolution_function_is_affine_multivariate_p):
9067 Add loopno argument. Use evolution_function_is_invariant_rec_p
9068 instead of evolution_function_is_constant_p.
9069 Update calls to evolution_function_is_affine_multivariate_p.
9070 * tree-chrec.h (evolution_function_is_affine_multivariate_p):
9071 Add loopno argument.
9072 * tree-scalar-evolution.c (gather_chrec_stats): Call
9073 evolution_function_is_affine_multivariate_p with a loop
9074 number of 0.
9075 * tree-data-ref.c (analyze_miv_subscript): Likewise.
9076 (analyze_overlapping_iterations): Likewise.
9077 (access_functions_are_affine_or_constant_p): Likewise.
9078 (build_classic_dist_vector_1): If the access functions
9079 are equal, don't do anything.
9080
9081 2007-05-21 Paolo Bonzini <bonzini@gnu.org>
9082 Paolo Carlini <pcarlini@suse.de>
9083 Uros Bizjak <ubizjak@gmail.com>
9084
9085 * c-cppbuiltin.c (c_cpp_builtins): Define
9086 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
9087 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
9088 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
9089 * doc/cpp.texi ([Standard Predefined Macros]): Document.
9090
9091 2007-05-21 Mike Stump <mrs@apple.com>
9092
9093 * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
9094 handling as well.
9095 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
9096
9097 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
9098
9099 * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
9100 implementation if __OPTIMIZE__ is not defined.
9101 (_mm_alignr_pi8): Ditto.
9102 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
9103 (_mm_inserti_si64): Ditto.
9104 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
9105 (_mm_slli_epi16): Ditto.
9106 (_mm_slli_epi32): Ditto.
9107 (_mm_slli_epi64): Ditto.
9108 (_mm_srai_epi16): Ditto.
9109 (_mm_srai_epi32): Ditto.
9110 (_mm_srli_si128): Ditto.
9111 (_mm_slli_si128): Ditto.
9112 (_mm_srli_epi16): Ditto.
9113 (_mm_srli_epi32): Ditto.
9114 (_mm_srli_epi64): Ditto.
9115 (_mm_extract_epi16): Ditto.
9116 (_mm_insert_epi16): Ditto.
9117 (_mm_shufflehi_epi16): Ditto.
9118 (_mm_shufflelo_epi16): Ditto.
9119 (_mm_shuffle_epi32): Ditto.
9120 * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
9121 (_m_pextrw): Ditto.
9122 (_mm_insert_pi16): Ditto.
9123 (_m_pinsrw): Ditto.
9124 (_mm_shuffle_pi16): Ditto.
9125 (_m_pshufw): Ditto.
9126 (_mm_shufle_ps): Ditto.
9127 (_mm_prefetch): Ditto.
9128
9129 2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com>
9130
9131 * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
9132 * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
9133 * real.c (encode_i370_single, decode_i370_single,
9134 encode_i370_double, decode_i370_double): Functions removed.
9135 (i370_single_format, i370_double_format): Initializations removed.
9136 (real_maxval, round_for_format, exact_real_truncate, significand_size):
9137 Consider the log2_b field to always be one.
9138 (ieee_single_format, mips_single_format, coldfire_single_format,
9139 ieee_double_format, mips_double_format, coldfire_double_format,
9140 ieee_extended_motorola_format, ieee_extended_intel_96_format,
9141 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
9142 ibm_extended_format, mips_extended_format, ieee_quad_format,
9143 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
9144 decimal_single_format, decimal_double_format, decimal_quad_format,
9145 c4x_single_format, c4x_extended_format, real_internal_format): Remove
9146 initialization of log2_b.
9147 * real.h (i370_single_format, i370_double_format): Declarations
9148 removed.
9149 * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
9150 field to always be one.
9151
9152 2007-05-21 Andreas Schwab <schwab@suse.de>
9153
9154 * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
9155 NOTE_INSN_BASIC_BLOCK_P.
9156 (process_for_unwind_directive): Likewise.
9157
9158 2007-05-21 Nathan Sidwell <nathan@codesourcery.com>
9159
9160 * builtins.c (expand_builtin_setjmp_setup): Update comment.
9161 * function.h (struct function): Move va_list_gpr_size,
9162 va_list_fpr_size, function_frequency to front of bitfields. Add
9163 calls_unwind_init.
9164 (current_function_calls_unwind_init): New.
9165 * except.c (expand_builtin_unwind_init): Set
9166 current_function_calls_unwind_init not
9167 current_function_has_nonlocal_label.
9168 * reload1.c (has_nonexceptional_receiver): New.
9169 (reload): Use it and current_function_calls_unwind_init to
9170 determine whether call-saved regs must be saved.
9171
9172 2007-05-20 Jan Hubicka <jh@suse.cz>
9173
9174 * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
9175 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
9176 * ddg.c (create_ddg): LIkewise.
9177 * final.c (final): Remove hunk moving line number notes around since
9178 they are no longer present at this stage.
9179 (final_scan_insn): Use NOTE_KIND instead of
9180 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
9181 (output_asm_label): Likewise.
9182 * reorg.c (dbr_schedule): Likewise.
9183 * haifa-sched.c (unlink_other_notes): Likewise.
9184 * mode-switching.c (optimize_mode_switching): Likewise.
9185 * graph.c (start_bb): Likewise.
9186 * rtl.def (NOTE): Update description.
9187 * jump.c (squeeze_notes): Delete.
9188 (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
9189 NOTE_INSN_BASIC_BLOCK_P when possible.
9190 * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
9191 * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
9192 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
9193 (dwarf2out_var_location): Likewise.
9194 * cfgbuild.c (make_edges): Likewise.
9195 (find_basic_blocks_1): Likewise.
9196 * function.c (reorder_blocks_1): Likewise.
9197 (epilogue_done): Likewise.
9198 (reposition_prologue_and_epilogue_notes): Likewise.
9199 * print-rtl.c (print_rtx): Likewise; drop code for printing
9200 line number notes.
9201 (print_rtl): Likewise.
9202 (print_rtl_single): Likewise.
9203 * gcse.c (insert_insn_start_bb): Likewise.
9204 * alias.c (init_alias_analysis): Likewise.
9205 * calls.c (fixup_tail_calls): Likewise.
9206 * except.c (sjlj_emit_function_enter): Likewise.
9207 * emit-rtl.c (add_insn_after): Likeiwse.
9208 (emit_label_before): Likewise.
9209 (emit_label_after): Likewise.
9210 (emit_note_before, emit_note_after, emit_note): Update
9211 parameter to be enum insn_note; do not deal with source
9212 files.
9213 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
9214 Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
9215 when possible.
9216 (merge_blocks_move_successor_nojumps): Simplify now when
9217 we don't have BLOCK notes.
9218 (try_optimize_cfg): Likewise.
9219 * cfglayout.c (skip_insns_after_block): Likewise.
9220 (record_effective_endpoints): Likewise.
9221 (duplicate_insn_chain): Likewise.
9222 * varasm.c (output_constant_pool_1): Likewise.
9223 * sched-deps.c (sched_analyze): Likewise.
9224 * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
9225 Exterminate.
9226 (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
9227 * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
9228 (SET_INSN_DELETED): Simplify.
9229 (NOTE_LINE_NUMBER): Exterminate.
9230 (NOTE_LINE_KIND): New.
9231 (NOTE_INSN_BASIC_BLOCK_P): Update.
9232 (enum insn_note): Simplify.
9233 (GET_NOTE_INSN_NAME) Simplify.
9234 (emit_note_before, emit_note_after, emit_note): Update prototype.
9235 (squeeze_notes): Remove.
9236 * sched-int.h (NOTE_NOT_BB_P): Update.
9237 * resource.c (mark_target_live_regs): Update.
9238 * sched-rgn.c (debug_dependencies): Update.
9239 * sched-vis.c (print_insn): Update.
9240 * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
9241 * config/i386/i386.c (ix86_output_function_epilogue): Update.
9242 * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
9243 (TARGET_ADJUST_UNROLL_MAX): Likewise.
9244 (split_branches): Update.
9245 (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
9246 4.0.0.
9247 (sh_adjust_unroll_max): Exterminate.
9248 * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
9249 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
9250 (m68hc11_reorg): Likewise.
9251 * config/ia64/ia64.c (emit_insn_group_barriers): Update.
9252 (emit_predicate_relation_info): Update.
9253 (process_for_unwind_directive): Update.
9254 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
9255 (output_call): Update.
9256 * config/pa/pa.c (output_lbranch): Update.
9257 (output_millicode_call): Update.
9258 (output_call): Update.
9259 (pa_combine_instructions): Update.
9260 * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
9261 * config/bfin/bfin.c (gen_one_bundle): Update.
9262 * cfgrtl.c (can_delete_note_p): Update.
9263 (delete_insn): Update.
9264 (rtl_merge_blocks): Update.
9265 (commit_one_edge_insertion): Update.
9266 (rtl_verify_flow_info): Update.
9267 * stmt.c (expand_case): Do not call squeeze_notes.
9268
9269 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9270
9271 PR middle-end/7651
9272 PR c++/11856
9273 PR c/12963
9274 PR c/23587
9275 PR other/29694
9276 * c.opt (Wtype-limits): New.
9277 * doc/invoke.texi (Wtype-limits): Document it.
9278 (Wextra): Enabled by -Wextra.
9279 * c-opts.c (c_common_post_options): Enabled by -Wextra.
9280 * c-common.c (shorten_compare): Warn with Wtype-limits.
9281
9282 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
9283
9284 * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
9285 inlined function, not as a macro.
9286 (_mm_alignr_pi8): Ditto.
9287 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
9288 (_mm_inserti_si64): Ditto.
9289 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
9290 (_mm_extract_epi16): Ditto.
9291 (_mm_insert_epi16): Ditto.
9292 (_mm_shufflehi_epi16): Ditto.
9293 (_mm_shufflelo_epi16): Ditto.
9294 (_mm_shuffle_epi32): Ditto.
9295 * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
9296 * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
9297 all functions.
9298 (_m_from_float): Add __extension__ to conversion. Use 0.0f for
9299 float constant.
9300 (_m_to_float): Use C89 compatible assignment.
9301
9302 2007-05-20 Martin Michlmayr <tbm@cyrius.com>
9303
9304 PR target/32007
9305 * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
9306
9307 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9308
9309 PR middle-end/7651
9310 * doc/invoke.texi (Wreturn-type): Complete description.
9311 (Wextra): Delete item about return-type warning.
9312 * c-decl.c: Delete redundant Wextra warning.
9313
9314 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
9315
9316 PR target/31585
9317 * config/i386/pmmintrin.h: Do not include xmmintrin.h
9318 * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
9319 inlined function, not as a macro.
9320 (_mm_prefetch): Ditto.
9321 (_m_pextrw): Ditto.
9322 (_mm_insert_pi16): Ditto.
9323 (_m_pinsrw): Ditto.
9324 (_mm_shuffle_pi16): Ditto. Add const to __N argument.
9325 (_m_pshufw): Ditto. Add const to __N argument.
9326 (_mm_shufle_ps): Ditto. Add const to __mask argument.
9327 * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
9328 (_mm_slli_epi32): Ditto.
9329 (_mm_srli_si128): Implement as always inlined function, not as a
9330 macro. Add __inline to function declaration.
9331 (_mm_slli_si128): Ditto.
9332
9333 2007-05-19 Uros Bizjak <ubizjak@gmail.com>
9334
9335 * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
9336 FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
9337 New constants.
9338 (struct fenv): New structure.
9339 (FP_HANDLE_EXCEPTIONS): New define.
9340 (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
9341 (_FP_DECL_EXP): New define.
9342 (FP_INIT_ROUNDMODE): New define.
9343 (FP_ROUNDMODE): New define.
9344
9345 2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9346
9347 * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
9348 (Wconversion): Update description.
9349 (Wconversion-sign): New.
9350 * c.opt (Wconversion-sign): New.
9351 * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
9352 means disabled for C++. Otherwise, take the status of Wconversion.
9353 * c-common.c (conversion_warning): Warn with either Wconversion or
9354 Wconversion-sign.
9355 (warnings_for_convert_and_check): Conditions are already checked by
9356 conversion_warning.
9357 (convert_and_check): Don't check warnings if the conversion failed.
9358
9359 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
9360 Anatoly Sokolov <aesok@dol.ru>
9361
9362 * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
9363 avr_epilogue_uses) : Add declaration.
9364 * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
9365 * config/avr/constraints.md (R): New constraint.
9366 config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
9367 UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
9368 (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
9369 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
9370 (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
9371 call_prologue_saves, epilogue_restores, return_from_epilogue,
9372 return_from_main_epilogue, return_from_interrupt_epilogue,
9373 return_from_naked_epilogue, prologue, epilogue): New patterns.
9374 (jump): Handle symbol reference.
9375 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
9376 avr_output_function_prologue, avr_output_function_epilogue): Remove
9377 functions.
9378 (avr_init_machine_status, expand_prologue, expand_epilogue,
9379 avr_asm_function_end_prologue, avr_epilogue_uses,
9380 avr_asm_function_begin_epilogue): New functions.
9381 (prologue_size, epilogue_size, jump_tables_size): Remove global
9382 variables.
9383 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
9384 (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
9385 (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
9386 (avr_override_options): Initialise init_machine_status.
9387 (output_movhi): Handle all stack pointer loads.
9388 (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
9389 (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
9390 * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
9391 (EPILOGUE_USES) Redefine.
9392 (machine_function) Declare.
9393
9394 2007-05-19 Richard Sandiford <richard@codesourcery.com>
9395
9396 * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
9397 Use a single return statement.
9398
9399 2007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9400
9401 PR middle-end/30250
9402 * builtins.c (do_mpfr_lgamma_r): New.
9403 (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
9404 * tree.h (CASE_FLT_FN_REENT): New.
9405
9406 2007-05-18 Geoffrey Keating <geoffk@apple.com>
9407
9408 * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
9409 (output_die): Use 'unsigned long' with %x.
9410 * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
9411 HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
9412 * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
9413
9414 * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
9415
9416 2007-05-18 H.J. Lu <hongjiu.lu@intel.com>
9417
9418 PR target/31989
9419 PR target/31681
9420 PR target/31666
9421 * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
9422 true if function has no argument.
9423
9424 2007-05-18 DJ Delorie <dj@redhat.com>
9425
9426 * config/mips/mips.c (mips_offset_within_alignment_p): New.
9427 (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
9428
9429 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
9430
9431 * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
9432 sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
9433 count_trailing_zeros.
9434 (__i386__): Implement count_leading_zeros using __builtin_clz().
9435 Implement count_trailing_zeros usign __builtin_ctz().
9436
9437 2007-05-18 Richard Sandiford <richard@codesourcery.com>
9438
9439 * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
9440
9441 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
9442
9443 PR middle-end/31344
9444 * expr.c (emit_move_change_mode): Change mode of push operands here.
9445
9446 2007-05-17 Ian Lance Taylor <iant@google.com>
9447
9448 PR tree-optimization/31953
9449 * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
9450 Change all callers.
9451 (set_value_range_to_null): Call set_value_range_to_value.
9452 (extract_range_from_comparison): Likewise.
9453
9454 2007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9455
9456 * toplev.c (print_version): Output GMP/MPFR version info.
9457
9458 * builtins.c (CASE_MATHFN_REENT): New macro.
9459 (mathfn_built_in): Use it.
9460 * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
9461 BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
9462 BUILT_IN_LGAMMAL_R): New.
9463 * doc/extend.texi: Document new builtins.
9464
9465 PR middle-end/31796
9466 * builtins.c (do_mpfr_remquo): New.
9467 (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
9468 (fold_builtin_3): Handle BUILT_IN_REMQUO.
9469
9470 PR middle-end/30251
9471 * builtins.c (fold_builtin_1): Handle y0, y1.
9472 (fold_builtin_2): Handle yn.
9473
9474 PR middle-end/30251
9475 * builtins.c (do_mpfr_bessel_n): New.
9476 (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
9477 (fold_builtin_2): Handle BUILT_IN_JN.
9478
9479 2007-05-17 Danny Smith <dannysmith@users.sourceforge.net>
9480
9481 PR target/31965
9482 * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
9483 TYPE_PRECISION (intmax_type_node).
9484
9485 2007-05-17 Steve Ellcey <sje@cup.hp.com>
9486
9487 PR target/31850
9488 * reload.c (subst_reloads): Remove checking.
9489
9490 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
9491
9492 PR rtl-optimization/31691
9493 * combine.c (simplify_set): Build a new src pattern instead of
9494 substituting its operands in the COMPARE case.
9495
9496 2007-05-17 Zdenek Dvorak <dvorakz@suse.cz>
9497
9498 * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
9499 (execute_vrp): Preserve loops through jump threading.
9500 * tree-ssa-threadupdate.c (thread_single_edge,
9501 dbds_continue_enumeration_p, determine_bb_domination_status,
9502 thread_through_loop_header): New functions.
9503 (create_edge_and_update_destination_phis,
9504 create_edge_and_update_destination_phis): Set loops for the new blocks.
9505 (prune_undesirable_thread_requests): Removed.
9506 (redirect_edges): Do not pretend that redirect_edge_and_branch can
9507 create new blocks.
9508 (thread_block): Do not call prune_undesirable_thread_requests.
9509 Update loops.
9510 (mark_threaded_blocks): Select edges to thread here.
9511 (thread_through_all_blocks): Take may_peel_loop_headers argument.
9512 Thread edges through loop headers independently.
9513 * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
9514 * tree-pass.h (TODO_mark_first_instance): New.
9515 (first_pass_instance): Declare.
9516 * cfghooks.c (duplicate_block): Put the block to the original loop
9517 if copy is not specified.
9518 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
9519 jump threading. Pass may_peel_loop_headers to
9520 thread_through_all_blocks according to first_pass_instance.
9521 * cfgloop.h (create_preheader): Declare.
9522 * tree-flow.h (thread_through_all_blocks): Declaration changed.
9523 * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
9524 * passes.c (first_pass_instance): New variable.
9525 (next_pass_1): Set TODO_mark_first_instance.
9526 (execute_todo): Set first_pass_instance.
9527
9528 2007-05-17 Uros Bizjak <ubizjak@gmail.com>
9529
9530 PR tree-optimization/24659
9531 * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
9532 OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
9533 OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
9534 OTI_vec_pack_ufix_trunc.
9535 (vec_unpacks_float_hi_optab): Define new macro.
9536 (vec_unpacks_float_lo_optab): Ditto.
9537 (vec_unpacku_float_hi_optab): Ditto.
9538 (vec_unpacku_float_lo_optab): Ditto.
9539 (vec_pack_sfix_trunc_optab): Ditto.
9540 (vec_pack_ufix_trunc_optab): Ditto.
9541 * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
9542 and vec_pack_[s|u]fix_trunc_optab using
9543 vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
9544 * tree-vectorizer.c (supportable_widening_operation): Handle
9545 FLOAT_EXPR and CONVERT_EXPR. Update comment.
9546 (supportable_narrowing_operation): New function.
9547 * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
9548 * tree-vect-transform.c (vectorizable_conversion): Handle
9549 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
9550 (vect_gen_widened_results_half): Move before vectorizable_conversion.
9551 (vectorizable_type_demotion): Call supportable_narrowing_operation()
9552 to check for target support.
9553 * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
9554 for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
9555 for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
9556 for VEC_PACK_FIX_TRUNC_EXPR.
9557 (expand_binop): Special case mode of the result for
9558 vec_pack_[u|s]fix_trunc_optab.
9559 (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
9560 vec_pack_[u|s]fix_trunc_optab.
9561
9562 * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
9563 VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
9564 * tree-pretty-print.c (dump_generic_node): Handle
9565 VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
9566 VEC_PACK_FIX_TRUNC_EXPR.
9567 (op_prio): Ditto.
9568 * expr.c (expand_expr_real_1): Ditto.
9569 * tree-inline.c (estimate_num_insns_1): Ditto.
9570 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
9571
9572 * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
9573 (vec_unpacks_float_lo_v8hi): Ditto.
9574 (vec_unpacku_float_hi_v8hi): Ditto.
9575 (vec_unpacku_float_lo_v8hi): Ditto.
9576 (vec_unpacks_float_hi_v4si): Ditto.
9577 (vec_unpacks_float_lo_v4si): Ditto.
9578 (vec_pack_sfix_trunc_v2df): Ditto.
9579
9580 * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
9581 Document.
9582 [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
9583 [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
9584 * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
9585 [vec_pack_ufix_trunc]: Ditto.
9586 [vec_unpacks_float_hi]: Ditto.
9587 [vec_unpacks_float_lo]: Ditto.
9588 [vec_unpacku_float_hi]: Ditto.
9589 [vec_unpacku_float_lo]: Ditto.
9590
9591 2007-05-16 Uros Bizjak <ubizjak@gmail.com>
9592
9593 * soft-fp/README: Update for new files.
9594 * soft-fp/floattisf.c: New file.
9595 * soft-fp/floattidf.c: New file.
9596 * soft-fp/floattitf.c: New file.
9597 * soft-fp/floatuntisf.c: New file.
9598 * soft-fp/floatuntidf.c: New file.
9599 * soft-fp/floatuntitf.c: New file.
9600 * soft-fp/fixsfti.c: New file.
9601 * soft-fp/fixdfti.c: New file.
9602 * soft-fp/fixtfti.c: New file.
9603 * soft-fp/fixunssfti.c: New file.
9604 * soft-fp/fixunsdfti.c: New file.
9605 * soft-fp/fixunstfti.c: New file.
9606 * soft-fp/extendxftf.c: New file.
9607 * soft-fp/trunctfxf.c: New file.
9608
9609 * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
9610 (__trunctfxf2): Ditto.
9611
9612 * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
9613 __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
9614 __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
9615 __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
9616 __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
9617 __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
9618
9619 * config/i386/t-fprules-softfp64: New file.
9620 * config/i386/sfp-machine.h: New file.
9621 * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
9622 x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
9623 and soft-fp/t-softfp to tmake_file.
9624 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
9625 i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
9626
9627 * config/i386/t-linux64 (softfp_wrap_start): New.
9628 (softfp_wrap_end): New.
9629 * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
9630 supported for TARGET_64BIT.
9631
9632 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
9633
9634 * c-common.c (c_common_signed_or_unsigned_type): Emulate
9635 c_common_unsigned_type behavior.
9636
9637 2007-05-16 Paolo Bonzini <bonzini@gnu.org>
9638
9639 * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
9640 calls as pure.
9641
9642 2007-05-16 Eric Christopher <echristo@apple.com>
9643
9644 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
9645 saving after stack push. Set sp_offset whenever we push.
9646 (rs6000_emit_epilogue): Move altivec register restore before
9647 stack push.
9648
9649 2007-05-16 Richard Sandiford <richard@codesourcery.com>
9650
9651 * configure.ac: Allow sysroots to be relocated under $prefix as
9652 well as $exec_prefix.
9653 * configure: Regenerate.
9654
9655 2007-05-16 Richard Sandiford <richard@codesourcery.com>
9656
9657 Revert:
9658
9659 2007-05-12 Richard Sandiford <richard@codesourcery.com>
9660
9661 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
9662 (gcc_tooldir): Likewise.
9663 * configure: Regenerate.
9664 * Makefile.in (libsubdir_to_prefix): New variable, based on the
9665 old configure.ac gcc_tooldir setting.
9666 (prefix_to_exec_prefix): New variable.
9667 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
9668 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
9669
9670 2007-05-14 Janis Johnson <janis187@us.ibm.com>
9671
9672 * c-typeck.c (build_binary_op): Return early for error.
9673
9674 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz>
9675
9676 * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
9677 struct nb_iter_bound.
9678 (free_numbers_of_iterations_estimates_loop): Use ggc_free.
9679 * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
9680 * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
9681 * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
9682 (struct scev_info_str, scalar_evolution_info): Add GTY markers.
9683 (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
9684 (del_scev_info): Use ggc_free.
9685 (scev_initialize): Allocate scalar_evolution_info in gc memory.
9686 * loop-init.c: Include ggc.h.
9687 (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
9688 (loop_optimizer_finalize): Use ggc_free.
9689 * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
9690 pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
9691 pass_iv_optimize): Add TODO_ggc_collect.
9692 * function.h (struct function): Remove skip marker from
9693 x_current_loops.
9694 * cfgloop.c: Include ggc.h.
9695 (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
9696 memory.
9697 (establish_preds): Vector superloops is gc allocated.
9698 (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of
9699 loop->exits list.
9700 (flow_loops_find): Vector larray is gc allocated.
9701 (loop_exit_free): Use ggc_free.
9702 (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
9703 that head of exits list is now not a part of struct loop.
9704 (record_loop_exits): Allocate exits table in gc memory.
9705 (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
9706 that head of exits list is now not a part of struct loop.
9707 * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
9708 struct loop_exit): Add GTY marker.
9709 (struct loop): Add GTY marker. Make superloops vector gc allocated.
9710 Add skip marker to aux field. Make head of exits list a separate
9711 object.
9712 (struct loops): Add GTY marker. Make larray vector gc allocated.
9713 Add param marker to exits table.
9714 (get_loops): Type changed.
9715 * Makefile.in (tree-scalar-evolution.o): Add
9716 gt-tree-scalar-evolution.h dependency.
9717 (cfgloop.o, loop-init.o): Add ggc.h dependency.
9718 (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
9719 * basic-block.h (struct basic_block_def): Remove skip marker from
9720 loop_father field.
9721
9722 2007-05-14 Uros Bizjak <ubizjak@gmail.com>
9723
9724 * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
9725 of 0 in the call to expand_expr().
9726 (expand_builtin_mathfn_3): Ditto.
9727 (expand_builtin_interclass_mathfn): Ditto.
9728 (expand_builtin_cexpi): Ditto.
9729 (expand_builtin_int_roundingfn): Ditto.
9730 (expand_builtin_int_roundingfn_2): Ditto.
9731 (expand_builtin_pow): Ditto.
9732 (expand_builtin_powi): Ditto.
9733 (expand_builtin_bswap): Ditto.
9734 (expand_builtin_unop): Ditto.
9735 (expand_builtin_fabs): Ditto.
9736 (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
9737 the call to expand_expr().
9738 (expand_builtin_sync_operation): Ditto.
9739 (expand_builtin_compare_and_swap): Ditto.
9740 (expand_builtin_lock_test_and_set): Ditto.
9741 * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
9742 instead of 0 in the call to expand_expr().
9743 (expand_builtin_extract_return_addr): Ditto.
9744 (expand_builtin_eh_return): Ditto.
9745 (expand_eh_return): Ditto.
9746 * explow.c (expr_size): Ditto.
9747 * expr.c (optimize_bitfield_assignment_op): Ditto.
9748 (expand_assignement): Ditto.
9749 (store_expr): Ditto.
9750 (store_field): Ditto.
9751 (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
9752 the call to expand_expr().
9753 (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
9754 in the call to expand_expr().
9755 [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
9756 BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
9757 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
9758 of expand_expr().
9759 * optabs.c (expand_vec_shift_expr): Ditto.
9760 (expand_vec_cond_expr): Ditto.
9761 (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
9762 call to expand_expr().
9763 * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
9764 in the call to expand_expr().
9765
9766 2007-05-14 Dave Korn <dave.korn@artimi.com>
9767
9768 * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
9769
9770 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
9771
9772 * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
9773 instead of c_common_unsigned_type.
9774 (c_common_unsigned_type): Remove.
9775 (shorten_compare): Use c_common_signed_or_unsigned_type instead of
9776 c_common_unsigned_type.
9777 (c_common_nodes_and_builtins): Use unsigned_type_for instead of
9778 c_common_unsigned_type.
9779 * c-common.h (c_common_unsigned_type): Remove.
9780 * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
9781 c_common_unsigned_type.
9782 * c-format.c (check_format_types): Use unsigned_type_for instead of
9783 c_common_unsigned_type.
9784 * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
9785 * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
9786 of c_common_unsigned_type.
9787 * convert.c (convert_to_integer): Use unsigned_type_for instead of
9788 lang_hooks.types.unsigned_type.
9789 * expmed.c (make_tree): Use unsigned_type_for instead of
9790 lang_hooks.types.unsigned_type.
9791 * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
9792 lang_hooks.types.unsigned_type.
9793 (build_range_check): Likewise.
9794 (fold_unary): Likewise.
9795 (fold_binary): Likewise.
9796 (fold_ternary): Likewise.
9797 * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
9798 * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
9799 * tree.c (get_unsigned_type): New.
9800 (unsigned_type_for): Use get_unsigned_type instead of
9801 lang_hooks.types.unsigned_type.
9802
9803 2007-05-14 Kazu Hirata <kazu@codesourcery.com>
9804
9805 * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
9806 to m68k_get_function_kind. Update its prototype.
9807 * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
9808 interrupt_thread.
9809 (m68k_interrupt_function_p): Return enum m68k_function_type
9810 instead of bool. Rename to m68k_get_function_kind.
9811 (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
9812 target is not fido.
9813 (m68k_compute_frame_layout): Don't mark any register for save
9814 if an interrupt_thread attribute is specified.
9815 (m68k_hard_regno_rename_ok): Update a use of
9816 m68k_interrupt_function_p.
9817 * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
9818 m68k_interrupt_function_p.
9819 (m68k_function_type): New.
9820 * config/m68k/m68k.md (*return): Output a 'sleep' instruction
9821 for a function with an interrupt_thread attribute.
9822 * doc/extend.texi: Document the interrupt_thread attribute.
9823
9824 2007-05-13 Daniel Berlin <dberlin@dberlin.org>
9825
9826 Fix PR tree-optimization/31911
9827 * tree-ssa-pre.c (phi_translate): Make sure to cache results even
9828 if they didn't change the expression.
9829
9830 2007-05-13 Zdenek Dvorak <dvorakz@suse.cz>
9831
9832 * tree-scalar-evolution.c (resolve_mixers): Exported.
9833 * tree-scalar-evolution.h (resolve_mixers): Declare.
9834 * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
9835 ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
9836 record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
9837 base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
9838 init_array_ref, init_pointer_ref, analyze_indirect_ref,
9839 strip_conversion, analyze_offset_expr, address_analysis,
9840 object_analysis, analyze_offset): Removed.
9841 (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
9842 split_constant_offset, canonicalize_base_object_address,
9843 object_address_invariant_in_loop_p, disjoint_objects_p,
9844 dr_may_alias_p, dr_address_invariant_p): New functions.
9845 (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
9846 and dr_analyze_alias.
9847 (initialize_data_dependence_relation): Use dr_may_alias_p
9848 and object_address_invariant_in_loop_p.
9849 (compute_self_dependence): Handle the case when
9850 DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
9851 (find_data_references_in_stmt): Restrict the analysis of data
9852 references to the given loop nest.
9853 (find_data_references_in_loop): Made static. Pass loop nest to
9854 find_data_references_in_stmt.
9855 (compute_data_dependences_for_loop): Use DR_VOPS.
9856 (free_data_ref): Free DR_VOPS.
9857 * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
9858 (struct innermost_loop_behavior): ... new.
9859 (struct base_object_info): Replaced by ...
9860 (struct indices): ... new.
9861 (struct dr_alias): New.
9862 (enum data_ref_type): Removed.
9863 (struct data_reference): Consist of struct innermost_loop_behavior,
9864 struct indices and struct dr_alias.
9865 (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
9866 (DR_MEMTAG): Renamed to ...
9867 (DR_SYMBOL_TAG): ... this.
9868 (find_data_references_in_loop): Declaration removed.
9869 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
9870 instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL.
9871 (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
9872 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
9873
9874 2007-05-13 Revital Eres <eres@il.ibm.com>
9875
9876 * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
9877 which walks virtual def-use chains to find redundant stores.
9878 (dse_optimize_stmt): Call it.
9879
9880 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
9881
9882 * gcse.c (gcse_main): Do jump bypassing in CPROP2.
9883 * passes.c (init_optimization_passes): Move pass_jump_bypass
9884 after loop2.
9885
9886 * basic-block.h (bb_has_eh_pred): Fix style issue.
9887
9888 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
9889
9890 PR rtl-optimization/31848
9891 * loop-invariant.c (move_invariant_reg): If we move an insn
9892 with a REG_EQUAL note, and that insn is not always executed,
9893 remove the REG_EQUAL note.
9894
9895 2007-05-12 Richard Guenther <rguenther@suse.de>
9896
9897 PR tree-optimization/31797
9898 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
9899 propagate into a stmt that has volatile ops.
9900
9901 2007-05-12 Richard Sandiford <richard@codesourcery.com>
9902
9903 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
9904 (gcc_tooldir): Likewise.
9905 * configure: Regenerate.
9906 * Makefile.in (libsubdir_to_prefix): New variable, based on the
9907 old configure.ac gcc_tooldir setting.
9908 (prefix_to_exec_prefix): New variable.
9909 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
9910 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
9911
9912 2007-05-11 Silvius Rus <rus@google.com>
9913
9914 * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
9915 * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
9916 * c-common.h (strict_aliasing_warning): Change return type.
9917 * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
9918 * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
9919 (build_c_cast): Condition call to strict_aliasing_warning.
9920 * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
9921 * flags.h (set_Wstrict_aliasing): Declare.
9922 * opts.c (set_Wstrict_alising): Define, add call to.
9923 * tree-flow.h (strict_aliasing_warning_backend): Declare.
9924 * tree-ssa-alias-warnings.c: New file.
9925 * tree-ssa-alias.c (compute_may_aliases): Add call to
9926 strict_aliasing_warning_backend.
9927
9928 2007-05-11 Zdenek Dvorak <dvorakz@suse.cz>
9929
9930 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
9931 Use loop_depth and loop_outer accessor functions.
9932 * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
9933 determine_invariantness_stmt, move_computations_stmt): Ditto.
9934 * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
9935 add_loop, loopify, unloop, fix_loop_structure): Ditto.
9936 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
9937 * tree-scalar-evolution.c (interpret_loop_phi,
9938 compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
9939 instantiate_parameters_1, scev_const_prop): Ditto.
9940 * cfghooks.c (make_forwarder_block): Ditto.
9941 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
9942 * modulo-sched.c (loop_canon_p): Ditto.
9943 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
9944 slpeel_can_duplicate_loop_p): Ditto.
9945 * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
9946 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
9947 * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
9948 cancel_loop, verify_loop_structure): Ditto.
9949 (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
9950 add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
9951 superloops vector instead of "pred" array.
9952 (establish_preds): Take father loop as an argument. Initialize the
9953 superloops vector.
9954 (flow_loop_tree_node_add): Pass father loop to establish_preds.
9955 Do not initialize loop->outer.
9956 (flow_loop_tree_node_remove): Truncate the superloops vector.
9957 * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
9958 "pred" merged to "superloops" vector.
9959 (loop_depth, loop_outer): New.
9960 (fel_init): Use loop_outer.
9961
9962 2007-05-11 Jan Hubicka <jh@suse.cz>
9963
9964 * cgraphunit.c: Include gt-cgraphunit.h
9965 (static_ctors, static_dtors): New static vars.
9966 (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
9967 based on implementation in c-common.c
9968 (cgraph_finalize_function): Call record_cdtor_fn.
9969 (cgraph_optimize): Call cgraph_build_cdtor_fns.
9970 * decl.c (finish_function): Do not call c_record_cdtor_fn.
9971 (c_write_global_declarations): Do not call c_build_cdtor_fns.
9972 * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
9973 build_cdtor, c_build_cdtor_fns): Remove.
9974 * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
9975 c_build_cdtor_fns): Remove prototype.
9976
9977 2007-05-11 Paolo Carlini <pcarlini@suse.de>
9978
9979 PR other/31852
9980 * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
9981 * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
9982 * builtins.c (fold_builtin_memchr): New.
9983 (expand_builtin_memchr): Call the latter.
9984 (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
9985 * doc/extend.texi ([Other built-in functions provided by GCC]):
9986 Document memchr.
9987
9988 2007-05-11 Andreas Krebbel <krebbel1@de.ibm.com>
9989
9990 * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
9991 PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
9992 PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
9993 PFPO_OP1_TYPE_SHIFT): Constants added.
9994 (DFP_ALL): Mode macro defined.
9995 ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
9996 "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
9997 Insn definitions added.
9998 ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
9999 "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
10000 Expanders added.
10001
10002 2007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
10003
10004 PR tree-optimization/31885
10005 * tree-chrec.c (chrec_contains_undetermined): Do not consider
10006 NULL_TREE to be undetermined.
10007 (automatically_generated_chrec_p): Return false for NULL.
10008
10009 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
10010
10011 * config/bfin/bfin.h (MOVE_RATIO): Define.
10012
10013 2007-05-10 Richard Sandiford <richard@codesourcery.com>
10014
10015 * config.gcc (sparc-wrs-vxworks): New target.
10016 * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
10017 * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
10018 * config/sparc/sparc.h: Include vxworks-dummy.h.
10019 (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
10020 include LABEL_REFs too.
10021 * config/sparc/sparc.c (sparc_expand_move): Don't assume that
10022 _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
10023 VxWorks.
10024 (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
10025 on VxWorks.
10026 (load_pic_register): Use gen_vxworks_load_got for VxWorks.
10027 (sparc_emit_call_insn): New function.
10028 (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
10029 functions when generating VxWorks PIC.
10030 * config/sparc/sparc.md (vxworks_load_got): New pattern.
10031 (call, call_value): Use sparc_emit_call_insn instead of
10032 emit_call_insn.
10033
10034 2007-05-09 Bob Wilson <bob.wilson@acm.org>
10035
10036 * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
10037
10038 2007-05-09 Bob Wilson <bob.wilson@acm.org>
10039
10040 * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
10041 for floating-point values if HOST_BITS_PER_LONG > 32. Use
10042 split_double instead of operand_subword.
10043
10044 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
10045
10046 * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
10047 * config/bfin/bfin.c (bfin_local_alignment): New function.
10048 * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
10049
10050 2007-05-08 Chao-ying Fu <fu@mips.com>
10051
10052 * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
10053 * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
10054 (smsub_widen_optab, umsub_widen_optab): Define.
10055 * optabs.c (init_optabs): Initialize smsub_widen_optab and
10056 umsub_widen_optab.
10057 * genopinit.c (optabs): Fill in smsub_widen_optab and
10058 umsub_widen_optab.
10059 * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
10060 and umsub_widen_optab to implement multiply-subtract sequences.
10061 * config/mips/mips.md (*msac<u>_di): Rename to...
10062 (<u>msubsidi4): ...this. Extend condition to include
10063 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
10064 of operand 0 to "ka" and use the three-operand form of msub<u>
10065 for TARGET_DSPR2.
10066 * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
10067 to define_expands.
10068
10069 2007-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
10070
10071 PR rtl-optimization/28011
10072 * reload.c (push_reload): Set dont_share if IN appears in OUT
10073 also when IN is a PLUS rtx.
10074 (reg_overlap_mentioned_for_reload_p): Return true if X and IN
10075 are same PLUS rtx.
10076
10077 2007-05-08 Kazu Hirata <kazu@codesourcery.com>
10078
10079 * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't
10080 call unshare_all_decls.
10081 (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
10082 (unshare_all_decls): Remove.
10083
10084 2007-05-08 Simon Martin <simartin@users.sourceforge.net>
10085
10086 PR 31847
10087 * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
10088 dumps.
10089
10090 2007-05-08 Sandra Loosemore <sandra@codesourcery.com>
10091 Nigel Stephens <nigel@mips.com>
10092
10093 * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
10094 Update comments and all uses.
10095 (MIN_FPRS_PER_FMT): Define.
10096 * config/mips/mips.c (function_arg): Fix to correctly handle
10097 the -mips32r2 -mfp64 -mabi=32 case.
10098 (override_options): Enable use of odd-numbered registers for
10099 SFmode values on MIPS32.
10100 (mips_save_reg_p): Save whole floating-point register pair if
10101 either half is used.
10102 (compute_frame_size): Fix comment.
10103
10104 2007-05-08 Jie Zhang <jie.zhang@analog.com>
10105
10106 * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
10107 argument of type bool.
10108 * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
10109 argument. Safely select temporary P register according to it.
10110 (do_link): Change call site of add_to_reg accordingly.
10111 (do_unlink): Add epilogue_p as a fourth argument and pass it
10112 to add_to_reg.
10113 (expand_interrupt_handler_epilogue): Change call of do_unlink
10114 accordingly.
10115 (bfin_expand_prologue): Add a third argument sibcall_p.
10116 * config/bfin/bfin.md (epilogue): Change call of
10117 bfin_expand_epilogue accordingly.
10118 (sibcall_epilogue): Likewise.
10119 (eh_return_internal): Likewise.
10120
10121 * config/bfin/bfin-protos.h (enum bfin_cpu): Add
10122 BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
10123 * config/bfin/bfin.c (bfin_handle_option): Handle
10124 -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
10125 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
10126 Support bf534, bf536 and bf561.
10127 * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
10128
10129 2007-05-08 Uros Bizjak <ubizjak@gmail.com>
10130
10131 PR target/31854
10132 * config/i386/i386.c (ix86_function_regparm): Process local
10133 functions only when TREE_CODE (decl) equals FUNCTION_DECL.
10134
10135 2007-05-07 Mike Stump <mrs@apple.com>
10136
10137 * doc/invoke.texi (Warning Options): Document that -Wempty-body
10138 also checks for and while statements in C++.
10139
10140 2007-05-07 Nathan Froyd <froydnj@codesourcery.com>
10141
10142 * gcc.c (at_file_supplied): New variable.
10143 (main): Set it if we expanded argv.
10144 (do_spec_1): Pass an @-file to the linker if we were called with
10145 an @-file argument and HAVE_GNU_LD.
10146 * collect2.c (at_file_supplied): New variable.
10147 (response_file): New variable.
10148 (collect_exit): Unlink response_file if necessary.
10149 (handler): Likewise.
10150 (do_wait): Likewise.
10151 (main): Set at_file_supplied if we expanded argv.
10152 (collect_execute): Pass an @-file to subprocesses if we were called
10153 with an @-file argument.
10154 * configure.ac: Add define for HAVE_GNU_LD.
10155 * configure: Regenerate.
10156 * config.in: Regenerate.
10157
10158 2007-05-07 Naveen.H.S <naveen.hs@kpitcummins.com>
10159
10160 * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
10161 operand to HI mode.
10162 (mulsi3): New.
10163 (divsi3): New.
10164 (udivsi3): New.
10165
10166 2007-05-07 Jayant Sonar <jayants@kpitcummins.com>
10167
10168 * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
10169 (TARGET_ENCODE_SECTION_INFO): Re-define.
10170 (m32c_encode_section_info): New
10171 (function_vector_handler): New
10172 (current_function_special_page_vector): New
10173 (m32c_special_page_vector_p): New.
10174 * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
10175 Prototype.
10176 * config/m32c/jump.md: Added instruction JSRS for functions
10177 with attribute "function_vector".
10178 * doc/extend.texi (function_vector): Added description
10179 for M16C, M32C targets.
10180
10181 2007-05-07 DJ Delorie <dj@redhat.com>
10182
10183 PR 31794
10184 * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
10185 ashrpsi3, lshrpsi3): Update shift count constraint.
10186
10187 2007-05-07 Danny Smith <dannysmith@users.sourceforge.net>
10188 Nathan Froyd <froydnj@codesourcery.com>
10189
10190 PR 22133
10191 * c-incpath.c (add_path): Strip trailing path separators.
10192
10193 2007-05-07 Eric Botcazou <ebotcazou@adacore.com>
10194
10195 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
10196 Free dominance info before purging EH edges.
10197 (eliminate_degenerate_phis): Likewise.
10198 (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
10199
10200 2007-05-07 Jan Hubicka <jh@suse.cz>
10201
10202 * gimplify.c (gimplify_expr): Do not crash when folding
10203 (void *)(int)&a + 4.
10204
10205 2007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10206
10207 PR driver/31694
10208 * c-opts.c (lang_fortran): Make it non static.
10209 * c-common.h (lang_fortran): New prototype.
10210 * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
10211 -lang-fortran option was passed by the driver.
10212
10213 2007-05-06 Eric Botcazou <ebotcazou@adacore.com>
10214
10215 * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
10216 of ASSERT_CHECKING. Tweak message.
10217
10218 2007-05-06 Revital Eres <eres@il.ibm.com>
10219
10220 PR 30957
10221 * loop-unroll.c (insert_var_expansion_initialization):
10222 Initialize the expansions with -zero instead of +zero.
10223
10224 2007-05-05 Aurelien Jarno <aurelien@aurel32.net>
10225
10226 * config/pa/pa.md: Split tgd_load, tld_load and tie_load
10227 into pic and non-pic versions. Mark r19 as used for
10228 tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
10229 for tgd_load, tld_load and tie_load .
10230 * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
10231 version of tgd_load, tld_load and tie_load depending on the
10232 value of flag_pic.
10233
10234 2007-05-04 Ulrich Drepper <drepper@redhat.com>
10235 Jakub Jelinek <jakub@redhat.com>
10236
10237 * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
10238 (__do_global_dtors_aux): Use more paranoid loop to run
10239 destructors if HIDDEN_DTOR_LIST_END.
10240 (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
10241
10242 2007-05-04 Jakub Jelinek <jakub@redhat.com>
10243
10244 * varasm.c (align_variable): Don't increase alignment for
10245 DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
10246 DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
10247
10248 2007-05-04 Josh Conner <jconner@apple.com>
10249
10250 * basic-block.h (cdi_direction): Assign values to all enumeration
10251 constants.
10252 (dom_computed): Remove.
10253 (dom_info_state): New.
10254 (set_dom_info_availability): New.
10255 * tree-ssa-loop-im.c (determine_invariantness): Initialize
10256 walk_data.dom_direction.
10257 * cfghooks.c (delete_basic_block): Use dom_info_available_p()
10258 instead of dom_computed[].
10259 (split_edge): Likewise.
10260 (create_basic_block): Likewise.
10261 (merge_blocks): Likewise.
10262 * ifcvt.c (find_if_header): Likewise.
10263 * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
10264 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
10265 * tree-ssa.c (verify_ssa): Likewise.
10266 * tree-cfg.c (tree_verify_flow_info): Likewise.
10267 (remove_edge_and_dominated_blocks): Likewise.
10268 * dominance.c (dom_computed): Make static.
10269 (calc_dfs_tree_nonrec): Change third param to a bool.
10270 (calc_dfs_tree): Change second param to a bool.
10271 (calc_idioms): Change second param to a bool. Use
10272 dom_convert_dir_to_idx.
10273 (init_dom_info): Validate dir before using.
10274 (dom_convert_dir_to_idx): New.
10275 (calculate_dominance_info): Use dom_convert_dir_to_idx. New
10276 variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
10277 (free_dominance_info): Use dom_convert_dir_to_idx.
10278 (get_immediate_dominator): Likewise.
10279 (set_immediate_dominator): Likewise.
10280 (get_dominated_by): Likewise.
10281 (redirect_immediate_dominators): Likewise.
10282 (nearest_common_denominator): Likewise.
10283 (dominated_by_p): Likewise.
10284 (bb_dom_dfs_in): Likewise.
10285 (bb_dom_dfs_out): Likewise.
10286 (recount_dominator): Likewise.
10287 (iterate_fix_dominators): Likewise.
10288 (add_to_dominance_info): Likewise.
10289 (delete_from_dominance_info): Likewise.
10290 (first_dom_son): Likewise.
10291 (next_dom_son): Likewise.
10292 (dom_info_available_p): Likewise.
10293 (dom_info_state): New.
10294 (set_dom_info_availability): New.
10295
10296 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
10297
10298 * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
10299 Expander removed.
10300 ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
10301
10302 2007-05-04 Bob Wilson <bob.wilson@acm.org>
10303
10304 * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
10305 (subdi3, subdi_carry): Delete.
10306
10307 2007-05-04 Jan Hubicka <jh@suse.cz>
10308 Richard Guenther <rguenther@suse.de>
10309
10310 * opts.c (decode_options): Do not fiddle with inlining
10311 parameters in case of optimizing for size.
10312 * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
10313 for size do nothing.
10314 (cgraph_decide_inlining_of_small_function): When optimizing for
10315 size never inline functions increasing caller size.
10316 (cgraph_early_inlining): Inline for size when optimizing for size.
10317
10318 2007-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
10319
10320 * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
10321 logical operations piecewise.
10322 (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
10323 zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
10324 subdi_sesidi_di): Delete.
10325 (add_with_carry): Produce carry in CC instead of a DREG to shorten
10326 the generated sequence. Allow three-reg add in constraints. Rewrite
10327 the rtl expression for carry to avoid zero_extend of a constant.
10328 (sub_with_carry): New pattern.
10329 (adddi3, subdi3): Change into define_expand. For subtract, generate a
10330 different sequence not involving jumps.
10331 (notbi): Now a named pattern.
10332
10333 2007-05-04 Bradley Lucier <lucier@math.purdue.edu>
10334
10335 * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
10336 Add the note about a significant loss of accuracy of some
10337 mathematical routines when these options are used.
10338
10339 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
10340
10341 * haifa-sched.c (rtx_vec_t): New typedef.
10342 (contributes_to_priority_p): Extract piece of priority () into new
10343 static function.
10344 (priority): Use the function. Add assertion.
10345 (rank_for_schedule, set_priorities): Add assertion to check that
10346 insn's priority is initialized.
10347 (clear_priorities, calc_priorities): Change signature. Make it update
10348 all relevant insns. Update all callers ('add_to_speculative_block ()'
10349 and 'create_block_check_twin ()').
10350 * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
10351 Add new field 'priority_status'.
10352 (INSN_PRIORITY_STATUS): New macro.
10353 (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
10354
10355 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
10356
10357 * sched-ebb.c (debug_ebb_dependencies): New static function.
10358 (init_ready_list): Use it.
10359
10360 * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
10361 with changed signature and 'debug_rgn_dependencies ()'.
10362 (debug_rgn_dependencies): New static function.
10363 (init_ready_list): Use it.
10364
10365 * sched-int.h (debug_dependencies): Declare.
10366
10367 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
10368
10369 * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
10370
10371 2007-05-04 Dirk Mueller <dmueller@suse.de>
10372
10373 * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
10374
10375 2007-05-03 Jan Hubicka <jh@suse.cz>
10376
10377 * fold-const.c (fold_unary): Convert (T1)(X op Y) into
10378 ((T1)X op (T1)Y), for pointer type in more cases than before.
10379
10380 * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
10381
10382 * tree-object-size.c (plus_expr_object_size): When operand size is
10383 unknown, return unknown.
10384
10385 2007-05-03 Dirk Mueller <dmueller@suse.de>
10386
10387 * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
10388
10389 * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
10390 options.
10391
10392 * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
10393
10394 2007-05-03 Janis Johnson <janis187@us.ibm.com>
10395
10396 * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
10397
10398 2007-05-03 Joseph Myers <joseph@codesourcery.com>
10399
10400 * config/soft-fp/double.h, config/soft-fp/extended.h,
10401 config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
10402 config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
10403 config/soft-fp/op-2.h, config/soft-fp/op-4.h,
10404 config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
10405 glibc CVS.
10406
10407 2007-05-03 Ian Lance Taylor <iant@google.com>
10408
10409 * config/rs6000/rs6000.c (rs6000_override_options): Don't set
10410 MASK_PPC_GFXOPT for 8540 or 8548.
10411
10412 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
10413
10414 * tree-vect-transform.c (vect_update_inits_of_drs): Use
10415 vect_print_dump_info() to output debug information.
10416
10417 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
10418
10419 PR target/31768
10420 * config/i386/i386.c (print_operand) ['z']: Output 'w' for
10421 operands of size 2 when operand is not MEM_P.
10422
10423 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
10424
10425 PR tree-optimization/30565
10426 * lambda-code.c (perfect_nestify): Fix updating of dominators.
10427
10428 2007-05-03 Bernd Schmidt <bernd.schmidt@analog.com>
10429
10430 * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
10431 (umulsi3_highpart): Use them.
10432 * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
10433 for final accumulator to D regisster tranfser.
10434
10435 2007-05-03 Dorit Nuzman <dorit@il.ibm.com>
10436
10437 PR tree-optimization/31699
10438 * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
10439 wrong code.
10440 (vect_enhance_data_refs_alignment): Compute peel amount using
10441 TYPE_VECTOR_SUBPARTS instead of vf.
10442 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
10443
10444 2007-05-02 Brooks Moses <brooks.moses@codesourcery.com>
10445
10446 PR bootstrap/31776
10447 * system.h: Remove inclusion of double-int.h
10448 * tree.h: Include double-int.h
10449 * gengtype.c: Likewise
10450 * cfgloop.h: Likewise
10451 * Makefile.in: Adjust dependencies on double-int.h
10452
10453 2007-05-02 Eric Christopher <echristo@apple.com>
10454
10455 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
10456 -shared to -Zdynamiclib.
10457
10458 2007-05-02 Seongbae Park <seongbae.park@gmail.com>
10459
10460 PR c++/31663
10461 * c-common.c (strip_pointer_or_array_types): New function.
10462 * c-common.h (strip_pointer_or_array_types): New function declaration.
10463
10464 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
10465
10466 PR tree-optimization/31771
10467 * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
10468
10469 2007-05-02 Paul Brook <paul@codesourcery.com>
10470
10471 * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
10472
10473 2007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
10474
10475 PR middle-end/29715
10476 * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
10477 transformation.
10478
10479 2007-05-02 Nick Clifton <nickc@redhat.com>
10480
10481 * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
10482
10483 2007-05-02 Richard Guenther <rguenther@suse.de>
10484
10485 PR tree-optimization/31146
10486 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
10487 argument, single_use_p. If we have a single use that is
10488 a conversion to the definition rhs type, propagate that rhs.
10489 (forward_propagate_addr_expr): Pass single_use_p argument
10490 to forward_propagate_addr_expr_1.
10491
10492 2007-05-01 H.J. Lu <hongjiu.lu@intel.com>
10493
10494 * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
10495 variable.
10496
10497 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
10498
10499 * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
10500 'AMD Family 10 core'.
10501
10502 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
10503
10504 * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
10505 and athlon64-sse3 as improved versions of k8, opteron and athlon64
10506 with SSE3 instruction set support.
10507 * doc/invoke.texi: Likewise.
10508
10509 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
10510
10511 * config/i386/i386.c (override_options): Tuning 32-byte loop
10512 alignment for amdfam10 architecture. Increasing the max loop
10513 alignment to 24 bytes.
10514
10515 2007-05-01 Kazu Hirata <kazu@codesourcery.com>
10516
10517 * config/m68k/constraints.md: New.
10518 * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
10519 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
10520 EXTRA_CONSTRAINT): Remove.
10521 * config/m68k/m68k.md: Include constraints.md.
10522 * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
10523
10524 2007-05-01 Ian Lance Taylor <iant@google.com>
10525
10526 PR tree-optimization/31739
10527 * tree-vrp.c (vrp_val_is_max): New static function.
10528 (vrp_val_is_min): New static function.
10529 (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
10530 copying the node.
10531 (set_value_range): Use vrp_val_is_{max,min}.
10532 (extract_range_from_assert): Likewise.
10533 (extract_range_from_binary_expr): Likewise.
10534 (extract_range_from_unary_expr): Likewise.
10535 (dump_value_range, vrp_meet): Likewise.
10536 (vrp_visit_phi_node): Likewise.
10537 * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
10538
10539 2007-05-01 Mark Mitchell <mark@codesourcery.com>
10540
10541 * config/i386/gmon-sol2.c (size_t): New type.
10542 (intptr_t): Likewise.
10543 (s_textsize): Declare as size_t.
10544 (sbrk): Declare.
10545 (monstartup): Use size_t for sizes.
10546 (_mcount): Save and restore registers.
10547 (internal_mcount): Pass 0 as the first argument to monstartup
10548 in 64-bit mode.
10549 (moncontrol): Convert pointer to appropriately sized integer
10550 before passing to profil.
10551
10552 2007-05-01 Joseph Myers <joseph@codesourcery.com>
10553
10554 * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
10555 __NO_FPRS__, not just if _SOFT_DOUBLE.
10556 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
10557 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
10558 also for E500 double.
10559 * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
10560 suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
10561 && !TARGET_FPRS).
10562
10563 2007-05-01 Richard Guenther <rguenther@suse.de>
10564
10565 * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
10566 is NULL.
10567
10568 2007-05-01 Joseph Myers <joseph@codesourcery.com>
10569
10570 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
10571
10572 2007-05-01 Jan Hubicka <jh@suse.cz>
10573
10574 * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
10575 invariant.
10576
10577 2007-05-01 Jan Hubicka <jh@suse.cz>
10578
10579 * tree.h (maybe_fold_offset_to_component_ref): Remove.
10580 (maybe_fold_offset_to_reference): Declare.
10581 * fold-const.c (fold_unary): Do not fold
10582 (type *)&A into &A->field_of_type_and_offset_0
10583 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
10584 size is unknown, give up.
10585 (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
10586 offsets.
10587 (maybe_fold_offset_to_reference): New.
10588 (maybe_fold_stmt_indirect): Use it.
10589 (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
10590 * gimplify.c (gimplify_conversion): Canonicalize conversions to
10591 field references.
10592 (gimplify_expr): Likewise for plus_expr.
10593
10594 2007-05-01 Zdenek Dvorak <dvorakz@suse.cz>
10595
10596 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
10597 bsi_after_labels. Always insert statements before bsi.
10598 * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
10599 * predict.c (apply_return_prediction): Check for empty blocks.
10600 * cfgexpand.c (lab_rtx_for_bb): New variable.
10601 (label_rtx_for_bb): Do not create new tree labels.
10602 (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
10603 (tree_expand_cfg): Initialize lab_rtx_for_bb.
10604 * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
10605 creating edges.
10606 (label_for_bb): Add field used.
10607 (update_eh_label, main_block_label): Mark the label used.
10608 (cleanup_dead_labels): Remove unused labels.
10609
10610 2007-05-01 Richard Guenther <rguenther@suse.de>
10611
10612 * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
10613 if it is not about to be set.
10614 (get_value_range): Do not pre-allocate equiv bitmap.
10615 (update_value_range): No need to clear equiv field.
10616 (add_equivalence): Change prototype to get bitmap pointer.
10617 Allocate bitmap here if it is not already.
10618 (extract_range_from_assert): Do not allocate bitmap here.
10619 Update callers to add_equivalence.
10620 (extract_range_from_ssa_name): Likewise.
10621 (get_vr_for_comparison): New static helper.
10622 (compare_name_with_value): Handle NULL equiv bitmap by
10623 peeling the first iteration of the comparison loop.
10624 Use get_vr_for_comparison.
10625 (compare_names): Handle NULL equiv bitmaps by using fake
10626 ones. Use get_vr_for_comparison.
10627
10628 2007-04-30 Brooks Moses <brooks.moses@codesourcery.com>
10629
10630 * double-int.c (mpz_set_double_int): Moved from
10631 tree-ssa-loop-niter.c.
10632 (mpz_get_double_int): Likewise; also, add option to wrap
10633 out-of-range integers.
10634 * double-int.h: New prototypes for above.
10635 * tree.c (get_static_type_bounds): Moved from
10636 tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
10637 TYPE_MAX_VALUE if they exist..
10638 * tree.h: New prototype for above.
10639 * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
10640 get_type_bounds calls.
10641 (mpz_set_double_int): Move to double-int.c.
10642 (get_type_bounds): Move to tree.c, rename to
10643 get_static_type_bounds.
10644 (mpz_to_double_int): Move to double-int.c, rename to
10645 mpz_get_double_int.
10646
10647 2007-04-30 Bob Wilson <bob.wilson@acm.org>
10648
10649 * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
10650 DIV0 exception can fall through to a normal return.
10651
10652 2007-04-30 Alexandre Oliva <aoliva@redhat.com>
10653
10654 PR middle-end/22156
10655 Temporarily revert:
10656 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
10657 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
10658 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
10659 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
10660 initialize align to silence bogus warning.
10661 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
10662 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
10663 all_no_warning.
10664 (struct sra_walk_fns): Remove use_all parameter from use.
10665 (sra_hash_tree): Handle BIT_FIELD_REFs.
10666 (sra_elt_hash): Don't hash bitfld blocks.
10667 (sra_elt_eq): Skip them in parent compares as well. Handle
10668 BIT_FIELD_REFs.
10669 (sra_walk_expr): Don't maintain or pass down use_all_p.
10670 (scan_use): Remove use_all parameter.
10671 (scalarize_use): Likewise. Re-expand assignment to
10672 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
10673 output, and re-scalarize after output. Don't mark anything
10674 for no warning.
10675 (scalarize_ldst): Adjust.
10676 (scalarize_walk_gimple_modify_statement): Likewise.
10677 (build_element_name_1): Handle BIT_FIELD_REFs.
10678 (instantiate_element): Don't warn for any element whose parent
10679 is used as a whole.
10680 (instantiate_missing_elements_1): Return the sra_elt.
10681 (canon_type_for_field): New.
10682 (try_instantiate_multiple_fields): New.
10683 (instantiate_missing_elemnts): Use them.
10684 (mark_no_warning): Removed.
10685 (generate_one_element_ref): Handle BIT_FIELD_REFs.
10686 (REPLDUP, sra_build_elt_assignment): New.
10687 (generate_copy_inout): Use them.
10688 (generate_element_copy): Likewise. Handle bitfld differences.
10689 (generate_element_zero): Don't recurse for blocks. Use
10690 sra_build_elt_assignment.
10691 (generate_one_element_int): Take elt instead of var. Use
10692 sra_build_elt_assignment.
10693 (generate_element_init_1): Adjust.
10694 (scalarize_use, scalarize_copy): Use REPLDUP.
10695 (scalarize_ldst): Move assert before dereference.
10696 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
10697
10698 2007-04-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
10699
10700 PR C++/31721
10701 * tree.c (reconstruct_complex_type): Reconstruct a reference
10702 correctly.
10703 Also use the same mode for the pointer as the old pointer type.
10704
10705 2007-04-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
10706
10707 * doc/trouble.texi (Interoperation): Remove note about Ultrix
10708 Fortran compiler.
10709
10710 2007-04-29 Zdenek Dvorak <dvorakz@suse.cz>
10711
10712 PR rtl-optimization/31676
10713 * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
10714 (df_refs_record): Call it.
10715
10716 2007-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
10717
10718 * rtl.def (SS_ABS): New code.
10719 * config/bfin/bfin.c (print_operand): New modifier 'v'.
10720 (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
10721 BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
10722 BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
10723 (bfin_init_builtins): Define them.
10724 (bdesc_1arg, bdesc_2arg): Add some of them here, ...
10725 (bfin_expand_builtin): ... and handle the others here.
10726 * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
10727 flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
10728 (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
10729 (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
10730 operand is only HImode.
10731
10732 2007-04-29 Steven Bosscher <steven@gcc.gnu.org>
10733
10734 * regclass.c (scan_one_insn): Remove splitting of
10735 two address insns.
10736
10737 2007-04-28 Sandra Loosemore <sandra@codesourcery.com>
10738 Nigel Stephens <nigel@mips.com>
10739
10740 * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
10741
10742 2007-04-28 Jan Hubicka <jh@suse.cz>
10743
10744 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
10745 insn_locators_alloc instead of insn_locators_initialize;
10746 call reset_block_changes.
10747 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
10748 * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
10749 * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
10750 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
10751 * config/score/score.c (th_output_mi_thunk): Likewise.
10752 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
10753 * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
10754 tolerate uninitialized locator info.
10755
10756 Re-apply:
10757 * function.c (init_function_start): Don't init line number info.
10758 (expand_function_end): Update.
10759 (reset_block_changes, record_block_change, finalize_block_changes,
10760 check_block_change, free_block_changes): Kill.
10761 * function.h (reset_block_changes, record_block_change,
10762 finalize_block_changes, check_block_change, free_block_changes):
10763 Remove prototypes.
10764 (struct function): Remove ib_boundaries_block.
10765 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
10766 Use curr_insn_locator to initialize locator.
10767 (emit_line_note): Remove.
10768 * cfgexpand.c (expand_gimple_cond_expr): Update.
10769 (construct_exit_block): Likewise.
10770 (tree_expand_cfg): Initialize/finalize locators.
10771 * expr.c (expand_expr_real): Update.
10772 * cfglayout.c (line_locators_locs, line_locators_lines,
10773 file_locators_locs, file_locators_files): Remove.
10774 (set_block_levels): Move to cfgexpand.c.
10775 (insn_locators_initialize): Remove.
10776 (pass_insn_locators_initialize): Remove.
10777 (locations_locators_locs, locations_locators_vals): New static vars.
10778 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
10779 Likewise.
10780 (insn_locators_alloc, insn_locators_finalize,
10781 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
10782 New functions.
10783 (locator_location): New.
10784 (locator_line, locator_file): Rewrite.
10785 * rtl.h (emit_line_note): Kill.
10786 (insn_locators_alloc, insn_locators_finalize,
10787 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
10788 Declare.
10789 * tree-inline.c (initialize_cfun): Do not initialize
10790 ib_boundaries_block.
10791 * passes.c (pass_insn_locators_initialize): Remove.
10792
10793 2007-04-28 Zdenek Dvorak <dvorakz@suse.cz>
10794
10795 * tree-cfg.c (move_block_to_fn): Release bb from dominance
10796 info. Update last_basic_block correctly.
10797
10798 2007-04-27 Kaz Kojima <kkojima@gcc.gnu.org>
10799
10800 PR target/31701
10801 * config/sh/sh.c (output_stack_adjust): Avoid using the frame
10802 register itself to hold the offset constant. Tell flow the use
10803 of r4 and r5 when they are used.
10804
10805 2007-04-27 Richard Guenther <rguenther@suse.de>
10806
10807 * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
10808 if we simplified anything.
10809 (tree_ssa_forward_propagate_single_use_vars): Defer overflow
10810 warnings until we did a simplification and the stmt was not
10811 marked as TREE_NO_WARNING.
10812
10813 2007-04-27 Mike Stump <mrs@apple.com>
10814
10815 * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
10816
10817 2007-04-27 Ian Lance Taylor <iant@google.com>
10818
10819 PR middle-end/31710
10820 * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
10821 TYPE_MAX_VALUE exist, convert them to the new type.
10822
10823 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
10824
10825 * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
10826 if it claims to be available.
10827 * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
10828 edge is redirected.
10829 (perform_tree_ssa_dce): Always free postdominators.
10830
10831 2007-04-27 Richard Henderson <rth@redhat.com>
10832
10833 * config/alpha/predicates.md (aligned_memory_operand): Mark
10834 as define_special_predicate.
10835 (unaligned_memory_operand, normal_memory_operand): Likewise.
10836 (reg_or_unaligned_mem_operand): Remove.
10837 (any_memory_operand): Match the documentation and check for
10838 non-renumbered pseudos during reload.
10839 * config/alpha/alpha.c (alpha_secondary_reload): Rename from
10840 alpha_secondary_reload_class, update to new interface, make static.
10841 Handle CQImode like HImode. Remove FP subreg check.
10842 (alpha_expand_mov): Use replace_equiv_address.
10843 (alpha_expand_mov_nobwx): Use any_memory_operand.
10844 (TARGET_SECONDARY_RELOAD): New.
10845 * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
10846 (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
10847 * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
10848 * config/alpha/alpha.md: ... here.
10849 (RELOAD12, reloadmode): New.
10850 (movcqi): New.
10851 (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
10852 Don't handle the aligned case here.
10853 (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
10854 (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
10855 reload_inhi_help. Don't expect a scratch register.
10856 (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
10857 reload_outhi_help.
10858 * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
10859
10860 2007-04-27 Richard Guenther <rguenther@suse.de>
10861
10862 * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
10863
10864 2007-04-27 Richard Guenther <rguenther@suse.de>
10865
10866 PR tree-optimization/30965
10867 PR tree-optimization/30978
10868 * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
10869 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
10870 (find_equivalent_equality_comparison): Likewise.
10871 (simplify_cond): Likewise.
10872 (get_prop_source_stmt): New helper.
10873 (get_prop_dest_stmt): Likewise.
10874 (can_propagate_from): Likewise.
10875 (remove_prop_source_from_use): Likewise.
10876 (combine_cond_expr_cond): Likewise.
10877 (forward_propagate_comparison): New function.
10878 (forward_propagate_into_cond): Rewrite to use fold for
10879 tree combining.
10880 (tree_ssa_forward_propagate_single_use_vars): Call
10881 forward_propagate_comparison to propagate comparisons.
10882
10883 2007-04-27 Richard Guenther <rguenther@suse.de>
10884
10885 PR tree-optimization/31715
10886 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
10887 sure to do computation on the offset in an appropriate
10888 signed type.
10889
10890 2007-04-27 Richard Sandiford <richard@codesourcery.com>
10891
10892 * reload.h (elimination_target_reg_p): Declare.
10893 * reload.c (find_reloads): Don't apply the reg_rtx move
10894 optimization if the SET_DEST satisfies elimination_target_reg_p.
10895 * reload1.c (elimination_target_reg_p): New function.
10896 (gen_reload): In the move/add2 fallback, make sure that op0
10897 does not overlap the destination register.
10898
10899 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
10900
10901 * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
10902 transform only GIMPLE_MODIFY_STMTs.
10903 * tree-complex.c (expand_complex_operations_1): Ditto.
10904 (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
10905 * tree-ssa-loop-manip.c (build_if_stmt): Removed.
10906 (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
10907 branches.
10908 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
10909 tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
10910 * omp-low.c (expand_parallel_call, expand_omp_for_generic,
10911 expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
10912 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
10913 slpeel_add_loop_guard): Ditto.
10914 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
10915 * lambda-code.c (perfect_nestify): Ditto.
10916 * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
10917 before the first statement.
10918 * tree-optimize.c (execute_free_datastructures): Fix comments.
10919 (execute_free_cfg_annotations): Do not call disband_implicit_edges.
10920 * tree-flow.h (disband_implicit_edges): Declaration removed.
10921 * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
10922 branches.
10923 (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
10924 COND_EXPRs without gotos.
10925 (disband_implicit_edges, has_label_p): Removed.
10926 (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
10927 (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
10928 branches.
10929 * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
10930 side effects.
10931 * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
10932 also for COND_EXPRs.
10933 * cfgexpand.c (label_rtx_for_bb): New function.
10934 (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
10935 Use label_rtx_for_bb to find the labels.
10936 (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
10937 last block. Detect fallthru edges.
10938
10939 2007-04-26 Ian Lance Taylor <iant@google.com>
10940
10941 PR target/28675
10942 * reload.c (find_reloads_subreg_address): If the address was valid
10943 in the original mode but not in the new mode, reload the whole
10944 address.
10945
10946 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
10947
10948 * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
10949 (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
10950 (cleanup_control_expr_graph): Do not invalidate dominance info.
10951 Record altered blocks.
10952 (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
10953 (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
10954 cleanup_tree_cfg_bb): New functions.
10955 (remove_forwarder_block): Do not maintain the worklist of blocks.
10956 Record altered blocks.
10957 (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
10958 not over whole cfg.
10959 (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1. Only call
10960 delete_unreachable_blocks if dominators are not available.
10961 * tree-inline.c (optimize_inline_calls): Free dominance information
10962 earlier.
10963 * tree-flow.h (remove_edge_and_dominated_blocks,
10964 cfgcleanup_altered_bbs): Altered.
10965 * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
10966 blocks.
10967 (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
10968 functions.
10969 (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
10970 do not invalidate dominators.
10971
10972 2007-04-26 Anatoly Sokolov <aesok@post.ru>
10973
10974 * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
10975 ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
10976 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10977 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10978
10979 2007-04-26 Steve Ellcey <sje@cup.hp.com>
10980
10981 * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
10982
10983 2007-04-26 Richard Guenther <rguenther@suse.de>
10984
10985 PR tree-optimization/31703
10986 * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
10987 the right type for the target of the bittest.
10988
10989 2007-04-26 Richard Sandiford <richard@codesourcery.com>
10990
10991 * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
10992 ix86_sol10_return_in_memory.
10993
10994 2007-04-26 Richard Sandiford <richard@codesourcery.com>
10995
10996 * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
10997 variables.
10998
10999 2007-04-26 Jakub Jelinek <jakub@redhat.com>
11000
11001 PR c++/31598
11002 * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
11003
11004 PR tree-optimization/30558
11005 * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
11006 clear this_state.prev_try.
11007
11008 2007-04-26 Richard Sandiford <richard@codesourcery.com>
11009 Mark Mitchell <mark@codesourcery.com>
11010
11011 * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
11012 * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
11013 * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
11014
11015 2007-04-26 Richard Sandiford <richard@codesourcery.com>
11016
11017 PR driver/31107
11018 * doc/invoke.texi (%:print-asm-header): Document.
11019 * gcc.c (asm_options): Use %:print-asm-header() for --target-help
11020 and -ftarget-help.
11021 (static_spec_functions): Add print-asm-header.
11022 (main): Print a banner before the --target-help linker options.
11023 (print_asm_header_spec_function): New function.
11024
11025 2007-04-25 Kaz Kojima <kkojima@gcc.gnu.org>
11026
11027 PR target/31403
11028 * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
11029 (movsf_ie): Likewise.
11030
11031 2007-04-25 Paolo Carlini <pcarlini@suse.de>
11032
11033 * doc/extend.texi ([Type Traits]): Adjust per N2255.
11034
11035 2007-04-25 Bob Wilson <bob.wilson@acm.org>
11036
11037 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
11038 exception for divide-by-zero.
11039 (__umodsi3, __modsi3): Likewise.
11040
11041 2007-04-25 Dirk Mueller <dmueller@suse.de>
11042
11043 * c-typeck.c (build_compound_expr): Annotate warning()
11044 call with OPT_Wunused_value.
11045 * tree-ssa.c (warn_uninit): Annotate warning with
11046 OPT_Wunintialized.
11047 * c-common.c (handle_sentinel_attribute): Annotate warning
11048 call with OPT_Wattributes.
11049
11050 2007-04-25 Thiemo Seufer <ths@mips.com>
11051
11052 * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
11053 (mips16): Fix typo.
11054 * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
11055 on to the assembler. Improve handling of -mno-mips16. Add handling
11056 of -mno-mips3d, -mno-dsp, -mno-dspr2.
11057 * doc/invoke.texi (MIPS Options): Whitespace cleanup. Fix wrong use
11058 of @itemx. Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
11059 -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
11060
11061 2007-04-25 Danny Smith <dannysmith.users.sourceforge.net>
11062
11063 PR target/31680
11064 * config/i386/winnt.c (i386_pe_file_end): Strip only
11065 USER_LABEL_PREFIX when writing export name.
11066
11067 2007-04-25 Richard Sandiford <richard@codesourcery.com>
11068
11069 * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h. Include
11070 sh/elf.h, vx-common.h and vxworks.h.
11071 * config/sh/sh.h: Include config/vxworks-dummy.h.
11072 (SUBTARGET_OVERRIDE_OPTIONS): Define.
11073 (OVERRIDE_OPTIONS): Use it.
11074 * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
11075 (vxworks_picreg): New pattern.
11076 * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
11077 VXWORKS_OS_CPP_BUILTINS.
11078 (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
11079 to their VXWORKS_* equivalents.
11080 (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
11081 (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
11082 * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
11083 (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
11084 * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
11085 -mrtp/-fPIC multilibs.
11086 (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
11087 (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
11088 (MULTILIB_OSDIRNAMES): Delete.
11089
11090 2007-04-25 Anatoly Sokolov <aesok@post.ru>
11091
11092 PR target/18989
11093 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
11094
11095 2007-04-24 Brooks Moses <brooks.moses@codesourcery.com>
11096
11097 * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
11098 rounding mode to be specified by the caller.
11099 (real_to_mpfr) Likewise.
11100 * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
11101 include new arguments.
11102 * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
11103
11104 2007-04-24 Ian Lance Taylor <iant@google.com>
11105
11106 PR tree-optimization/31605
11107 * tree-vrp.c (set_value_range): Check that min and max are not
11108 both overflow infinities.
11109 (set_value_range_to_value): New static function.
11110 (extract_range_from_binary_expr): Call set_value_range_to_value.
11111 (extract_range_from_cond_expr): Likewise.
11112 (extract_range_from_expr): Likewise.
11113 (extract_range_from_unary_expr): Likewise. Don't create a range
11114 which overflows on both sides.
11115 (vrp_meet): Check for a useless range.
11116 (vrp_visit_phi_node): If we see a constant which looks like an
11117 overflow infinity, turn off the TREE_OVERFLOW flag.
11118
11119 2007-04-24 Ian Lance Taylor <iant@google.com>
11120
11121 * flow.c (elim_reg_cond): Handle a comparison of a subreg.
11122
11123 2007-04-24 Simon Martin <simartin@users.sourceforge.net>
11124
11125 PR diagnostic/25923
11126 * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
11127 diagnostic message is being built.
11128 * tree-pretty-print.c (dump_generic_node): Only write the
11129 formatted text into BUFFER's stream if we are not building a
11130 diagnostic message.
11131 * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
11132 dump_generic_node.
11133 * Makefile.in (toplev.o): Depend on tree-pass.h.
11134
11135 2007-04-24 Ian Lance Taylor <iant@google.com>
11136
11137 PR tree-optimization/31602
11138 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
11139 conditionals in the copied loop header.
11140 * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
11141 warnings if TREE_NO_WARNING is set.
11142 * doc/invoke.texi (Warning Options): Clarify that
11143 -Wstrict-overflow does not warn about loops.
11144
11145 2007-04-24 Janis Johnson <janis187@us.ibm.com>
11146
11147 * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
11148 expand on the comment about _Decimal128 arguments and check the
11149 integer result of the modulus operation; for 64-bit ELF ABI, ensure
11150 that _Decimal128 argument uses even/odd register pair.
11151 (function_arg): Ditto.
11152
11153 2007-04-24 Hui-May Chang <hm.chang@apple.com>
11154
11155 * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
11156 instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
11157
11158 2007-04-24 Richard Guenther <rguenther@suse.de>
11159 Olga Golovanevsky <olga@il.ibm.com>
11160
11161 * fold-const.c (multiple_of_p): Check for bottom
11162 to be zero.
11163
11164 2007-04-24 Richard Henderson <rth@redhat.com>
11165
11166 * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
11167 IS_IBM_EXTENDED. Also define in terms of WIDEST_HARDWARE_FP_SIZE.
11168 * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
11169 looking for non-zero bits shifted out. Avoid a recursive call
11170 when constructing the scalar.
11171 (__floatundisf): Likewise.
11172
11173 2007-04-24 Nathan Froyd <froydnj@codesourcery.com>
11174
11175 * dwarf2out.c (field_byte_offset): Move the existing logic
11176 under the control of PCC_BITFIELD_TYPE_MATTERS and just use
11177 the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
11178
11179 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
11180
11181 PR target/31641
11182 * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
11183 length argument of 0 for memset.
11184 (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
11185 unsigned shift instead of the signed variant.
11186
11187 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
11188
11189 * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
11190 "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
11191 "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
11192 "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
11193 "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
11194 "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
11195 "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
11196 "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
11197 "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
11198 ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
11199 "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
11200 "mul<mode>3", "div<mode>3"): Insn definitions added.
11201 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
11202 "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
11203 to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
11204 ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
11205 "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
11206 "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
11207 ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
11208 * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
11209 TARGET_FLOAT_FORMAT): Macro definitions removed.
11210 (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
11211 * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
11212 z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
11213 (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
11214 (s390_gen_rtx_const_DI): Function removed.
11215 * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
11216
11217 2007-04-24 Richard Sandiford <richard@codesourcery.com>
11218
11219 * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
11220 over an external ffs function.
11221
11222 2007-04-24 Chao-ying Fu <fu@mips.com>
11223 Richard Sandiford <richard@nildram.co.uk>
11224
11225 * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
11226 * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
11227 (smadd_widen_optab, umadd_widen_optab): Define.
11228 * optabs.c (init_optabs): Initialize smadd_widen_optab and
11229 umadd_widen_optab.
11230 * genopinit.c (optabs): Fill in smadd_widen_optab and
11231 umadd_widen_optab.
11232 * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
11233 and umadd_widen_optab to implement multiply-add sequences.
11234 * config/mips/mips.md (*<su>mul_acc_di): Rename to...
11235 (<u>maddsidi4): ...this. Extend condition to include
11236 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
11237 of operand 0 to "ka" and use the three-operand form of madd<u>
11238 for TARGET_DSPR2.
11239 * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
11240 to define_expands.
11241 * config/mips/constraints.md (ka): New register constraint.
11242
11243 2007-04-24 Jan Hubicka <j@suse.cz>
11244
11245 Revert:
11246
11247 2007-04-23 Jan Hubicka <jh@suse.cz>
11248 * function.c (init_function_start): Don't init line number info.
11249 (expand_function_end): Update.
11250 (reset_block_changes, record_block_change, finalize_block_changes,
11251 check_block_change, free_block_changes): Kill.
11252 * function.h (reset_block_changes, record_block_change,
11253 finalize_block_changes, check_block_change, free_block_changes):
11254 Remove prototypes.
11255 (struct function): Remove ib_boundaries_block.
11256 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
11257 Use curr_insn_locator to initialize locator.
11258 (emit_line_note): Remove.
11259 * cfgexpand.c (expand_gimple_cond_expr): Update.
11260 (construct_exit_block): Likewise.
11261 (tree_expand_cfg): Initialize/finalize locators.
11262 * expr.c (expand_expr_real): Update.
11263 * cfglayout.c (line_locators_locs, line_locators_lines,
11264 file_locators_locs, file_locators_files): Remove.
11265 (set_block_levels): Move to cfgexpand.c.
11266 (insn_locators_initialize): Remove.
11267 (pass_insn_locators_initialize): Remove.
11268 (locations_locators_locs, locations_locators_vals): New static vars.
11269 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
11270 Likewise.
11271 (insn_locators_alloc, insn_locators_finalize,
11272 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
11273 New functions.
11274 (locator_location): New.
11275 (locator_line, locator_file): Rewrite.
11276 * rtl.h (emit_line_note): Kill.
11277 (insn_locators_alloc, insn_locators_finalize,
11278 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
11279 Declare.
11280 * tree-inline.c (initialize_cfun): Do not initialize
11281 ib_boundaries_block.
11282 * passes.c (pass_insn_locators_initialize): Remove.
11283
11284 2007-04-24 Daniel Franke <franke.daniel@gmail.com>
11285
11286 * doc/invoke.texi: Removed leading '-' from option index entries.
11287
11288 2007-04-23 Zdenek Dvorak <dvorakz@suse.cz>
11289
11290 * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
11291 Use phi_nodes_ptr.
11292 (create_phi_node): Use set_phi_nodes.
11293 * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
11294 * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
11295 (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
11296 * tree-flow-inline.h (phi_nodes, set_phi_nodes,
11297 (bsi_start, bsi_last): Use bb_stmt_list.
11298 (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
11299 * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
11300 Traverse the statements using tsi iterator.
11301 * basic-block.h (struct basic_block_def): Fields stmt_list
11302 and phi_nodes moved to ...
11303 (struct tree_bb_info): ... new structure.
11304 * tree-cfg.c (create_bb): Allocate il.tree. Use set_bb_stmt_list.
11305 (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
11306 (remove_bb): Handle blocks with NULL stmt list. Clear il.tree field.
11307 (tree_verify_flow_info): Verify that il.tree is not set for
11308 entry and exit block.
11309 (tree_split_block): Use set_bb_stmt_list.
11310
11311 2007-04-23 Mike Stump <mrs@apple.com>
11312
11313 * config/i386/i386.c (ix86_tune_features
11314 [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
11315 nocona and core2.
11316
11317 2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
11318
11319 * config/i386/i386.md (prefix_extra): New attribute.
11320 (length): Add prefix_extra.
11321
11322 * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
11323 (sse2_movntv2di): Likewise.
11324 (sse2_cvtps2dq): Likewise.
11325 (sse2_cvtpd2pi): Likewise.
11326 (sse2_cvttpd2pi): Likewise.
11327 (*sse2_cvtpd2ps): Likewise.
11328 (*add<mode>3): Likewise.
11329 (sse2_ssadd<mode>3): Likewise.
11330 (sse2_usadd<mode>3): Likewise.
11331 (*sub<mode>3): Likewise.
11332 (sse2_sssub<mode>3): Likewise.
11333 (sse2_ussub<mode>3): Likewise.
11334 (*mulv8hi3): Likewise.
11335 (*smulv8hi3_highpart): Likewise.
11336 (*umulv8hi3_highpart): Likewise.
11337 (sse2_umulv2siv2di3): Likewise.
11338 (sse2_pmaddwd): Likewise.
11339 (ashr<mode>3): Likewise.
11340 (lshr<mode>3): Likewise.
11341 (ashl<mode>3): Likewise.
11342 (sse2_ashlti3): Likewise.
11343 (sse2_lshrti3): Likewise.
11344 (*umaxv16qi3): Likewise.
11345 (*smaxv8hi3): Likewise.
11346 (*uminv16qi3): Likewise.
11347 (*sminv8hi3): Likewise.
11348 (sse2_eq<mode>3): Likewise.
11349 (sse2_gt<mode>3): Likewise.
11350 (*and<mode>3): Likewise.
11351 (sse2_nand<mode>3): Likewise.
11352 (*ior<mode>3): Likewise.
11353 (*xor<mode>3): Likewise.
11354 (sse2_packsswb): Likewise.
11355 (sse2_packssdw): Likewise.
11356 (sse2_packuswb): Likewise.
11357 (sse2_punpckhbw): Likewise.
11358 (sse2_punpcklbw): Likewise.
11359 (sse2_punpckhwd): Likewise.
11360 (sse2_punpcklwd): Likewise.
11361 (sse2_punpckhdq): Likewise.
11362 (sse2_punpckldq): Likewise.
11363 (sse2_punpckhqdq): Likewise.
11364 (sse2_punpcklqdq): Likewise.
11365 (*sse2_pinsrw): Likewise.
11366 (*sse2_pextrw): Likewise.
11367 (sse2_pshufd_1): Likewise.
11368 (sse2_uavgv16qi3): Likewise.
11369 (sse2_uavgv8hi3): Likewise.
11370 (sse2_psadbw): Likewise.
11371 (sse2_pmovmskb): Likewise.
11372 (*sse2_maskmovdqu): Likewise.
11373 (*sse2_maskmovdqu_rex64): Likewise.
11374 (sse4a_extrqi): Likewise.
11375 (sse4a_extrq): Likewise.
11376 (sse3_lddqu): Set prefix_rep.
11377 (sse3_addsubv4sf3): Likewise.
11378 (sse3_haddv4sf3): Likewise.
11379 (sse3_hsubv4sf3): Likewise.
11380 (sse_cvtss2si): Likewise.
11381 (sse_cvtss2si_2): Likewise.
11382 (sse_cvtss2siq): Likewise.
11383 (sse_cvtss2siq_2): Likewise.
11384 (sse_cvttss2si): Likewise.
11385 (sse_cvttss2siq): Likewise.
11386 (sse2_cvttps2dq): Likewise.
11387 (sse3_movshdup): Likewise.
11388 (sse3_movsldup): Likewise.
11389 (sse2_cvtsd2si): Likewise.
11390 (sse2_cvtsd2si_2): Likewise.
11391 (sse2_cvtsd2siq): Likewise.
11392 (sse2_cvtsd2siq_2): Likewise.
11393 (sse2_cvttsd2si): Likewise.
11394 (sse2_cvttsd2siq): Likewise.
11395 (*sse2_cvtpd2dq): Likewise.
11396 (*sse2_cvttpd2dq): Likewise.
11397 (sse2_pshuflw_1): Likewise.
11398 (sse2_pshufhw_1): Likewise.
11399 (sse4a_insertqi): Likewise.
11400 (sse4a_insertq): Likewise.
11401 (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
11402 (ssse3_phadddv4si3): Likewise.
11403 (ssse3_phaddswv8hi3): Likewise.
11404 (ssse3_phsubwv8hi3): Likewise.
11405 (ssse3_phsubdv4si3): Likewise.
11406 (ssse3_phsubswv8hi3): Likewise.
11407 (ssse3_pmaddubswv8hi3): Likewise.
11408 (ssse3_pmulhrswv8hi3): Likewise.
11409 (ssse3_pshufbv16qi3): Likewise.
11410 (ssse3_psign<mode>3): Likewise.
11411 (ssse3_palignrti): Likewise.
11412 (abs<mode>2): Likewise.
11413 (ssse3_phaddwv4hi3): Set prefix_extra.
11414 (ssse3_phadddv2si3): Likewise.
11415 (ssse3_phaddswv4hi3): Likewise.
11416 (ssse3_phsubwv4hi3): Likewise.
11417 (ssse3_phsubdv2si3): Likewise.
11418 (ssse3_phsubswv4hi3): Likewise.
11419 (ssse3_pmaddubswv4hi3): Likewise.
11420 (ssse3_pmulhrswv4hi3): Likewise.
11421 (ssse3_pshufbv8qi3): Likewise.
11422 (ssse3_psign<mode>3): Likewise.
11423 (ssse3_palignrdi): Likewise.
11424 (abs<mode>2): Likewise.
11425 (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
11426 (*vec_dupv2df): Set mode to V2DF instead of V4SF.
11427 (sse2_pmovmskb): Set mode to SI instead of V2DF.
11428
11429 2007-04-23 Nick Clifton <nickc@redhat.com>
11430
11431 * params.def: Fix formatting of emacs local variables.
11432
11433 2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
11434
11435 * config/i386/sse.md (sse2_stored): Don't split to inter-unit
11436 move if inter-unit move isn't allowed.
11437 Don't split moving the first element of V2DI to DI to inter-unit
11438 move if inter-unit move isn't allowed.
11439
11440 2007-04-23 Richard Guenther <rguenther@suse.de>
11441
11442 * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
11443 and CDI_POST_DOMINATORS separately.
11444
11445 2007-04-23 Nick Clifton <nickc@redhat.com>
11446
11447 * c.opt (Wformat-contains-nul): Add warning attribute.
11448
11449 2007-04-23 Jan Hubicka <jh@suse.cz>
11450
11451 * function.c (init_function_start): Don't init line number info.
11452 (expand_function_end): Update.
11453 (reset_block_changes, record_block_change, finalize_block_changes,
11454 check_block_change, free_block_changes): Kill.
11455 * function.h (reset_block_changes, record_block_change,
11456 finalize_block_changes, check_block_change, free_block_changes):
11457 Remove prototypes.
11458 (struct function): Remove ib_boundaries_block.
11459 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
11460 Use curr_insn_locator to initialize locator.
11461 (emit_line_note): Remove.
11462 * cfgexpand.c (expand_gimple_cond_expr): Update.
11463 (construct_exit_block): Likewise.
11464 (tree_expand_cfg): Initialize/finalize locators.
11465 * expr.c (expand_expr_real): Update.
11466 * cfglayout.c (line_locators_locs, line_locators_lines,
11467 file_locators_locs, file_locators_files): Remove.
11468 (set_block_levels): Move to cfgexpand.c.
11469 (insn_locators_initialize): Remove.
11470 (pass_insn_locators_initialize): Remove.
11471 (locations_locators_locs, locations_locators_vals): New static vars.
11472 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
11473 Likewise.
11474 (insn_locators_alloc, insn_locators_finalize,
11475 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
11476 New functions.
11477 (locator_location): New.
11478 (locator_line, locator_file): Rewrite.
11479 * rtl.h (emit_line_note): Kill.
11480 (insn_locators_alloc, insn_locators_finalize,
11481 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
11482 Declare.
11483 * tree-inline.c (initialize_cfun): Do not initialize
11484 ib_boundaries_block.
11485 * passes.c (pass_insn_locators_initialize): Remove.
11486
11487 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
11488
11489 PR middle-end/31448
11490 * expr.c (reduce_to_bit_field_precision): Handle
11491 CONST_INT rtx's.
11492
11493 2007-04-22 Uros Bizjak <ubizjak@gmail.com>
11494
11495 PR tree-optimization/24659
11496 * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
11497 OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
11498 (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
11499 * genopinit.c (optabs): Rename vec_pack_mod_optab
11500 to vec_pack_trunc_optab.
11501 * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
11502 early for scalar floating point operands for NOP_EXPR.
11503 (vectorizable_type_promotion): Ditto.
11504 * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
11505 vec_pack_trunc_optab.
11506 (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
11507
11508 * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
11509 * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
11510 Rename from VEC_PACK_MOD_EXPR.
11511 (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
11512 * expr.c (expand_expr_real_1): Ditto.
11513 * tree-inline.c (estimate_num_insns_1): Ditto.
11514 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
11515
11516 * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
11517 (vec_unpacks_lo_v4sf): Ditto.
11518 (vec_pack_trunc_v2df): Ditto.
11519 (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
11520 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
11521 (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
11522
11523 * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
11524 vec_pack_mod_v8hi.
11525 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
11526
11527 * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
11528 Rename from VEC_PACK_MOD_EXPR. This expression also represent
11529 packing of floating point operands.
11530 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
11531 represent unpacking of floating point operands.
11532 * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
11533 [vec_unpacks_hi]: Ditto.
11534 [vec_unpacks_lo]: Ditto.
11535
11536 2007-04-22 Jan Hubicka <jh@suse.cz>
11537
11538 * final.c (rest_of_handle_final): Call
11539 targetm.asm_out.constructor/targetm.asm_out.destructor
11540 * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
11541 proper priority via decl_*_priority_insert.
11542 * c-common.c (c_expand_body): Likewise.
11543
11544 2007-04-22 Richard Guenther <rguenther@suse.de>
11545
11546 PR tree-optimization/29789
11547 * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
11548 (rewrite_reciprocal): New helper split out from
11549 determine_invariantness_stmt.
11550 (rewrite_bittest): Likewise.
11551 (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
11552 A & (1 << B) if (1 << B) is loop invariant but (A >> B)
11553 is not.
11554
11555 2007-04-22 Revital Eres <eres@il.ibm.com>
11556
11557 * loop-unroll.c (var_to_expand): New field to support also
11558 insns of the form x = something + x.
11559 (analyze_insn_to_expand_var): Use it.
11560 (expand_var_during_unrolling): Likewise.
11561
11562 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
11563
11564 * predict.c: Include pointer-set.h.
11565 (bb_predictions): New variable.
11566 (tree_predicted_by_p, tree_predict_edge,
11567 remove_predictions_associated_with_edge): Use bb_predictions map
11568 instead of bb->predictions.
11569 (clear_bb_predictions, assert_is_empty): New functions.
11570 (combine_predictions_for_bb): Use bb_predictions map. Call
11571 clear_bb_predictions.
11572 (tree_estimate_probability): Create and free bb_predictions map.
11573 * Makefile.in (predict.o): Add pointer-set.h dependency.
11574 * basic-block.h (struct basic_block_def): Remove predictions
11575 field.
11576 * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
11577
11578 2007-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
11579
11580 PR target/31480
11581 * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
11582 is null.
11583
11584 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
11585
11586 * timevar.c (timevar_print): Change reference of --disable-checking to
11587 --enable-checking=release. Also warn if assert checking is disabled.
11588
11589 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
11590
11591 PR C/30265
11592 * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
11593 decl as addressable if the compound literal was marked as
11594 addressable.
11595 Mark the decl as a gimple register if it is a complex or
11596 vector decl and does not live in memory.
11597
11598 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
11599
11600 * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
11601 (GENERIC_NEXT): New function macro.
11602 (PHI_CHAIN): Use phi_node's new chain variable.
11603 (tree_phi_node): Change tree_common to tree_base
11604 and add the chain field.
11605 * tree-phinodes.c (make_phi_node): Don't set
11606 TREE_TYPE on the new node.
11607 * c-decl.c (lang_tree_node): Use GENERIC_NEXT
11608 instead of checking GIMPLE_TUPLE_P in chain_next.
11609 * tree-vect-transform.c
11610 (get_initial_def_for_induction): Look at
11611 PHI_RESULT_TREE for the type of the phi node.
11612 (update_vuses_to_preheader): Use PHI_CHAIN
11613 instead of TREE_CHAIN on the phi node.
11614 * tree-ssa-structalias.c (compute_points_to_sets):
11615 Likewise.
11616 (ipa_pta_execute): Likewise.
11617
11618 2007-04-21 Richard Guenther <rguenther@suse.de>
11619
11620 PR middle-end/31136
11621 * fold-const.c (fold_unary): Call fold_convert_const on the
11622 original tree.
11623
11624 2007-04-21 Alexandre Oliva <aoliva@redhat.com>
11625
11626 * gcse.c (store_killed_in_insn): Handle PARALLELs.
11627 (store_killed_in_pat): New.
11628
11629 2007-04-20 Richard Henderson <rth@redhat.com>
11630
11631 PR target/31628
11632 * config/i386/i386.c (type_has_variadic_args_p): Look for any
11633 TREE_LIST with a void_type_node value, not void_list_node exactly.
11634
11635 2007-04-21 Douglas Gregor <doug.gregor@gmail.com>
11636
11637 * doc/standards.texi: Re-arrange into language-specific
11638 subsections. Add a C++ section, documenting which standards we
11639 support.
11640
11641 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
11642
11643 * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
11644 * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
11645
11646 2007-04-20 Daniel Jacobowitz <dan@codesourcery.com>
11647
11648 * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
11649 ecrti.o and crtbegin.o.
11650 (LIB_DEFAULT_SPEC): Include -lc.
11651 (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
11652
11653 2007-04-20 Richard Henderson <rth@redhat.com>
11654
11655 PR target/28623
11656 * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
11657 argument; update all callers.
11658 (get_unaligned_offset): New.
11659 * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
11660 get_unaligned_address, just pass on the address directly.
11661 (unaligned_extendqidi): Use gen_lowpart instead of open-coding
11662 the subreg in the helper patterns.
11663 (unaligned_extendqidi_le): Use get_unaligned_offset.
11664 (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
11665 (unaligned_extendhidi_be): Likewise.
11666 (unaligned_extendhidi): Tidy.
11667 * config/alpha/alpha-protos.h: Update.
11668
11669 2007-04-20 Richard Henderson <rth@redhat.com>
11670
11671 * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
11672 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
11673 * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
11674 * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
11675 * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
11676 (CPP_SPEC): Don't include %(cpp_subtarget).
11677 * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
11678 (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
11679 * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
11680
11681 2007-04-20 Jakub Jelinek <jakub@redhat.com>
11682
11683 * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
11684 for __builtin_ia32_cmpordss.
11685
11686 PR tree-optimization/31632
11687 * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
11688 and arg1 for optimizations of comparison against min/max values.
11689 Fold arg0 to arg1's type for optimizations of comparison against
11690 min+1 and max-1 values.
11691
11692 2007-04-19 Bernd Schmidt <bernd.schmidt@analog.com>
11693
11694 * reload.c (combine_reloads): When trying to use a dying register,
11695 check whether it's uninitialized and don't use if so.
11696
11697 2007-04-19 Brooks Moses <brooks.moses@codesourcery.com>
11698
11699 * fold-const.c: Remove prototypes for native_encode_expr and
11700 native_interpret_expr.
11701 (native_encode_expr): Make non-static.
11702 (native_interpret_expr): Likewise.
11703 * tree.h: Add prototypes for the above.
11704
11705 2007-04-19 Joseph Myers <joseph@codesourcery.com>
11706
11707 * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
11708 *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
11709 *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
11710 spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
11711 tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
11712 Add length attributes.
11713
11714 2007-04-19 Janis Johnson <janis187@us.ibm.com>
11715
11716 * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
11717 not that it is 1.
11718
11719 * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
11720 __STDC_WANT_DEC_FP__.
11721
11722 2007-04-19 Joseph Myers <joseph@codesourcery.com>
11723
11724 * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
11725 for long double compatibility.
11726 * configure: Regenerate.
11727
11728 2007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
11729
11730 PR rtl-optimization/29841
11731 * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
11732 trap instructions.
11733 * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
11734 that may cause control flow transfer from being moved.
11735
11736 2007-04-18 Jan Hubicka <jh@suse.cz>
11737
11738 * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
11739 types.
11740
11741 2007-04-18 Eric Christopher <echristo@apple.com>
11742
11743 * config/rs6000/darwin.md (load_macho_picbase): Use link register
11744 only. Update operands.
11745 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
11746 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
11747 link register to pic register.
11748
11749 2007-04-18 Dirk Mueller <dmueller@suse.de>
11750
11751 PR diagnostic/31227
11752 * tree-vrp.c (search_for_addr_array): New.
11753 (check_array_bounds): Suppress warning about
11754 address taken of array refs if its not de-referenced.
11755
11756 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
11757
11758 * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
11759 * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
11760
11761 * tree-vectorizer.h (NITERS_KNOWN_P): New.
11762 * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
11763 instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
11764
11765 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
11766 dump print.
11767 (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a
11768 print message.
11769 (vect_analyze_scalar_cycles): Fix indentation.
11770 (vect_enhance_data_refs_alignment): Fix check in case of peeling.
11771 (vect_mark_relevant): Include phis in relevance analysis.
11772
11773 * tree-vect-transform.c (vect_transform_loop): Add an assert.
11774
11775 2007-04-18 Anatoly Sokolov <aesok@post.ru>
11776
11777 * config/avr/avr.c (ptrreg_to_str): Replace error() with
11778 output_operand_lossage().
11779
11780 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
11781
11782 * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
11783 the unused code for reduction without adjust-in-epilog to simplify the
11784 function.
11785
11786 2007-04-18 Wolfgang Gellerich <gellerich@de.ibm.com>
11787
11788 * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
11789 (S390_TDC_NEGATIVE_ZERO): New constant.
11790 (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
11791 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
11792 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
11793 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
11794 (S390_TDC_POSITIVE_INFINITY): New constant.
11795 (S390_TDC_NEGATIVE_INFINITY): New constant.
11796 (S390_TDC_POSITIVE_QUIET_NAN): New constant.
11797 (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
11798 (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
11799 (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
11800 (S390_TDC_INFINITY): New constant.
11801 * config/s390/s390.c (s390_canonicalize_comparison): Renamed
11802 UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
11803 optimization for UNSPEC_CCZ_TO_INT.
11804 * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
11805 ("*ccz_to_int"): New insn.
11806 ("isinf<mode>2"): New insn.
11807 (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
11808 (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
11809 (UNSPEC_CCZ_TO_INT): New constant.
11810
11811 2007-04-18 Richard Guenther <rguenther@suse.de>
11812
11813 PR tree-optimization/19431
11814 PR tree-optimization/21463
11815 * tree-pass.h (pass_phiprop): Declare.
11816 * passes.c (init_optimization_passes): New phiprop pass.
11817 * tree-ssa-forwprop.c (struct phiprop_d): New structure.
11818 (phivn_valid_p): New helper function.
11819 (phiprop_insert_phi): Likewise.
11820 (propagate_with_phi): Likewise.
11821 (tree_ssa_phiprop): New propagator propagating loads
11822 through phi nodes if profitable.
11823
11824 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
11825
11826 * tree-vect-analyze.c (process_use): New function.
11827 (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
11828 Check phis in all bbs.
11829 * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
11830 assert.
11831
11832 2007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
11833
11834 * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
11835 we use REG_EQUAL.
11836
11837 2007-04-17 Anatoly Sokolov <aesok@post.ru>
11838
11839 PR target/30483
11840 * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
11841 error().
11842
11843 2007-04-17 H.J. Lu <hongjiu.lu@intel.com>
11844
11845 * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
11846 on "0".
11847 (sse_vmmulv4sf3): Likewise.
11848 (sse2_vmaddv2df3): Likewise.
11849 (sse2_vmmulv2df3): Likewise.
11850
11851 2007-04-17 Zdenek Dvorak <dvorakz@suse.cz>
11852
11853 PR rtl-optimization/31360
11854 * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
11855 (target_reg_cost): New.
11856 (init_set_costs): Initialize target_reg_cost. Add comments
11857 regarding the rationale of the costs.
11858 (global_cost_for_size): Renamed to...
11859 (estimate_reg_pressure_cost): ... and simplify. Decrease importance
11860 of register pressure.
11861 * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
11862 estimate_reg_pressure_cost. Add number of ivs.
11863 (determine_set_costs): Dump target_reg_cost.
11864 * loop-invariant.c (gain_for_invariant): Use
11865 estimate_reg_pressure_cost. Removed n_inv_uses argument.
11866 (best_gain_for_invariant, find_invariants_to_move): Remove
11867 n_inv_uses.
11868 * cfgloop.h (target_small_cost, target_pres_cost): Removed.
11869 (target_reg_cost): Declare.
11870 (global_cost_for_size): Declaration removed.
11871 (estimate_reg_pressure_cost): Declare.
11872
11873 2007-04-17 Peter Bergner <bergner@vnet.ibm.com>
11874
11875 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
11876 regnos into even/odd register pairs.
11877 * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
11878 TDmode similar to the other floating point modes.
11879 [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
11880 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
11881 define_expand's.
11882 (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
11883 nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
11884 (movdd_hardfloat64): Use TARGET_MFPGPR.
11885
11886 2007-04-17 Bernd Schmidt <bernd.schmidt@analog.com>
11887
11888 * reload1.c (delete_output_reload): Don't count output in n_inherited.
11889
11890 Revert
11891 2005-01-05 Richard Henderson <rth@redhat.com>
11892 PR rtl-opt/10692
11893 * reload1.c (do_input_reload): Restrict the optimization deleteing
11894 a previous output reload to RELOAD_FOR_INPUT.
11895
11896 2007-04-17 Dorit Nuzman <dorit@il.ibm.com>
11897
11898 * tree-vectorizer.h (stmt_vec_info_type): Add enum value
11899 induc_vec_info_type.
11900 (vectorizable_induction): New function declaration.
11901 * tree-vect-transform.c (get_initial_def_for_induction): No need to
11902 check if already vectorized. Find first place in BB where new stmts
11903 can be inserted. Takes only one argument.
11904 (vectorizable_induction): New function.
11905 (vect_transform_stmt): Add case for induc_vec_info_type to call
11906 vectorizable_induction.
11907 (vect_transform_loop): Consider phis for vectorization.
11908 * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
11909 condition.
11910 (analyze_operations): Call vectorizable_induction when analyzing phis.
11911 Fix comment.
11912 (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
11913 (vect_mark_relevant): Include phis in relevance analysis.
11914 (vect_mark_stmts_to_be_vectorize): Likewise.
11915 * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
11916
11917 2007-04-16 Lawrence Crowl <crowl@google.com>
11918
11919 * doc/invoke.texi (Debugging Options): Add documentation for the
11920 -femit-struct-debug options -femit-struct-debug-baseonly,
11921 -femit-struct-debug-reduced, and
11922 -femit-struct-debug-detailed[=...].
11923
11924 * c-opts.c (c_common_handle_option): Add
11925 OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
11926 and OPT_femit_struct_debug_detailed_.
11927 * c.opt: Add specifications for
11928 -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
11929 and -femit-struct-debug-detailed[=...].
11930 * opts.c (set_struct_debug_option): Parse the
11931 -femit-struct-debug-... options.
11932 * opts.c (matches_main_base, main_input_basename,
11933 main_input_baselength, base_of_path, matches_main_base): Add
11934 variables and functions to compare header base name to compilation
11935 unit base name.
11936 * opts.c (should_emit_struct_debug): Add to determine to emit a
11937 structure based on the option.
11938 (dump_struct_debug) Also disabled function to debug this
11939 function.
11940 * opts.c (handle_options): Save the base name of the
11941 compilation unit.
11942
11943 * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
11944 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
11945 This hook indicates if a type is generic. Set it by default
11946 to "never generic".
11947 * langhooks.h (struct lang_hooks_for_types): Add a new hook
11948 to determine if a struct type is generic or not.
11949 * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
11950 * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
11951 * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
11952 with live C++ hook.
11953
11954 * flags.h (enum debug_info_usage): Add an enumeration to describe
11955 a program's use of a structure type.
11956 * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
11957 to indicate the program's usage of the type. Filter structs based
11958 on the -femit-struct-debug-... specification.
11959 (gen_type_die): Split into two routines, gen_type_die and
11960 gen_type_die_with_usage. gen_type_die is now a wrapper
11961 that assumes direct usage.
11962 (gen_type_die_with_usage): Replace calls to gen_type_die
11963 with gen_type_die_with_usage adding the program usage of
11964 the referenced type.
11965 (dwarf2out_imported_module_or_decl): Suppress struct debug
11966 information using should_emit_struct_debug when appropriate.
11967
11968 2007-04-16 Ian Lance Taylor <iant@google.com>
11969
11970 PR tree-optimization/31522
11971 * tree-vrp.c (vr_phi_edge_counts): New static variable.
11972 (vrp_initialize): Allocate vr_phi_edge_counts.
11973 (vrp_visit_phi_node): Don't push to infinity if we saw a new
11974 executable edge. Drop test for all constants.
11975 (vrp_finalize): Free vrp_phi_edge_counts.
11976
11977 * doc/cpp.texi (Common Predefined Macros): Clarify description of
11978 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
11979
11980 * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
11981 predecessors at head rather than tail.
11982
11983 2007-04-16 Matthias Klose <doko@debian.org>
11984
11985 * config/alpha/linux.h (CPP_SPEC): Define.
11986 * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
11987
11988 2007-04-16 Aldy Hernandez <aldyh@redhat.com>
11989
11990 * function.h: Remove sequence_stack extern declaration.
11991
11992 2007-04-16 Kazu Hirata <kazu@codesourcery.com>
11993
11994 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
11995 TARGET_FIDOA.
11996 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
11997 defined.
11998
11999 2007-04-16 Anatoly Sokolov <aesok@post.ru>
12000
12001 * config/avr/avr.c (avr_arch_types): Rearranging array.
12002 (enum avr_arch): Add.
12003 (avr_mcu_types): Use avr_arch enumeration constants instead of
12004 numbers.
12005 * config/avr/avr.h (LINK_SPEC): Simplify.
12006
12007 2007-04-16 Kazu Hirata <kazu@codesourcery.com>
12008
12009 * config/m68k/m68k.c (m68k_libcall_value,
12010 m68k_function_value): Use macros for register names more.
12011
12012 * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
12013 instead.
12014 (M68K_REGNAME): Use A6_REG.
12015 * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
12016
12017 2007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
12018
12019 PR middle-end/28071
12020 * sched-int.h (struct deps): Split field 'pending_lists_length' into
12021 'pending_read_list_length' and 'pending_write_list_length'. Update
12022 comment.
12023 * sched-deps.c (add_insn_mem_dependence): Change signature. Update
12024 to handle two length counters instead of one. Update all uses.
12025 (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
12026 two length counters instead of one.
12027 * sched-rgn.c (propagate_deps): Update to handle two length counters
12028 instead of one.
12029
12030 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
12031
12032 PR target/31582
12033 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
12034 copy of source, pass it to ix86_expand_vector_set and return
12035 it as target.
12036
12037 2007-04-16 David Ung <davidu@mips.com>
12038 Joseph Myers <joseph@codesourcery.com>
12039
12040 * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
12041 PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
12042 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
12043 Add 74K processor information.
12044 * config/mips/mips.md: Include 74k.md.
12045 (cpu): Add 74kc,74kf,74kx.
12046 (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
12047 * config/mips/74k.md: New.
12048 * doc/invoke.texi (MIPS Options): Document 74K support.
12049
12050 2007-04-16 Dorit Nuzman <dorit@il.ibm.com>
12051
12052 * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
12053 vectorizable_* functions.
12054 * tree-vect-transform.c (vectorizable_call): Add check for
12055 STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
12056 (vectorizable_store): likewise.
12057 (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
12058 Add comments.
12059 (vectorizable_operation, vectorizable_type_demotion): Likewise.
12060 (vectorizable_type_promotion, vectorizable_load): Likewise.
12061 (vectorizable_live_operation, vectorizable_condition): Likewise.
12062 (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
12063 STMT_VINFO_LIVE_P.
12064 (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
12065
12066 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
12067
12068 * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
12069 register numbers more.
12070 * config/m68k/m68k.h (STACK_POINTER_REGNUM,
12071 FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
12072 M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
12073 FUNCTION_VALUE_REGNO_P): Likewise.
12074 * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
12075 STATIC_CHAIN_REGNUM): Likewise.
12076 * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
12077 * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
12078 STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
12079 * config/m68k/m68k.md (FP_REG): New.
12080
12081 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
12082
12083 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
12084 alignment on fido.
12085
12086 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
12087
12088 * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
12089 tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
12090 comment typos.
12091
12092 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
12093
12094 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
12095 cold loops.
12096
12097 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
12098
12099 PR c/31520
12100 * c-decl.c (finish_decl): Grab the type of the decl after the call
12101 to store_init_value.
12102
12103 2007-04-14 Steven Bosscher <steven@gcc.gnu.org>
12104
12105 * common.opt (fforward-propagate): Fix "Optimization" annotation.
12106
12107 2007-04-14 Jakub Jelinek <jakub@redhat.com>
12108
12109 PR c++/25874
12110 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
12111 dominators, post dominators and cleanup cfg before returning.
12112
12113 2007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
12114
12115 * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
12116 * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
12117
12118 2007-04-14 Kazu Hirata <kazu@codesourcery.com>
12119
12120 * config.gcc: Recognize fido.
12121 * config/m68k/m68k-devices.def (fidoa): New.
12122 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
12123 __mfido__.
12124 (FL_FIDOA, TARGET_FIDOA): New.
12125 * config/m68k/m68k.opt (mfidoa): New.
12126
12127 2007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12128
12129 PR middle-end/31322
12130 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
12131 when a personality function is used.
12132
12133 2007-04-13 Bob Wilson <bob.wilson@acm.org>
12134
12135 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
12136
12137 2007-04-13 Mike Stump <mrs@apple.com>
12138
12139 * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
12140 we can...
12141 * config/darwin.opt (fapple-kext): Make C++ only.
12142 * config/darwin.c (darwin_override_options): Remove code to ensure
12143 -fapple-kext is given for C++ only.
12144
12145 2007-04-13 Richard Sandiford <richard@codesourcery.com>
12146
12147 * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
12148 * config/mips/mips.c (override_options): Call
12149 SUBTARGET_OVERRIDE_OPTIONS, if defined.
12150
12151 2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
12152
12153 * config/i386/i386.opt (msvr3-shlib): Removed.
12154
12155 * doc/invoke.texi: Remove -msvr3-shlib.
12156
12157 2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
12158
12159 * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
12160 with "popcnt" instruction.
12161
12162 2007-04-13 Richard Guenther <rguenther@suse.de>
12163
12164 PR tree-optimization/21258
12165 * tree-vrp.c (compare_case_labels): New helper.
12166 (find_switch_asserts): New function.
12167 (find_assert_locations): Call it for SWITCH_EXPRs.
12168
12169 2007-04-13 Uros Bizjak <ubizjak@gmail.com>
12170
12171 * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
12172 * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
12173 check is now implied in X87_FLOAT_MODE_P.
12174 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
12175 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
12176 (fix_trunc<mode>_i386_fisttp): Ditto.
12177 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
12178 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
12179 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
12180 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
12181 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
12182 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
12183 (unnamed_splitters): Ditto.
12184 * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
12185 for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
12186 FIRST_SSE_REG for local functions when SSE math is enabled or
12187 for functions with sseregparm attribute.
12188 (standard_80387_constant_p): Return -1 if mode is not
12189 X87_FLOAT_MODE_P.
12190 (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
12191 (ix86_expand_compare): Ditto.
12192 (ix86_expand_carry_flag_compare): Ditto.
12193 (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
12194 of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
12195 DECIMAL_FLOAT_MODE_P.
12196 (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
12197 of SCALAR_FLOAT_MODE_P.
12198 (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
12199 [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
12200 checks before FLOAT_MODE_P.
12201 [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
12202 before FLOAT_MODE_P.
12203 [DIV]: Ditto.
12204 [NEG]: Ditto.
12205 [ABS]: Ditto.
12206 [SQRT]: Ditto.
12207 [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
12208
12209 2007-04-12 Paolo Bonzini <bonzini@gnu.org>
12210 Charles Wilson <libtool@cwilson.fastmail.fm>
12211
12212 * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
12213 (libgcc.mvars): Don't depend on them.
12214 * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
12215 * exec-tool.in: New.
12216
12217 2007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
12218
12219 * doc/invoke.text (--help): Document --help=common.
12220
12221 2007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
12222
12223 * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
12224
12225 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12226
12227 * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
12228 * genemit.c (main): Emit #include "integrate.h".
12229 * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
12230 (LOADGP_RTP): New mips_loadgp_style.
12231 * config/mips/mips.h: Include config/vxworks-dummy.h.
12232 (TARGET_RTP_PIC): New macro.
12233 (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
12234 (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
12235 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
12236 for TARGET_RTP_PIC.
12237 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
12238 -mvxworks-pic when using -mrtp and a PIC option.
12239 * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
12240 for RTP PIC.
12241 (mips_symbolic_constant_p, mips_symbolic_address_p)
12242 (mips_symbol_insns): Handle SYMBOL_HALF.
12243 (override_options): Warn about -G and -mrtp being used together.
12244 Initialize mips_lo_relocs[SYMBOL_HALF].
12245 (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
12246 (mips_emit_loadgp): Handle LOADGP_RTP.
12247 (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
12248 * config/mips/mips.md (loadgp_rtp): New insn and splitter.
12249 (tablejump): Handle function-relative case table entries if
12250 TARGET_RTP_PIC.
12251 * config/mips/predicates.md (symbol_ref_operand): New predicate.
12252
12253 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12254
12255 * config/mips/mips.md (load_call<mode>): Allow any general register.
12256 destination.
12257 (sibcall_value_internal, sibcall_value_multiple_internal)
12258 (call_value_internal, call_value_split, call_value_multiple_internal)
12259 (call_value_multiple_split): Remove constraints from operand 0.
12260
12261 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12262
12263 * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
12264 rather than loadgp_noshared.
12265 * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
12266 instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
12267 gen_loadgp.
12268 * config/mips/mips.md (loadgp): Rename to...
12269 (loadgp_newabi): ...this.
12270 (loadgp_noshared): Rename to...
12271 (loadgp_absolute): ...this.
12272
12273 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12274
12275 * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
12276 false for locally-binding symbols.
12277 (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
12278
12279 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12280
12281 * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
12282 (SYMBOL_GOT_PAGE_OFST): ...this.
12283 (SYMBOL_GOT_GLOBAL): Rename to...
12284 (SYMBOL_GOT_DISP): ...this.
12285 (SYMBOL_GOTOFF_GLOBAL): Rename to...
12286 (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
12287 * config/mips/mips.c (mips_global_symbol_p): New function.
12288 (mips_symbol_binds_local_p): Likewise.
12289 (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
12290 and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use
12291 mips_global_symbol_p and mips_symbol_binds_local_p.
12292 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
12293 (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
12294 SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
12295 SYMBOL_GOTOFF_DISP.
12296 (mips_ok_for_lazy_binding_p): New function.
12297 (mips_load_call_address, mips_expand_call): Use it.
12298 (mips_dangerous_for_la25_p): Likewise.
12299 * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
12300 (*got_disp<mode>): Use got_disp_operand instead of
12301 global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
12302 SYMBOL_GOTOFF_GLOBAL.
12303 (*got_page<mode>): Use got_page_ofst_operand instead of
12304 local_got_operand.
12305 * config/mips/predicates.md (const_call_insn_operand): Use
12306 SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
12307 (global_got_operand): Rename to...
12308 (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
12309 SYMBOL_GOT_GLOBAL.
12310 (local_got_operand): Rename to...
12311 (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
12312 of SYMBOL_GOT_LOCAL.
12313
12314 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12315
12316 * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
12317 TARGET_CALL_CLOBBERED_GP.
12318 (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
12319 (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
12320 (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
12321 (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
12322 of TARGET_ABICALLS && !TARGET_NEWABI.
12323 (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
12324 * config/mips/mips.c (mips_load_call_address): Check
12325 TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
12326 (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
12327 Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
12328 (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
12329 TARGET_ABICALLS && TARGET_NEWABI.
12330 (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
12331 TARGET_ABICALLS.
12332 (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
12333 (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
12334 TARGET_ABICALLS && TARGET_NEWABI.
12335 (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
12336 TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
12337 TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
12338 whether indirect calls must use $25.
12339 (mips_extra_live_on_entry): Check TARGET_GOT instead of
12340 TARGET_ABICALLS.
12341 * config/mips/mips.md (jal_macro): Check flag_pic and
12342 TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
12343 (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
12344 instead of TARGET_ABICALLS.
12345 (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
12346 TARGET_ABICALLS && TARGET_OLDABI.
12347 (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
12348 (sibcall): In the comment above the define_insn, mention
12349 TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
12350 * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
12351 instead of TARGET_ABICALLS.
12352
12353 2007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
12354
12355 * doc/md.texi (Blackfin family constraints): Document PA and PB.
12356 * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
12357 (MACFLAGS_MATCH_P): New macro.
12358 * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
12359 (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
12360 * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
12361 the other MACFLAG constants.
12362 (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
12363 (flag_machi): Tighten constraints. Renumber some of the operands.
12364 (flag_machi_acconly): Tighten constraints. Correct operand numbers in
12365 output template.
12366 (flag_machi_parts_acconly): New pattern.
12367 (flag_macinithi): Tighten constraints. Allow any accumulator to be
12368 used.
12369 (flag_macinit1hi): Tighten constraints.
12370 (flag_mul_macv2hi_parts_acconly): New pattern.
12371
12372 * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
12373 Use a more efficient implementation.
12374 * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
12375 inline sequences when not optimizing for size.
12376
12377 * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
12378 movhi_high2low): Delete, merge functionality into...
12379 (packv2hi): ... this pattern.
12380
12381 2007-02-11 Jie Zhang <jie.zhang@analog.com>
12382 * config/bfin/bfin.opt (msim): New option.
12383 (mcpu=): New option.
12384 * config/bfin/bfin-protos.h (enum bfin_cpu): New.
12385 (bfin_cpu_t): Typedef of enum bfin_cpu.
12386 (bfin_cpu_type): New declaration.
12387 * config/bfin/elf.h (STARTFILE_SPEC): Add support for
12388 -msim and -mcpu= options.
12389 (LIB_SPEC): Likewise.
12390 * config/bfin/bfin.c (bfin_cpu_type): Define.
12391 (bfin_handle_option): Handle -mcpu= option.
12392 * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
12393 (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
12394 __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
12395
12396 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12397
12398 * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
12399 (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
12400 (powerpc-wrs-vxworksae): Use ${tm_file}.
12401 (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
12402 after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
12403 * config/i386/vx-common.h: New file.
12404
12405 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12406
12407 * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
12408 of crt0.o%s.
12409
12410 2007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
12411
12412 * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
12413 ldxtr.
12414
12415 2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
12416
12417 PR c++/31078
12418 PR c++/31103
12419 * c-common.c (c_build_qualified_type): Set canonical type
12420 appropriately.
12421
12422 2007-04-12 Richard Guenther <rguenther@suse.de>
12423
12424 * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
12425 lower bound and element size if lower bound is not zero
12426 or either of the ARRAY_REF operands is set.
12427
12428 2007-04-12 Richard Guenther <rguenther@suse.de>
12429
12430 PR tree-optimization/24689
12431 PR tree-optimization/31307
12432 * fold-const.c (operand_equal_p): Compare INTEGER_CST array
12433 indices by value.
12434 * gimplify.c (canonicalize_addr_expr): To be consistent with
12435 gimplify_compound_lval only set operands two and three of
12436 ARRAY_REFs if they are not gimple_min_invariant. This makes
12437 it never at this place.
12438 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
12439
12440 2007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12441
12442 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
12443 null before emitting a .nsubspa directive.
12444
12445 2007-04-11 Diego Novillo <dnovillo@redhat.com>
12446
12447 * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
12448 need_to_partition_p if there are no memory statements in the
12449 function.
12450
12451 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
12452
12453 * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
12454 (gcd_of_steps_may_divide_p): New function.
12455 (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
12456
12457 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
12458
12459 * reload.c (find_reloads_toplev, find_reloads_address,
12460 find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
12461 not a pointer equality test, to decide if we need to call
12462 push_reg_equiv_alt_mem.
12463
12464 2007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
12465
12466 * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
12467 insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
12468 New.
12469 (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
12470
12471 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
12472
12473 * tree-data-ref.c (add_multivariate_self_dist): Force the distance
12474 vector to be positive.
12475
12476 2007-04-11 Diego Novillo <dnovillo@redhat.com>
12477
12478 PR 30735
12479 PR 31090
12480 * doc/invoke.texi: Document --params max-aliased-vops and
12481 avg-aliased-vops.
12482 * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
12483 debug_memory_partitions): Move to tree-flow.h
12484 * params.h (AVG_ALIASED_VOPS): Define.
12485 * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
12486 users.
12487 (mp_info_t): Likewise.
12488 (get_mem_sym_stats_for): New.
12489 (set_memory_partition): Move from tree-flow-inline.h.
12490 (mark_non_addressable): Only clear the set of symbols for the
12491 partition if it exists.
12492 (dump_memory_partitions): Move from tree-ssa-operands.c
12493 (debug_memory_partitions): Likewise.
12494 (need_to_partition_p): New.
12495 (dump_mem_ref_stats): New.
12496 (debug_mem_ref_stats): New.
12497 (dump_mem_sym_stats): New.
12498 (debug_mem_sym_stats): New.
12499 (update_mem_sym_stats_from_stmt): New.
12500 (compare_mp_info_entries): New.
12501 (mp_info_cmp): Call it.
12502 (sort_mp_info): Change argument to a list of mem_sym_stats_t
12503 objects.
12504 (get_mpt_for): Move from tree-ssa-operands.c.
12505 (find_partition_for): New.
12506 (create_partition_for): Remove.
12507 (estimate_vop_reduction): New.
12508 (update_reference_counts): New.
12509 (build_mp_info): New.
12510 (compute_memory_partitions): Refactor.
12511 Document new heuristic.
12512 Call build_mp_info, update_reference_counts,
12513 find_partition_for and estimate_vop_reduction.
12514 (compute_may_aliases): Populate virtual operands before
12515 calling debugging dumps.
12516 (delete_mem_sym_stats): New.
12517 (delete_mem_ref_stats): New.
12518 (init_mem_ref_stats): New.
12519 (init_alias_info): Call it.
12520 (maybe_create_global_var): Remove alias_info argument.
12521 Get number of call sites and number of pure/const call sites
12522 from gimple_mem_ref_stats().
12523 (dump_alias_info): Call dump_memory_partitions first.
12524 (dump_points_to_info_for): Show how many times a pointer has
12525 been dereferenced.
12526 * opts.c (decode_options): For -O2 set --param
12527 max-aliased-vops to 500.
12528 For -O3 set --param max-aliased-vops to 1000 and --param
12529 avg-aliased-vops to 3.
12530 * fortran/options.c (gfc_init_options): Remove assignment to
12531 MAX_ALIASED_VOPS.
12532 * tree-flow-inline.h (gimple_mem_ref_stats): New.
12533 * tree-dfa.c (dump_variable): Dump memory reference
12534 statistics.
12535 Dump NO_ALIAS* settings.
12536 (referenced_var_lookup): Tidy.
12537 (mem_sym_stats): New.
12538 * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
12539 and ORIG are different SSA names for a memory partition.
12540 * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
12541 * tree-flow.h (struct mem_sym_stats_d): Define.
12542 (mem_sym_stats_t): Define.
12543 (struct mem_ref_stats_d): Define.
12544 (struct gimple_df): Add field mem_ref_stats.
12545 (enum noalias_state): Define.
12546 (struct var_ann_d): Add bitfield noalias_state.
12547 (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
12548 debug_mem_ref_stats, debug_memory_partitions,
12549 debug_mem_sym_stats): Declare.
12550 * tree-ssa-structalias.c (update_alias_info): Update call
12551 sites, pure/const call sites and asm sites in structure
12552 returned by gimple_mem_ref_stats.
12553 Remove local variable IS_POTENTIAL_DEREF.
12554 Increase NUM_DEREFS if the memory expression is a potential
12555 dereference.
12556 Call update_mem_sym_stats_from_stmt.
12557 If the memory references memory, call
12558 update_mem_sym_stats_from_stmt for all the direct memory
12559 symbol references found.
12560 (intra_create_variable_infos): Set noalias_state field for
12561 pointer arguments according to the value of
12562 flag_argument_noalias.
12563 * tree-ssa-structalias.h (struct alias_info): Remove fields
12564 num_calls_found and num_pure_const_calls_found.
12565 (update_mem_sym_stats_from_stmt): Declare.
12566 * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
12567 Set default value to 100.
12568 (PARAM_AVG_ALIASED_VOPS): Define.
12569
12570 2007-04-11 Richard Guenther <rguenther@suse.de>
12571
12572 PR middle-end/31530
12573 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
12574 a * -b + c as c - a * b if we honor sign dependent rounding.
12575
12576 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
12577
12578 * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
12579 bfin_expand_strmov.
12580 * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
12581 bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
12582 variables.
12583 (initialize_trampoline): Don't use old-style function definition.
12584 (bfin_secondary_reload): Mark IN_P argument as unused.
12585
12586 2007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
12587
12588 PR tree-optimization/31343
12589 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
12590 (build_polynomial_chrec): Return a scalar when the evolution is zero.
12591 * testsuite/gcc.dg/vect/pr31343.c: New.
12592
12593 2007-04-10 Eric Christopher <echristo@apple.com>
12594
12595 * config/i386/i386.h (X87_FLOAT_MODE_P): New.
12596 * config/i386/i386.md (*cmpfp0): Use.
12597 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
12598 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
12599 (fix_trunc<mode>_i386_fisttp): Ditto.
12600 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
12601 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
12602 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
12603 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
12604 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
12605 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
12606 (unnamed_splitters): Ditto.
12607 * config/i386/i386.c (output_fix_trunc): Assert that
12608 we're not being passed a TFmode operand.
12609
12610 2007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
12611
12612 PR tree-optimization/31526
12613 * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
12614 n_basic_blocks to find newly added blocks.
12615
12616 2007-04-10 Uros Bizjak <ubizjak@gmail.com>
12617
12618 * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
12619 alternative.
12620 (fix_trunc<mode>si_sse): Ditto.
12621 (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
12622 (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
12623 (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
12624 (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
12625 (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
12626 expander using SSEMODEF mode macro.
12627 (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
12628 expander using SSEMODEF mode macro.
12629 (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
12630 *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
12631 (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
12632 *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
12633 (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
12634 *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
12635 (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
12636 Macroize insn using X87MODEF mode macro.
12637
12638 2007-04-09 H.J. Lu <hongjiu.lu@intel.com>
12639
12640 * config/i386/sse.md (sse2_pinsrw): Removed.
12641 (sse2_pextrw): Renamed to ...
12642 (*sse2_pextrw): This.
12643
12644 2007-04-09 Jan Hubicka <jh@suse.cz>
12645
12646 PR target/27869
12647 * config/i386/sse.md
12648 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
12649 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
12650 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
12651 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
12652
12653 2007-04-09 Jan Hubicka <jh@suse.cz>
12654
12655 * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
12656 multiple fields of union.
12657
12658 2007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
12659
12660 * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
12661 (create_preheaders): Check that loops are available.
12662 (fix_loop_structure): Clean up, improve comments.
12663 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
12664 Check that loops are available. Set LOOP_CLOSED_SSA to the loops
12665 state flags.
12666 * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
12667 * predict.c (tree_estimate_probability): Do not call
12668 calculate_dominance_info. Call create_preheaders.
12669 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
12670 rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
12671 flags.
12672 * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
12673 * cfgloop.h (LOOP_CLOSED_SSA): New constant.
12674 * tree-cfg.c (tree_split_edge): Make an assert more precise.
12675 * tree-ssa-threadedge.c (thread_across_edge): Comment the function
12676 arguments.
12677
12678 2007-04-08 Jan Hubicka <jh@suse.cz>
12679
12680 * tree.h (maybe_fold_offset_to_component_ref): Declare.
12681 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
12682 * fold-const.c (fold_unary): Use it.
12683
12684 2007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
12685
12686 * varasm.c (assemble_variable): Remove call to
12687 lang_hooks.decls.prepare_assemble_variable.
12688 * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
12689 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
12690 * langhooks.h (lang_hooks_for_decls): Remove
12691 prepare_assemble_variable.
12692
12693 2007-04-08 Mike Stump <mrs@apple.com>
12694
12695 * config/i386/i386.c: Use inc/dec on Core2.
12696
12697 2007-04-08 Steven Bosscher <steven@gcc.gnu.org>
12698
12699 * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
12700 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
12701 lhd_tree_inlining_end_inlining): Remove.
12702 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
12703 add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
12704 end_inlining hooks.
12705 * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
12706 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
12707 lhd_tree_inlining_end_inlining): Remove prototypes.
12708 (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
12709 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
12710 LANG_HOOKS_TREE_INLINING_START_INLINING,
12711 LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
12712
12713 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
12714 not set it.
12715
12716 2007-04-08 Anatoly Sokolov <aesok@post.ru>
12717
12718 PR target/29932
12719 * config/avr/predicates.md (io_address_operand): Delete predicate.
12720 (low_io_address_operand): Don't use 'mode' argument.
12721 (higth_io_address_operand): Rename ...
12722 (high_io_address_operand): ... to this. Don't use 'mode' argument.
12723 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
12724 for above change.
12725
12726 2007-04-07 Daniel Berlin <dberlin@dberlin.org>
12727
12728 Revert change removing staticp.
12729
12730 2007-04-07 Anatoly Sokolov <aesok@post.ru>
12731
12732 PR target/30289
12733 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
12734 earlyclobber.
12735
12736 2007-04-07 Bruce Korb <bkorb@gnu.org>
12737
12738 * c.opt: Add -Wformat-contains-nul.
12739 * c-format.c (set_Wformat): Set warn_format_contains_nul to the
12740 -Wformat setting.
12741 (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
12742 the NUL byte warning.
12743
12744 2007-04-07 H.J. Lu <hongjiu.lu@intel.com>
12745
12746 * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
12747
12748 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
12749
12750 * tree.c (staticp): No longer use staticp langhook.
12751 * langhooks.c (lhd_staticp): Removed.
12752 * langhooks.h (struct lang_hooks): Remove staticp.
12753 * c-common.c (c_staticp): Remove.
12754 * c-common.h (c_staticp): Ditto.
12755 * langhooks-defs.h (lhd_staticp): Ditto.
12756 (LHD_HOOKS_STATICP): Ditto
12757 * tree.h (gcc_assert_lowered): New macro.
12758
12759 2007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
12760
12761 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
12762 argument "reliable".
12763 (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
12764 Add argument "reliable". Propagate it through calls.
12765 (infer_loop_bounds_from_undefined): Derive number of iterations
12766 estimates from references in blocks that do not dominate loop latch.
12767 (gcov_type_to_double_int): New function.
12768 (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
12769 and expected_loop_iterations_unbounded.
12770 * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
12771 (expected_loop_iterations): Use expected_loop_iterations_unbounded.
12772 * tree-data-ref.c (estimated_loop_iterations): Export.
12773 (get_references_in_stmt): Fix -- do not return addresses of local
12774 objects.
12775 * cfgloop.h (expected_loop_iterations_unbounded,
12776 estimated_loop_iterations): Declare.
12777
12778 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
12779
12780 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
12781
12782 2007-04-06 Uros Bizjak <ubizjak@gmail.com>
12783
12784 * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
12785 and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
12786 (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
12787 Use output_387_reg_move().
12788 (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
12789 expander using X87MODEF12 mode macro.
12790 (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
12791 choosing register preferences. Use output_387_reg_move().
12792 (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
12793 instead of "x". Use output_387_reg_move().
12794 (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
12795 *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
12796 (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
12797 *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
12798 Use output_387_reg_move().
12799 (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
12800 mode macro.
12801 (*truncxf?f_i387 splitter): Ditto.
12802
12803 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
12804
12805 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
12806 LANG_HOOKS_SAFE_FROM_P.
12807 * expr.c (safe_from_p): Remove langhook call.
12808 * langhooks.h (lang_hooks): Remove safe_from_p.
12809 (lhd_safe_from_p): Remove prototype.
12810 * langhooks.c (lhd_safe_from_p): Remove.
12811
12812 2007-04-06 Jan Hubicka <jh@suse.cz>
12813
12814 * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
12815 functions.
12816
12817 2007-04-06 Uros Bizjak <ubizjak@gmail.com>
12818
12819 * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
12820 * config/i386/i386.md (*movsf_1, *movdf_nointeger,
12821 *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
12822 *movxf_integer): Use output_387_reg_move() for x87 reg->mem
12823 alternative.
12824 (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
12825 *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
12826
12827 2007-04-05 Richard Henderson <rth@redhat.com>
12828
12829 * config/alpha/alpha.c (print_operand) [+]: Remove.
12830 (alpha_end_function): Print nop if call at end of function.
12831 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
12832 * config/alpha/alpha.md (UNSPEC_LDGP1): New.
12833 (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
12834 (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
12835 (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
12836 the call pattern. Update peepholes to match.
12837
12838 2007-04-05 Janis Johnson <janis187@us.ibm.com>
12839
12840 * doc/extend.texi (Other Builtins): Add decimal float variants
12841 of signbit.
12842 * builtins.def: Ditto.
12843 * builtins.c (expand_builtin): Ditto.
12844
12845 2007-04-05 Uros Bizjak <ubizjak@gmail.com>
12846 H.J. Lu <hongjiu.lu@intel.com>
12847
12848 PR target/31478
12849 * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
12850 of V8HImode when calling ix86_binary_operator_ok.
12851 (sse2_pmaddwd): Call ix86_binary_operator_ok.
12852 (sdot_prodv8hi): Operands 1 and 2 must be register.
12853
12854 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
12855
12856 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
12857 initialize align to silence bogus warning.
12858
12859 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
12860
12861 PR middle-end/22156
12862 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
12863 all_no_warning.
12864 (struct sra_walk_fns): Remove use_all parameter from use.
12865 (sra_hash_tree): Handle BIT_FIELD_REFs.
12866 (sra_elt_hash): Don't hash bitfld blocks.
12867 (sra_elt_eq): Skip them in parent compares as well. Handle
12868 BIT_FIELD_REFs.
12869 (sra_walk_expr): Don't maintain or pass down use_all_p.
12870 (scan_use): Remove use_all parameter.
12871 (scalarize_use): Likewise. Re-expand assignment to
12872 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
12873 output, and re-scalarize after output. Don't mark anything
12874 for no warning.
12875 (scalarize_ldst): Adjust.
12876 (scalarize_walk_gimple_modify_statement): Likewise.
12877 (build_element_name_1): Handle BIT_FIELD_REFs.
12878 (instantiate_element): Don't warn for any element whose parent
12879 is used as a whole.
12880 (instantiate_missing_elements_1): Return the sra_elt.
12881 (canon_type_for_field): New.
12882 (try_instantiate_multiple_fields): New.
12883 (instantiate_missing_elemnts): Use them.
12884 (mark_no_warning): Removed.
12885 (generate_one_element_ref): Handle BIT_FIELD_REFs.
12886 (REPLDUP, sra_build_elt_assignment): New.
12887 (generate_copy_inout): Use them.
12888 (generate_element_copy): Likewise. Handle bitfld differences.
12889 (generate_element_zero): Don't recurse for blocks. Use
12890 sra_build_elt_assignment.
12891 (generate_one_element_int): Take elt instead of var. Use
12892 sra_build_elt_assignment.
12893 (generate_element_init_1): Adjust.
12894 (scalarize_use, scalarize_copy): Use REPLDUP.
12895 (scalarize_ldst): Move assert before dereference.
12896 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
12897
12898 2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
12899
12900 * regmove.c: Fix unused variable warnings due to previous commit.
12901
12902 2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
12903
12904 * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
12905 (regmove_bb_head): Remove.
12906 (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
12907 (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
12908 problems with fixup_match_1.
12909 Don't initialize/free regmove_bb_head.
12910
12911 (reg_is_remote_constant_p): If an insn is in the same basic block
12912 but not before INSN, consider it remote, too.
12913
12914 2007-04-05 Anatoly Sokolov <aesok@post.ru>
12915
12916 PR target/25448
12917 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
12918 DECL_ASSEMBLER_NAME, not the DECL_NAME.
12919
12920 2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
12921
12922 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
12923 (CONDITIONAL_REGISTER_USAGE): Likewise.
12924
12925 2007-04-04 Richard Henderson <rth@redhat.com>
12926
12927 * config/alpha/lib1funcs.asm: Remove unused file.
12928
12929 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
12930
12931 PR other/31356
12932 * opts.c (print_specific_help): Fix --help=<language>
12933 header line.
12934 (common_handle_option): Support --help=common.
12935
12936 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
12937
12938 PR other/31353
12939 * gcc.c (main): Do not run the linker if
12940 print_subprocess_help indicates that it shouldn't be
12941 run.
12942
12943 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
12944
12945 PR doc/31355
12946 * doc/invoke.texi (--help=): Document <languages> value, fix
12947 formatting in tables of values.
12948
12949 2007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
12950
12951 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
12952 dllimport attribute of virtual methods.
12953
12954 2007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
12955
12956 * config/score/crti.asm: Change _bss_start to __bss_start.
12957 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
12958 (OUTGOING_REG_PARM_STACK_SPACE) update.
12959 * config/score/score.opt: add options to make backend support
12960 score5, score5u, score7 and score7d.
12961 * config/score/score.md: Likewise.
12962 * config/score/misc.md: Likewise.
12963 * config/score/mac.md: Likewise.
12964 * doc/invoke.texi: Likewise.
12965 * doc/md.texi: update constraints define.
12966
12967 2007-04-03 Richard Henderson <rth@redhat.com>
12968
12969 * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
12970 an appropriate type, use the mode instead.
12971
12972 2007-04-03 Richard Sandiford <richard@codesourcery.com>
12973
12974 * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
12975 Set the default --with-arch setting to mips2.
12976 * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
12977 (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
12978 (MULTILIB_OSDIRNAMES): Delete.
12979 (MULTILIB_DIRNAMES): Define.
12980 * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
12981 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
12982 (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
12983 definitions, except for _WRS_R3K_EXC_SUPPORT. Call
12984 VXWORKS_OS_CPP_BUILTINS.
12985 (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
12986 (MIPS_DEBUGGING_INFO): Undefine.
12987 (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
12988
12989 2007-04-03 Jakub Jelinek <jakub@redhat.com>
12990
12991 PR middle-end/30704
12992 * fold-const.c (native_encode_real): Encode real.c provided longs
12993 as a series of 32-bit native integers.
12994 (native_interpret_real): Interpret buffer as a series of 32-bit
12995 native integers.
12996
12997 2007-04-03 Richard Guenther <rguenther@suse.de>
12998
12999 * genpreds.c (write_insn_constraint_len): Write function
13000 optimized for CONSTRAINT_LEN implementation.
13001 (write_tm_preds_h): Output insn_constraint_len inline and
13002 use it for CONSTRAINT_LEN.
13003 (write_insn_preds_c): Don't output insn_constraint_len.
13004 * doc/md.texi (define_register_constraint): Document multi-letter
13005 constraints shall have the same length if they start with the same
13006 letter.
13007
13008 2007-04-03 Uros Bizjak <ubizjak@gmail.com>
13009
13010 PR target/31175
13011 * config/i386/i386.md (isinf<mode>2): Expand only when
13012 TARGET_C99_FUNCTIONS is set.
13013
13014 2007-04-03 Uros Bizjak <ubizjak@gmail.com>
13015
13016 * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
13017 (x86_64-*-linux*): Ditto.
13018 * config/i386/i386.opt (mpc): New option.
13019 * config/i386/i386.c (overrride_options): Handle
13020 ix87_precision_string.
13021 * config/i386/crtprec.c: New file.
13022 * config/i386/t-crtpc: Ditto.
13023 * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
13024 and -mpc80 options.
13025 * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
13026 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
13027 crtprec32.o, crtprec64.o and crtprec80.o.
13028
13029 * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
13030 and -mpc80 options.
13031 (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
13032
13033 2007-04-02 Eric Christopher <echristo@apple.com>
13034
13035 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
13036 limitations on darwin.
13037
13038 2007-04-02 Anatoly Sokolov <aesok@post.ru>
13039
13040 PR target/31137
13041 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
13042
13043 2007-04-02 Dave Korn <dave.korn@artimi.com>
13044
13045 * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
13046
13047 2007-04-02 Dave Korn <dave.korn@artimi.com>
13048
13049 * libgcc2.h (exception_descriptor): Don't forward-declare.
13050 (__get_eh_table_language, __get_eh_table_version): Delete
13051 prototypes of long-dead functions.
13052
13053 2007-04-01 Daniel Berlin <dberlin@dberlin.org>
13054
13055 * ebitmap.h: New file
13056 * ebitmap.c: New file
13057 * Makefile.in (ebitmap.o): New target.
13058
13059 2007-04-01 Jan Hubicka <jh@suse.cz>
13060
13061 * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
13062 before very first instruction.
13063
13064 2007-04-01 Jan Hubicka <jh@suse.cz>
13065
13066 * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
13067 waring on 64bit hosts.
13068 * bitmap.h: Fix typo in bitmap_head_def.
13069
13070 2007-04-01 Steven Bosscher <steven@gcc.gnu.org>
13071
13072 PR rtl-optimization/31391
13073 * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
13074 into a DELETED_LABEL note, and the label is in an empty basic
13075 block, update BB_END as well as BB_HEAD.
13076
13077 2007-04-01 Richard Henderson <rth@redhat.com>
13078
13079 PR tree-optimization/31169
13080 * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
13081 to varying if the range is outside [0, prec-1].
13082
13083 2007-04-01 Richard Sandiford <richard@codesourcery.com>
13084
13085 PR target/31388
13086 * config/mips/mips.md (load_const_gp): New insn.
13087 * config/mips/mips.c (mips_split_symbol): Avoid using or creating
13088 the MIPS16 GP pseudo register if no_new_pseudos.
13089 (mips16_gp_pseudo_reg): Use gen_load_const_gp.
13090
13091 2007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
13092
13093 PR target/31364
13094 * config/rs6000/rs6000.md (call): Convert to LR hard reg for
13095 secureplt.
13096 (call_value): Likewise.
13097
13098 2007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
13099 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13100
13101 PR 14737
13102 * doc/invoke.texi: (optimization options): Reword description
13103 of -ffast-math. Document its primary purpose.
13104
13105 2007-03-31 Richard Guenther <rguenther@suse.de>
13106
13107 * omp-low.c (splay-tree.h): Include.
13108 (lookup_decl): Replace splay-tree usage by pointer-map.
13109 (maybe_lookup_decl): Likewise.
13110 (new_omp_context): Likewise.
13111 (delete_omp_context): Likewise.
13112 * gimplify.c (splay-tree.h): Include.
13113 * tree-inline.c (insert_decl_map): Replace splay-tree usage by
13114 pointer-map.
13115 (remap_ssa_name): Likewise.
13116 (remap_decl): Likewise.
13117 (remap_type_1): Likewise.
13118 (remap_type): Likewise.
13119 (copy_body_r): Likewise.
13120 (expand_call_inline): Likewise.
13121 (clone_body): Likewise.
13122 (copy_tree_r): Likewise.
13123 (remap_save_expr): Likewise.
13124 (unsave_r): Likewise.
13125 (unsave_expr_now): Likewise.
13126 (tree_function_versioning): Likewise.
13127 (build_duplicate_type): Likewise.
13128 * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
13129 (struct copy_body_data): Replace splay-tree by pointer-map.
13130 * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
13131 not $(SPLAY_TREE_H).
13132 (gimplify.o): Depend on $(SPLAY_TREE_H).
13133 (omp-low.p): Likewise.
13134
13135 2007-03-31 Anatoly Sokolov <aesok@post.ru>
13136
13137 * config/avr/predicates.md (even_register_operand,
13138 odd_register_operand): New predicates.
13139 * config/avr/avr.md (movw peephole2): New.
13140 (movw_r peephole2): New.
13141
13142 2007-03-30 Rafael Avila de Espindola <espindola@google.com>
13143
13144 * tree.h (get_signed_or_unsigned_type): New.
13145 * fold-const.c (operand_equal_for_comparison_p): Use
13146 get_signed_or_unsigned_type instead of
13147 lang_hooks.types.signed_or_unsigned_type.
13148 * expr.c (store_expr): Ditto.
13149 * langhooks.c (get_signed_or_unsigned_type): New.
13150 (lhd_signed_or_unsigned_type): New.
13151 * langhooks.h (lhd_signed_or_unsigned_type): New.
13152 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
13153
13154 2007-03-30 Richard Henderson <rth@redhat.com>
13155
13156 * tree-ssa-loop-ivopts.c: Include target.h.
13157 (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
13158 (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
13159 (force_expr_to_var_cost): Use produce_memory_decl_rtl.
13160 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
13161
13162 2007-03-30 Richard Henderson <rth@redhat.com>
13163 Kai Tietz <kai.tietz@onevision.com>
13164
13165 * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
13166 default for 64-bit.
13167 (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
13168 (TARGET_64BIT_MS_ABI): New.
13169 (DBX_REGISTER_NUMBER): Handle 64-bit.
13170 (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
13171 (LONG_TYPE_SIZE): Force to 32.
13172 (REG_PARM_STACK_SPACE): New.
13173 (OUTGOING_REG_PARM_STACK_SPACE): New.
13174 (REGPARM_MAX, SSE_REGPARM_MAX): New.
13175 (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
13176 (STACK_BOUNDARY): Use 128 for 64-bit.
13177 * config/i386/cygwin.asm: Use push/ret to preserve call stack.
13178 Add 64-bit implementation.
13179 * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
13180 argument unused.
13181 * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
13182 (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
13183 Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
13184 for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
13185 (ix86_handle_cconv_attribute): Don't warn when ignoring if
13186 TARGET_64BIT_MS_ABI.
13187 (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
13188 (ix86_pass_by_reference): Likewise.
13189 (ix86_function_value_regno_p): Likewise.
13190 (ix86_build_builtin_va_list): Likewise.
13191 (ix86_va_start, ix86_gimplify_va_arg): Likewise.
13192 (function_arg_advance_ms_64): New.
13193 (function_arg_advance): Call it.
13194 (function_arg_ms_64): New.
13195 (function_arg): Call it.
13196 (function_value_ms_64): New.
13197 (ix86_function_value_1): Call it.
13198 (return_in_memory_ms_64): New.
13199 (ix86_return_in_memory): Call it.
13200 (setup_incoming_varargs_ms_64): New.
13201 (ix86_setup_incoming_varargs): Call it.
13202 (ix86_expand_prologue): Handle 64-bit stack probing.
13203 (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
13204 (output_pic_addr_const): Likewise.
13205 (x86_this_parameter): Likewise.
13206 (x86_output_mi_thunk): Likewise.
13207 (x86_function_profiler): Likewise.
13208 (TARGET_STRICT_ARGUMENT_NAMING): New.
13209 * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
13210 (TARGET_64BIT_MS_ABI): New.
13211 (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
13212 * config/i386/i386.md (allocate_stack_worker): Remove.
13213 (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
13214 describe the clobber of eax without a match_scratch.
13215 (allocate_stack_worker_postreload): Remove.
13216 (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
13217 describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
13218 (allocate_stack_worker_rex64_postreload): Remove.
13219 (allocate_stack): Handle 64-bit.
13220 * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
13221 * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
13222 (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
13223 (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
13224 (STANDARD_STARTFILE_PREFIX_1): Likewise.
13225 * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
13226 * config.build (x86_64-*-mingw*): New host.
13227 * config.host (x86_64-*-mingw*): New host.
13228 * config.gcc (x86_64-*-mingw*): New target.
13229 * gthr-win32.h (__gthread_key_create): Mark dtor unused.
13230
13231 2007-03-30 Richard Henderson <rth@redhat.com>
13232 Kai Tietz <kai.tietz@onevision.com>
13233
13234 * c-pragma.c (struct def_pragma_macro_value): New.
13235 (struct def_pragma_macro): New.
13236 (pushed_macro_table): New.
13237 (dpm_hash, dpm_eq): New.
13238 (handle_pragma_push_macro, handle_pragma_pop_macro): New.
13239 (init_pragma): Install them.
13240 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
13241
13242 2007-03-30 Anatoly Sokolov <aesok@post.ru>
13243
13244 * config/avr/avr.c (avr_override_options): Clear
13245 'flag_delete_null_pointer_checks'.
13246
13247 2007-03-30 Paolo Carlini <pcarlini@suse.de>
13248
13249 PR c++/26099
13250 * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
13251 RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
13252 RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
13253 RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
13254 RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
13255 RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
13256 RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
13257 C++ extensions.
13258 * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
13259
13260 2007-03-30 Steven Bosscher <steven@gcc.gnu.org>
13261
13262 * regmove.c: Move all of pass_stack_adjustments from here...
13263 * combine-stack-adj.c: ...to this new file.
13264 * Makefile.in: Add rules for combine-stack-adj.o.
13265
13266 2007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
13267
13268 PR tree-optimization/31383
13269 * tree-data-ref.c (affine_function_equal_p): Do not require the
13270 vectors to have the same length.
13271
13272 2007-03-30 Jan Hubicka <jh@suse.cz>
13273
13274 PR middle-end/30700
13275 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
13276 availablility; add more sanity checking; ask varpool only about
13277 VAR_DECL.
13278
13279 2007-03-29 Richard Henderson <rth@redhat.com>
13280
13281 * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
13282 to decide, but __SIZEOF_LONG_LONG__.
13283
13284 2007-03-29 Richard Henderson <rth@redhat.com>
13285
13286 * emutls.c (struct __emutls_array): New.
13287 (emutls_destroy): Use it instead of casting element 0 from void*.
13288 (__emutls_get_address): Likewise.
13289
13290 2007-03-29 Richard Henderson <rth@redhat.com>
13291
13292 * varasm.c (initializer_constant_valid_p): Don't deny
13293 DECL_DLLIMPORT_P on functions.
13294
13295 * config/i386/cygming.h: Remove function declarations.
13296 (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
13297 (ASM_OUTPUT_LABELREF): Remove.
13298 (COMMON_ASM_OP): Remove.
13299 (ASM_OUTPUT_COMMON): Remove.
13300 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
13301 (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
13302 (ASM_DECLARE_FUNCTION_NAME): Likewise.
13303 * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
13304 Rename from TARGET_ENCODE_SECTION_INFO.
13305 * config/i386/netware.h: Likewise.
13306 * config/i386/i386-protos.h: Update.
13307 * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
13308 of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
13309 (legitimate_constant_p): Reject dllimports.
13310 (dllimport_map, get_dllimport_decl): New.
13311 (legitimize_dllimport_symbol): New.
13312 (legitimize_address, ix86_expand_move): Use it.
13313 (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
13314 * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
13315 (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
13316 (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
13317 * config/i386/predicates.md (constant_call_address_operand): Only
13318 accept symbols; reject dllimport_p symbols.
13319 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
13320 i386_pe_maybe_record_exported_symbol.
13321 * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
13322 (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
13323 (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
13324 trust the setting of DECL_DLLIMPORT_P.
13325 (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
13326 (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
13327 (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
13328 tidy the argument scanning loop.
13329 (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
13330 SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
13331 (i386_pe_strip_name_encoding): Remove.
13332 (i386_pe_binds_local_p): New.
13333 (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
13334 (i386_pe_output_labelref): Remove.
13335 (i386_pe_asm_output_aligned_decl_common): New.
13336 (i386_pe_maybe_record_exported_symbol): Rename from
13337 i386_pe_record_exported_symbol; check for dllexported symbols.
13338
13339 2007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
13340
13341 * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
13342 add comment explaining why vsnprintf cannot be used.
13343
13344 2007-03-29 Douglas Gregor <doug.gregor@gmail.com>
13345
13346 PR tree-optimization/30666
13347 * tree.c (build_complex_type): When creating type names for DWARF2
13348 debug info, create TYPE_DECLs for TYPE_NAME instead of
13349 IDENTIFIER_NODEs.
13350 (build_common_tree_nodes_2): Use build_complex_type when building
13351 predefined complex types, to preserve canonical types.
13352
13353 2007-03-29 Steven Bosscher <steven@gcc.gnu.org>
13354
13355 * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
13356 (noce_get_alt_condition): Look at it to determine whether to
13357 reverse the condition or not.
13358 (noce_get_condition): Substitute the truth for lies.
13359 (noce_find_if_block): Set the then_else_reversed field.
13360
13361 2007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
13362
13363 * config/fr30/fr30.md (movdi): Do not accept immediates as the
13364 destination of this insn.
13365 * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
13366 than calling gen_rtx_SET directly. Use r0 to hold the value of
13367 'address + 4' rather than a stack based temporary which can be
13368 mis-optimized away.
13369
13370 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
13371
13372 * config/s390/s390.c (s390_secondary_input_reload_class,
13373 s390_secondary_output_reload_class): Functions removed.
13374 (s390_secondary_reload): New function.
13375 (TARGET_SECONDARY_RELOAD): Target macro defined.
13376 * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
13377 SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
13378 * config/s390/s390.md ("reload_outti", "reload_outdi",
13379 "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
13380 "reload_out<mode>"): Expanders removed.
13381 ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
13382 "reload<mode>_nonoffmem_out"): Expanders added.
13383
13384 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
13385
13386 * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
13387 action if SRC->DEST replacement failed anyway.
13388
13389 2007-03-28 Mike Stump <mrs@apple.com>
13390
13391 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
13392 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
13393 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
13394
13395 2007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
13396
13397 * config.gcc: Accept barcelona as a variant of amdfam10.
13398 * config/i386/i386.c (override_options): Likewise.
13399 * doc/invoke.texi: Likewise.
13400
13401 2007-03-28 Eric Botcazou <ebotcazou@adacore.com>
13402
13403 * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
13404 offsets for BIT_FIELD_REF and COMPONENT_REF.
13405
13406 2007-03-28 Richard Guenther <rguenther@suse.de>
13407
13408 * tree.c (is_global_var): Move ...
13409 * tree-flow-inline.h (is_global_var): ... here.
13410 * tree.h (is_global_var): Remove declaration.
13411
13412 2007-03-28 Uros Bizjak <ubizjak@gmail.com>
13413
13414 * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
13415 option.
13416 (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
13417 * config/i386/i386.c (ix86_tune_features): Initialize new
13418 tuning option.
13419 * config/i386/predicates.md (promotable_binary_operator): Use
13420 TARGET_TUNE_PROMOTE_HIMODE_IMUL.
13421
13422 2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
13423
13424 PR target/31380
13425 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
13426
13427 2007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
13428
13429 * config/fr30/fr30.md (movsi_internal): Change destination
13430 constraint from m to V and add m to the end.
13431
13432 2007-03-28 Christian Bruel <christian.bruel@st.com>
13433
13434 * config/sh/sh.md (movsi_i): Fix type attribute.
13435
13436 2007-03-28 Christian Bruel <christian.bruel@st.com>
13437
13438 * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
13439 (movsf_ie): Likewise.
13440
13441 2007-03-28 Christian Bruel <christian.bruel@st.com>
13442
13443 * config.gcc: Add sh4-300 to multilib.
13444 * config/sh/t-mlib-sh4-300: New file.
13445
13446 2007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
13447
13448 * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
13449 ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
13450 fix_trunc<mode>di2.
13451 ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
13452 fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
13453 ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
13454 "fixuns_trunctddi2"): Whitespace fix.
13455
13456 2007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
13457
13458 * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
13459 the definition of struct sh_args.
13460 (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
13461 CALL_COOKIE_INT_REG_GET): Likewise.
13462
13463 2007-03-28 Steven Bosscher <steven@gcc.gnu.org>
13464
13465 * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
13466 transformations are applied successfully.
13467
13468 2007-03-27 Douglas Gregor <doug.gregor@gmail.com>
13469
13470 * tree.c (tree_contains_struct): Permit 512 tree codes.
13471 * tree.h (tree_contains_struct): Ditto.
13472 (MAX_TREE_CODES): Ditto.
13473 (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
13474 SPARE member to store remaining padding bits.
13475
13476 2007-03-27 Anatoly Sokolov <aesok@post.ru>
13477
13478 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
13479 architecture.
13480
13481 2007-03-27 Janis Johnson <janis187@us.ibm.com>
13482
13483 * configure.ac: Fix assembler test for powerpc*-linux decimal float.
13484 * configure: Regenerate.
13485
13486 * configure: Regenerate using the correct version of autoconf.
13487
13488 2007-03-27 Anatoly Sokolov <aesok@post.ru>
13489
13490 * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
13491 pointer regs.
13492 * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
13493 regs to "__SP_L__" and "__SP_H__".
13494
13495 2007-03-27 Richard Guenther <rguenther@suse.de>
13496
13497 * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
13498 computations with it with a HOST_WIDE_INT variable.
13499
13500 2007-03-26 Mike Stump <mrs@apple.com>
13501
13502 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
13503 objective-c-header, objective-c++-header and objc++-cpp-output
13504 support.
13505 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
13506
13507 2007-03-26 Richard Henderson <rth@redhat.com>
13508
13509 PR target/31361
13510 * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
13511 IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
13512 IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
13513 IX86_BUILTIN_PSRLQ128): New.
13514 (ix86_init_mmx_sse_builtins): Add them.
13515 (ix86_expand_builtin): Expand them.
13516 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
13517 operand 2 be TImode.
13518 * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
13519 _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
13520 _mm_srli_epi64): Mark __B const.
13521 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
13522 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
13523 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
13524 new two-vector shift builtins.
13525
13526 2007-03-26 Ian Lance Taylor <iant@google.com>
13527
13528 PR tree-optimization/31345
13529 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
13530 [+INF, +INF(OVF)] into VARYING.
13531
13532 2007-03-26 Zack Weinberg <zackw@panix.com>
13533
13534 * gengtype-parse.c: New file.
13535 * gengtype-yacc.y: Delete.
13536 * gengtype-lex.l: Don't include gengtype-yacc.h.
13537 Define YY_DECL and yyterminate appropriately for recursive
13538 descent parser. yylval is now a string out-parameter to yylex.
13539 (HWS, EOID): New shorthand.
13540 (IWORD): Add a couple more types.
13541 (yylex): Add a setup stanza. Remove the complex rules for
13542 detecting GTY'ed types and typedefs; replace with simple
13543 keyword detectors. Adjust everything for the changed
13544 definition of yylval. Ignore all pp-directives, not just #define.
13545 (yyerror): Delete.
13546 (parse_file): Rename yybegin; do not call yyparse.
13547 (yyend): New.
13548 * gengtype.c (xasprintf): Export again.
13549 (this_file): New. Use everywhere __FILE__ was being used.
13550 (get_lang_bitmap): Special case types defined in gengtype.c.
13551 (do_typedef, new_structure): Suppress definition of certain types.
13552 (new_structure): Improve diagnostics of duplicate definitions.
13553 Make sure location_s is associated with input.h.
13554 (nreverse_pairs, define_location_structures): New functions.
13555 (main): Improve tagging of kludge types. Remove old kludges
13556 for input.h types; use define_location_structures.
13557 * gengtype.h: Update prototypes. Define token codes here.
13558 * Makefile.in: Remove all references to gengtype-yacc.
13559 Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
13560 and gengtype.
13561 * bitmap.h (struct bitmap_head_def): Coalesce definitions,
13562 add GTY((skip)) to the field that's only conditionally there.
13563 * doc/install.texi: Document that Bison is no longer required
13564 unless building treelang.
13565
13566 * gengtype.c: Don't include gtyp-gen.h.
13567 (srcdir): Declare here.
13568 (base_files, lang_dir_names): Allocate dynamically.
13569 (gt_files, num_gt_files, num_lang_dirs): New globals.
13570 (measure_input_list, read_input_line, read_input_list)
13571 (set_lang_bitmap): New functions.
13572 (get_base_file_bitmap): Rename get_lang_bitmap and drastically
13573 simplify, relying on read_input_list to set up the bitmaps.
13574 (main): Arguments are no longer unused. Check for correct number
13575 of command line arguments, set srcdir and srcdir_len, then call
13576 read_input_list, before doing anything else. No need to worry
13577 about duplicates in main loop.
13578 * configure.ac: Simplify the calculation of all_gtfiles.
13579 Put language tags in there. Don't set or substitute
13580 all_gtfiles_files_langs or all_gtfiles_files_frags.
13581 * Makefile.in: Revamp the way gengtype is invoked, now that it
13582 takes a file on its command line with a much simpler format.
13583 Remove or replace with gtyp-input.list all references to gtyp-gen.h.
13584 (GTFILES): Remove duplicates and C source files.
13585 * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
13586 * objcp/config-lang.in: Add c-pragma.h to gtfiles.
13587 * configure: Regenerate.
13588
13589 * gengtype.h: Remove all type definitions to gengtype.c; leave
13590 only definitions of options_p, type_p, and pair_p as opaque
13591 pointers. Update prototypes.
13592 * gengtype.c: Many type definitions moved here from gengtype.h.
13593 Consolidate type definitions at the top of the file.
13594 (xvasprintf): Delete.
13595 (xasprintf): Make static.
13596 (create_nested_pointer_option): Add 'next' parameter.
13597 (create_field_all, create_field_at): New functions.
13598 (create_field): Now a thin wrapper around create_field_all.
13599 (create_optional_field): Rename create_optional_field_ and add
13600 line argument. Original name is now a macro which supplies
13601 __LINE__.
13602 (oprintf): Use vsnprintf directly.
13603 (close_output_files): Use fatal rather than perror/exit.
13604 (note_def_vec, note_def_vec_alloc): Use create_field_at.
13605 (main): Set progname. Don't use exit.
13606 * gengtype-yacc.y (struct_fields): Use create_field_at.
13607 (option, optionseqopt): Delete.
13608 (optionseq): Consolidate productions from option here so we
13609 can use the first argument to create_option.
13610
13611 * gengtype-lex.l: Distinguish unions from structures in the
13612 token type. Don't call find_structure; return the tag as a string.
13613 * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
13614 ENT_UNION. Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
13615 string. Reorganize typedef_struct production accordingly.
13616 Use create_nested_ptr_option.
13617 * gengtype.c (create_nested_ptr_option): New function.
13618 * gengtype.h: Declare it.
13619
13620 * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
13621 (string_type): Don't declare.
13622 (do_scalar_typedef): Declare.
13623 (create_scalar_type): Update prototype.
13624 * gengtype.c (string_type): Make static.
13625 (scalar_nonchar, scalar_char): New.
13626 (do_scalar_typedef): Export. Always use scalar_nonchar for the type.
13627 (resolve_typedef): Use scalar_nonchar for error recovery.
13628 (create_scalar_type): Remove name_len field. Return scalar_char
13629 or scalar_nonchar as appropriate.
13630 (adjust_field_type): Look at scalar_is_char boolean to decide whether
13631 to use string_type.
13632 (throughout): Use scalar_nonchar instead of calling
13633 create_scalar_type, whenever possible.
13634 (main): Initialize scalar_char and scalar_nonchar before calling
13635 gen_rtx_next.
13636 * gengtype-lex.l: Adjust for removal of second argument to
13637 create_scalar_type. Use yylval.s instead of yylval.t when
13638 returning SCALAR.
13639 * gengtype-yacc.y: Type of SCALAR is string. Call
13640 create_scalar_type from type:SCALAR rule. Adjust for removal of
13641 second argument to create_scalar_type.
13642
13643 * vec.h: Remove all #if IN_GENGTYPE blocks.
13644 Add comment saying that changes may require adjustments to gengtype.
13645 * gengtype.c: Don't include coretypes.h or tm.h.
13646 Add comment to inclusion of errors.h.
13647 (note_def_vec, note_def_vec_alloc): New functions.
13648 * gengtype.h: Declare new functions.
13649 * gengtype-lex.l: Don't include coretypes.h.
13650 (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
13651 Delete.
13652 (update_lineno): Remove unnecessary prototype.
13653 (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
13654 (VEC rule): Just return VEC_TOKEN.
13655 * gengtype-yacc.y (VEC_TOKEN): New token type.
13656 (type): Add a production for VEC(a,b).
13657 * Makefile.in: Update dependencies.
13658
13659 * gengtype-lex.l: Remove rules for parsing pointer-to-function
13660 typedefs that use the old PARAMS macro.
13661
13662 * gengtype-lex.l: Remove all rules and states relating to yacc
13663 input files.
13664 * gengtype-yacc.y: Similarly.
13665 * gengtype.c (note_yacc_type): Delete function.
13666 * gengtype.h: Update prototypes.
13667
13668 2007-03-26 Joseph Myers <joseph@codesourcery.com>
13669
13670 * tree-pretty-print.c (dump_generic_node): Report precision of
13671 unnamed integer types.
13672
13673 2007-03-26 Steven Bosscher <steven@gcc.gnu.org>
13674
13675 * ifcvt.c (noce_try_store_flag_constants): Don't check
13676 no_new_pseudos here.
13677 (noce_try_store_flag_constants): Don't check no_new_pseudos.
13678 (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
13679 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
13680 noce_try_sign_mask): Likewise.
13681 (if_convert): Check no_new_pseudos here.
13682
13683 (cond_exec_process_if_block, noce_process_if_block, find_if_block):
13684 Remove prototypes.
13685 (struct noce_if_info): Add then_bb, else_bb, join_bb members.
13686 (noce_get_condition): Handle new then_else_reversed argument.
13687 (noce_init_if_info): Remove, fold into noce_find_if_block.
13688 (noce_process_if_block): Take a struct noce_if_info as the
13689 argument. Don't set up one based on ce_if_info. Update pointer
13690 references accordingly.
13691 (cond_move_process_if_block): Likewise.
13692 (process_if_block): Removed.
13693 (find_if_block): Removed. Move functionality two new functions,
13694 noce_find_if_block and cond_exec_find_if_block.
13695 (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
13696 blocks and the symmetric IF-ELSE-JOIN case.
13697 (cond_exec_find_if_block): Also new function mostly based on old
13698 find_if_block and process_if_block.
13699 (find_if_header): Replace find_if_block call with separately
13700 guarded calls to noce_find_if_block and cond_exec_find_if_block.
13701 (find_cond_trap): Update noce_get_condition call.
13702 (dead_or_predicable): Likewise.
13703
13704 2007-03-26 Jakub Jelinek <jakub@redhat.com>
13705
13706 * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
13707 Remove.
13708 (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
13709 IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
13710 IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
13711 (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
13712 v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
13713 __builtin_ia32_pslld128, __builtin_ia32_psllq128,
13714 __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
13715 __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
13716 __builtin_ia32_psrad128 builtins.
13717
13718 2007-03-26 Uros Bizjak <ubizjak@gmail.com>
13719
13720 * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
13721 * config/i386/constraints.md
13722 (define_constraint "I"): Use IN_RANGE macro.
13723 (define_constraint "J"): Ditto.
13724 (define_constraint "K"): Ditto.
13725 (define_constraint "M"): Ditto.
13726 (define_constraint "N"): Ditto.
13727 (define_constraint "O"): Ditto.
13728 * config/i386/predicates.md
13729 (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
13730 (define_predicate "const_0_to_3_operand"): Ditto.
13731 (define_predicate "const_0_to_7_operand"): Ditto.
13732 (define_predicate "const_0_to_15_operand"): Ditto.
13733 (define_predicate "const_0_to_63_operand"): Ditto.
13734 (define_predicate "const_0_to_255_operand"): Ditto.
13735 (define_predicate "const_1_to_31_operand"): Ditto.
13736 (define_predicate "const_2_to_3_operand"): Ditto.
13737 (define_predicate "const_4_to_7_operand"): Ditto.
13738
13739 2007-03-25 David Edelsohn <edelsohn@gnu.org>
13740
13741 * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
13742 in SImode for save_world.
13743 * config/rs6000/altivec.md (save_world, restore_world): Convert to
13744 LR hard reg.
13745
13746 2007-03-25 Dorit Nuzman <dorit@il.ibm.com>
13747
13748 PR tree-optimization/30784
13749 * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
13750 BIT_FIELD_REF.
13751
13752 2007-03-25 Revital Eres <eres@il.ibm.com>
13753
13754 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
13755 Fold movement_possibility function into it.
13756
13757 2007-03-25 David Edelsohn <edelsohn@gnu.org>
13758
13759 * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
13760 (load_macho_picbase_{si,di}): Convert to LR hard reg.
13761 (call_indirect_nonlocal_darwin64): Same.
13762 (call_nonlocal_darwin64): Same.
13763 (call_value_indirect_nonlocal_darwin64): Same.
13764 (call_value_nonlocal_darwin64): Same.
13765 (sibcall_nonlocal_darwin64): Same.
13766 (sibcall_value_nonlocal_darwin64): Same.
13767 (sibcall_symbolic_64): Same.
13768 (sibcall_value_symbolic_64): Same.
13769 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
13770 LR pseudo.
13771 (rs6000_emit_load_toc_table): Same.
13772 * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
13773 * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
13774 (mull_call): Same.
13775 (divss_call): Same.
13776 (divus_call): Same.
13777 (quoss_call): Same.
13778 (quous_call): Same.
13779 (load_toc_v4_pic_si): Same
13780 (load_toc_v4_PIC_1): Same.
13781 (load_toc_v4_PIC_1b): Same.
13782 (call_indirect_aix{32,64}): Same.
13783 (call_value_indirect_aix{32,64}): Same.
13784 (call): Same.
13785 (call_value): Same.
13786 (call_local{32,64}): Same.
13787 (call_value_local{32,64}): Same.
13788 (call_indirect_nonlocal_aix{32,64}): Same.
13789 (call_nonlocal_aix{32,64}): Same.
13790 (call_value_indirect_nonlocal_aix{32,64}): Same.
13791 (call_value_nonlocal_aix{32,64}): Same.
13792 (call_indirect_nonlocal_sysv<mode>): Same.
13793 (call_nonlocal_sysv<mode>): Same.
13794 (call_value_indirect_nonlocal_sysv<mode>): Same.
13795 (call_value_nonlocal_sysv<mode>): Same.
13796 (sibcall): Same.
13797 (sibcall_local{32,64}): Same.
13798 (sibcall_value_local{32,64}): Same.
13799 (sibcall_nonlocal_aix{32,64}): Same.
13800 (sibcall_value_nonlocal_aix{32,64}): Same.
13801 (sibcall_nonlocal_sysv<mode>): Same.
13802 (sibcall_value): Same.
13803 (sibcall_value_nonlocal_sysv<mode>): Same.
13804
13805 2007-03-24 Paul Brook <paul@codesourcery.com>
13806
13807 * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
13808 * config/arm/linux-eabi.h: Remove legacy syscall hack.
13809
13810 2007-03-24 Richard Henderson <rth@redhat.com>
13811
13812 * config/ia64/constraints.md: New file.
13813 * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
13814 satisfies_constraint_?.
13815 * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
13816 ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
13817 ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
13818 ia64_output_mi_thunk): Likewise.
13819 (ia64_const_ok_for_letter_p): Remove.
13820 (ia64_const_double_ok_for_letter_p): Remove.
13821 (ia64_extra_constraint): Remove.
13822 * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
13823 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
13824 CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
13825 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
13826 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
13827 EXTRA_MEMORY_CONSTRAINT): Remove.
13828 * config/ia64/ia64.md: Include constriants.md. Replace
13829 CONST_OK_FOR_? with satisfies_constraint_?.
13830
13831 2007-03-23 Michael Meissner <michael.meissner@amd.com>
13832 H.J. Lu <hongjiu.lu@intel.com>
13833
13834 * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
13835 DPD or BID name.
13836 (name macros): Use DPD_BID_NAME to convert names properly.
13837
13838 * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
13839 decimal floating point format.
13840 (init_floating_libfuncs): Change decimal functions so that they
13841 have a "bid_" prefix if the decimal system uses the BID format,
13842 and "dpd_" prefix if the decimal system uses the DPD format.
13843 (init_interclass_conv_libfuncs): Ditto.
13844 (init_intraclass_conv_libfuncs): Ditto.
13845
13846 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
13847 using the BID format.
13848
13849 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
13850 whether we are using the BID decimal format.
13851 * configure: Regenerate.
13852
13853 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
13854 the compiler has decimal floating point enabled. Define
13855 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
13856 instead of DPD.
13857
13858 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
13859 using the BID format.
13860
13861 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
13862 whether we are using the BID decimal format.
13863 * configure: Regenerate.
13864
13865 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
13866 the compiler has decimal floating point enabled. Define
13867 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
13868 instead of DPD.
13869
13870 * doc/install.texi (--enable-decimal-float): Document BID and DPD
13871 options, and that it is enabled for i386/x86_64 systems.
13872
13873 * Makefile.in (enable_decimal_float): New.
13874 (DECNUMFMT): New.
13875 (DECNUMINC): Add -I$(DECNUMFMT).
13876 (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
13877 to $(DECNUMFMT) from $(DECNUM).
13878
13879 * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
13880 Substitute enable_decimal_float.
13881 * configure: Regenerated.
13882
13883 PR other/30529
13884 * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
13885 unsigned long.
13886
13887 * configure.ac: Enable decimal float for x86_64-*-linux*.
13888 * configure: Regenerated.
13889
13890 PR other/30530
13891 * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
13892 decimal128ClearSign to flip and clear the sign bit in decimal128.
13893 (decimal_real_maxval): Set decimal128SetSign to set the sign
13894 bit in decimal128.
13895
13896 2007-03-23 Ian Lance Taylor <iant@google.com>
13897
13898 * fold-const.c (fold_binary): Correct warning for X - c >= X.
13899
13900 2007-03-23 Ian Lance Taylor <iant@google.com>
13901
13902 * tree-dump.c (dump_files): Correct comment.
13903
13904 2007-03-23 Ian Lance Taylor <iant@google.com>
13905
13906 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
13907
13908 2007-03-23 Steven Bosscher <steven@gcc.gnu.org>
13909
13910 * tracer.c (tracer): Don't take FLAGS argument. Assert we are
13911 in cfglayout mode. Don't go into and out of cfglayout mode.
13912 Link the blocks in the order of the constructed traces.
13913 (rest_of_handle_tracer): Adjust call to tracer.
13914 * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
13915 Don't go into cfglayout mode.
13916 (rtl_loop_done): Don't go out of cfglayout mode.
13917 * cfglayout.c (relink_block_chain): New function, split out from...
13918 (fixup_reorder_chain): ...here. Remove redundant checking.
13919 (cfg_layout_finalize): Don't clear the header, footer, and aux
13920 fields here, move the code to do so to relink_block_chain. Likewise
13921 for free_original_copy_tables.
13922 * rtl.h (tracer): Update prototype.
13923 * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
13924 Assert we are in cfglayout mode. Don't go into and out of cfglayout
13925 mode. Use relink_block_chain to serialize the CFG according to the
13926 new basic block order. Move targetm.cannot_modify_jumps_p check from
13927 here...
13928 (gate_handle_reorder_blocks): ...to here.
13929 (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
13930 from here...
13931 (gate_duplicate_computed_gotos): ...to here.
13932 (rest_of_handle_reorder_blocks): Don't see if anything has changed,
13933 something always changes when going into and out of cfglayout mode.
13934 Perform an expensive cfg cleanup while going into cfglayout mode.
13935 Always update liveness information on HAVE_conditional_execution
13936 targets. Reserialize the basic blocks and go out of cfglayout mode.
13937 * reg-stack.c: Include cfglayout.h.
13938 (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
13939 the call to reorder_basic_blocks.
13940 * basic-block.h (reorder_basic_blocks): Update prototype.
13941 (relink_block_chain): New prototype.
13942 * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
13943
13944 2007-03-23 Joseph Myers <joseph@codesourcery.com>
13945
13946 * config/mips/mips.md (type, hazard, *movdi_32bit,
13947 *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
13948 *movhi_internal, *movqi_internal, *movsf_hardfloat,
13949 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
13950 movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
13951 mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
13952 applicable.
13953 (movcc): Change first xfer to multi.
13954 * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
13955 config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
13956 config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
13957 config/mips/generic.md: Change reservations using "xfer" to use
13958 "mfc,mtc".
13959 * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
13960 using match_operand.
13961 (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
13962 * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
13963 examining mode.
13964 (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
13965
13966 2007-03-22 Richard Henderson <rth@redhat.com>
13967
13968 * config/i386/i386.c: Remove unnecessary function declarations.
13969 Move targetm definition, and all related macros, to the end of
13970 the file. Resort some functions to put definitions before uses.
13971 (ix86_attribute_table): Make static. Move to end of file.
13972 (ix86_gimplify_va_arg): Make static.
13973
13974 2007-03-22 Richard Henderson <rth@redhat.com>
13975
13976 * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
13977 don't increase local_regparm with force_align_arg_pointer check.
13978 (ix86_function_sseregparm): Assert 32-bit.
13979 (type_has_variadic_args_p): New.
13980 (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
13981 type_has_variadic_args_p.
13982 (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
13983 (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
13984 use memset instead. Do maybe_vaarg check first; skip attribute
13985 tests if true; skip attribute tests for 64-bit.
13986 (construct_container): Remove TARGET_DEBUG_ARG.
13987 (function_arg_advance_32, function_arg_advance_64): Split out ...
13988 (function_arg_advance): ... from here.
13989 (function_arg_32, function_arg_64): Split out ...
13990 (function_arg): ... from here.
13991 (ix86_pass_by_reference): Tidy.
13992 (ix86_function_value_regno_p): Rearrange w/ switch on regno.
13993 (function_value_32): New, from parts of ix86_function_value
13994 and ix86_value_regno.
13995 (function_value_64): New, from parts of ix86_function_value
13996 and ix86_libcall_value.
13997 (ix86_function_value_1): New.
13998 (ix86_function_value, ix86_libcall_value): Use it.
13999 (return_in_memory_32, return_in_memory_64): Split out ...
14000 (ix86_return_in_memory): ... from here.
14001 (ix86_struct_value_rtx): Skip for 64-bit.
14002 (ix86_libcall_value, ix86_value_regno): Remove.
14003 (setup_incoming_varargs_64): Split out ...
14004 (ix86_setup_incoming_varargs): ... from here.
14005 (ix86_va_start): Remove TARGET_DEBUG_ARG.
14006 (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
14007 * config/i386/i386-protos.h (ix86_function_value): Remove.
14008 * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
14009
14010 2007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14011
14012 PR other/23572
14013 * c-lex.c (interpret_float): On overflow, emit pedantic warning if
14014 infinities not supported, otherwise emit warning if -Woverflow. On
14015 underflow, emit warning if -Woverflow.
14016 * real.c (real_from_string): Return -1 if underflow, +1 if overflow
14017 and 0 otherwise.
14018 * real.h (real_from_string): Update declaration
14019
14020 2007-03-22 Kai Tietz <kai.tietz@onevision.com>
14021 Richard Henderson <rth@redhat.com>
14022
14023 * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
14024 * calls.c (compute_argument_block_size, expand_call,
14025 emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
14026 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
14027 * function.c (STACK_DYNAMIC_OFFSET): Likewise.
14028 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
14029 * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
14030 config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
14031 config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
14032 config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
14033 Set to 1.
14034
14035 2007-03-22 Joseph Myers <joseph@codesourcery.com>
14036
14037 * c-incpath.c (add_sysroot_to_chain): New.
14038 (merge_include_chains): Add sysroot argument. Call
14039 add_sysroot_to_chain if sysrooted.
14040 (register_include_chains): Update call to merge_include_chains.
14041 * doc/cppopts.texi: Document use of '=' in include directory
14042 arguments.
14043
14044 2007-03-22 Uros Bizjak <ubizjak@gmail.com>
14045
14046 * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
14047 Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
14048 (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
14049 insn pattern using X87MODEF12 mode macro.
14050
14051 2007-03-21 Seongbae Park <seongbae.park@gmail.com>
14052
14053 * regmove.c (regmove_optimize): Use reg_mentioned_p
14054 instead of reg_overlap_mentioned_p for DST.
14055
14056 2007-03-21 Mike Stump <mrs@apple.com>
14057
14058 * c.opt: Fixup for Objective-C/C++.
14059
14060 2007-03-21 Steve Ellcey <sje@cup.hp.com>
14061
14062 * explow.c (convert_memory_address): Fold memory reference when
14063 POINTERS_EXTEND_UNSIGNED < 0
14064
14065 2007-03-21 Richard Henderson <rth@redhat.com>
14066
14067 PR target/31245
14068 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
14069 * config/i386/mmintrin.h (__m64): Likewise.
14070 * config/i386/xmmintrin.h (__m128): Likewise.
14071
14072 2007-03-21 Richard Sandiford <richard@codesourcery.com>
14073
14074 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
14075 (VXWORKS_OS_CPP_BUILTINS): Define.
14076 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
14077 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
14078
14079 2007-03-21 Richard Sandiford <richard@codesourcery.com>
14080
14081 * rtl.h (constant_pool_reference_p): Delete.
14082 (find_constant_src): Declare.
14083 * rtlanal.c (find_constant_src): New function.
14084 * simplify-rtx.c (constant_pool_reference_p): Delete.
14085 * config/i386/i386.md: Use find_constant_src instead of
14086 constant_pool_reference_p/avoid_constant_pool_reference pairs.
14087
14088 2007-03-21 Richard Sandiford <richard@codesourcery.com>
14089
14090 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
14091 * c-cppbuiltin.c (c_cpp_builtins): Define them.
14092
14093 2007-03-20 Mark Mitchell <mark@codesourcery.com>
14094
14095 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
14096 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
14097 (arm_elf_asm_constructor): Use it.
14098 (arm_elf_asm_destructor): New function.
14099
14100 2007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
14101
14102 * jump.c (mark_jump_label): Treat SEQUENCE specially.
14103
14104 2007-03-20 Nathan Sidwell <nathan@codesourcery.com>
14105
14106 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
14107
14108 2007-03-19 Andrew Haley <aph@redhat.com>
14109
14110 PR tree-optimization/31264
14111 * tree-vrp.c (register_edge_assert_for_1): Don't look though
14112 VIEW_CONVERT_EXPRs.
14113
14114 2007-03-19 Paolo Bonzini <bonzini@gnu.org>
14115
14116 PR rtl-optimization/30907
14117 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
14118 (fwprop_init): Always call loop_optimizer_initialize.
14119 (fwprop_done): Always call loop_optimizer_finalize.
14120 (fwprop): We always have loop info now.
14121 (gate_fwprop_addr): Remove.
14122 (pass_fwprop_addr): Use gate_fwprop as gate.
14123
14124 PR rtl-optimization/30841
14125 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
14126 df_chain_alloc): Call df_reorganize_refs unconditionally.
14127 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
14128 refs_organized to refs_organized_size.
14129 (df_ref_create_structure): Use refs_organized_size instead of
14130 bitmap_size if refs had been organized, and keep refs_organized_size
14131 up-to-date.
14132 * df.h (struct df_ref_info): Change refs_organized to
14133 refs_organized_size.
14134 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
14135 bitmap_size.
14136
14137 2007-03-19 Mark Mitchell <mark@codesourcery.com>
14138
14139 * except.c (output_function_exception_table): Do not reference the
14140 EH personality routine for functions that do not require an
14141 exception table.
14142
14143 2007-03-20 Jakub Jelinek <jakub@redhat.com>
14144
14145 PR c/30762
14146 * c-typeck.c (convert_for_assignment): Call comptypes for
14147 RECORD_TYPE or UNION_TYPE.
14148
14149 PR inline-asm/30505
14150 * reload1.c (reload): Do invalid ASM checking after
14151 cleanup_subreg_operands.
14152
14153 2007-03-19 Jeff Law <law@redhat.com>
14154
14155 * tree-cfg.c (find_taken_edge): Tighten conditions for
14156 optimizing computed gotos.
14157
14158 2007-03-19 Michael Matz <matz@suse.de>
14159
14160 * builtins.c (expand_builtin_sync_operation,
14161 expand_builtin_compare_and_swap,
14162 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
14163 correctly.
14164
14165 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
14166 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
14167 for operand 3.
14168
14169 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14170
14171 * doc/tm.texi: Add brackets around the return type of
14172 TARGET_SECONDARY_RELOAD.
14173
14174 2007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
14175 Richard Guenther <rguenther@suse.de>
14176
14177 PR tree-optimization/31254
14178 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14179 Use handled_component_p () where appropriate. Continue
14180 propagating into the rhs if we propagated into an INDIRECT_REF
14181 on the lhs.
14182
14183 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14184
14185 * config/s390/s390.md (op_type attribute): RRR instruction type added.
14186 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
14187 (xde, xdee): Mode attributes adjusted to support DFP modes.
14188 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
14189 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
14190 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
14191 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
14192 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
14193 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
14194 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
14195 numbers.
14196 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
14197 "movsf"): Insn definitions removed.
14198 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
14199 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
14200 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
14201 definitions added.
14202 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
14203 "reload_in<mode>", "reload_out<mode>"): Expander added.
14204 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
14205 Expander removed.
14206
14207 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14208
14209 * config/s390/s390.md: Only non-functional changes. Renamed
14210 FPR mode macro to BFP all over the file.
14211
14212 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14213
14214 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
14215 (op_type attribute): RRF instruction type added.
14216 (fT0): New mode attribute.
14217 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
14218 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
14219 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
14220 instruction no secondary memory is needed when moving DFmode values
14221 between GPRs and FPRs.
14222
14223 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14224
14225 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
14226 inverted and documentation adjusted.
14227 ("mhard-dfp", "msoft-dfp"): New options.
14228 * config/s390/s390.c (s390_handle_arch_option): New architecture
14229 switch: z9-ec.
14230 (override_options): Sanity checks for the new options added.
14231 * config.gcc: New architecture switch: z9-ec.
14232 * config/s390/s390.h (processor_flags): PF_DFP added.
14233 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
14234 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
14235 when the bit is NOT set so remove it from the defaults.
14236
14237 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14238
14239 * genemit.c (main): Print include statement for dfp.h.
14240 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
14241 is not available.
14242
14243 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
14244
14245 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
14246
14247 2007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
14248
14249 PR target/31022
14250 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
14251 instead of PATTERN.
14252
14253 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14254
14255 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
14256 attr_length_call, output_call, output_indirect_call): Cleanup
14257 formatting of targetm calls.
14258
14259 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
14260
14261 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
14262
14263 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14264
14265 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
14266 reservation, bypass and anti-bypass descriptions for these
14267 instructions. Update move patterns.
14268 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
14269 TYPE_FPSTORE.
14270
14271 2007-03-18 Dorit Nuzman <dorit@il.ibm.com>
14272
14273 * tree-vect-transform.c (get_initial_def_for_induction): Replace
14274 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
14275 (get_initial_def_for_reduction): Likewise.
14276
14277 2007-03-16 Daniel Berlin <dberlin@dberlin.org>
14278
14279 Fix PR tree-optimization/29922
14280 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
14281 (get_representative): Removed.
14282 (value_dies_in_block_x): Update for rvuse removal.
14283 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
14284 (compute_antic_aux): Handle when PHI nodes appear in
14285 non-single-successors.
14286 (dump_bitmap_of_names): Removed.
14287 (compute_antic_safe): Renamed and removed rvuse calculation.
14288 Calculate only antic safe.
14289 (insert_into_preds_of_block): Remove assert.
14290 (execute_pre): Update for renamed functions.
14291 (defer_or_phi_translate_block): New function.
14292
14293 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
14294
14295 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
14296 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
14297 typos.
14298 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
14299 Follow spelling conventions.
14300
14301 * tree-data-ref.h: Remove the prototype for analyze_array.
14302
14303 2007-03-17 Dorit Nuzman <dorit@il.ibm.com>
14304
14305 PR tree-optimization/31041
14306 * tree-vect-transform.c (get_initial_def_for_induction): Call
14307 force_gimple_operand.
14308
14309 2007-03-17 Olga Golovanevsky <olga@il.ibm.com>
14310
14311 * ipa-type-escape.c (look_for_casts) : Revert code to use
14312 handled_component_p due to ada test a-numaux.adb.
14313
14314 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
14315
14316 * final.c (final_scan_insn): Alter the condition of a
14317 conditional trap if we have nonstandard CC.
14318
14319 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
14320
14321 * configure.ac: Remove excess quoting from asm line 0 test.
14322 * configure: Rebuilt.
14323
14324 2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14325
14326 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
14327 * c-common.c (convert_and_check): Move warning logic to...
14328 (warnings_for_convert_and_check): ...here. Define.
14329 * c-common.h (warnings_for_convert_and_check): Declare.
14330
14331 2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14332
14333 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
14334 (output_call): Likewise.
14335
14336 2007-03-16 Richard Sandiford <richard@codesourcery.com>
14337
14338 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
14339
14340 2007-03-16 Richard Sandiford <richard@codesourcery.com>
14341
14342 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
14343
14344 2007-03-16 Uros Bizjak <ubizjak@gmail.com>
14345
14346 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
14347 opteron, athlon-64 and athlon-fx processor_alias_table entries.
14348
14349 2007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
14350
14351 PR tree-optimization/31183
14352 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
14353 Use double_int instead of unsigned int for representing access_strides.
14354 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
14355
14356 2007-03-16 Richard Guenther <rguenther@suse.de>
14357
14358 PR tree-optimization/31146
14359 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
14360 to allow recursion of forward_propagate_addr_expr.
14361 (forward_propagate_addr_into_variable_array_index): Likewise.
14362 (forward_propagate_addr_expr): Likewise.
14363 (tree_ssa_forward_propagate_single_use_vars): Likewise.
14364 (forward_propagate_addr_expr_1): Recurse on simple copies
14365 instead of propagating into them. Do so for useless conversions
14366 as well.
14367 (forward_propagate_addr_expr): Clean up unused statements after
14368 recursion.
14369
14370 2007-03-16 Richard Guenther <rguenther@suse.de>
14371
14372 * builtins.c (expand_builtin_cexpi): Use the right argument
14373 for the expansion via cexp.
14374
14375 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
14376
14377 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
14378 * configure: Rebuilt.
14379
14380 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
14381
14382 PR debug/29906
14383 * dwarf2out.c (force_type_die): Adjust comment.
14384 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
14385
14386 2007-03-15 DJ Delorie <dj@redhat.com>
14387
14388 * config/frv/predicates.md (minmax_operator): Don't check operands
14389 here.
14390
14391 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
14392
14393 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
14394 Update constant estimates of number of iterations.
14395 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
14396 argument renamed to "realistic".
14397 (compute_estimated_nb_iterations): Removed.
14398 (record_niter_bound): New function.
14399 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
14400 call record_nonwrapping_iv with upper = false.
14401 (infer_loop_bounds_from_signedness): Pass upper argument to
14402 record_nonwrapping_iv.
14403 (estimate_numbers_of_iterations_loop): Do not call
14404 compute_estimated_nb_iterations. Record estimate based on profile
14405 information. Initialize the constant estimates of number of
14406 iterations.
14407 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
14408 estimates.
14409 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
14410 number of iterations is too small.
14411 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
14412 (EST_NOT_AVAILABLE): Removed.
14413 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
14414 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
14415 fields.
14416
14417 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
14418
14419 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
14420 Handle NE_EXPR guards.
14421
14422 2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14423
14424 PR c++/24924
14425 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
14426 Set also -pedantic-errors by default for the preprocessor unless
14427 -fpermissive is given.
14428
14429 2007-03-15 Richard Guenther <rguenther@suse.de>
14430
14431 PR middle-end/29719
14432 PR middle-end/31161
14433 * builtins.c (expand_builtin_cexpi): As a fallback if we
14434 don't have builtins for sincos or cexp create a function
14435 declaration for cexp and expand to a call to that.
14436 (expand_builtin_int_roundingfn): Always fall
14437 back to floor/ceil and its variants even if they may be
14438 not available.
14439
14440 2007-03-15 Steven Bosscher <steven@gcc.gnu.org>
14441
14442 PR middle-end/31159
14443 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
14444 jump tables, move the call to delete_dead_jumptables from here...
14445 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
14446 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
14447 don't allow merging of blocks that try_redirect_by_replacing_jump
14448 also does not handle when not optimizing.
14449
14450 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
14451 Francois-Xavier Coudert <coudert@clipper.ens.fr>
14452
14453 * config/i386/i386.md (x86_sahf_1): Correctly handle
14454 HAVE_AS_IX86_SAHF.
14455
14456 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
14457
14458 PR target/31167
14459 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
14460 x86_64_general_operand as operand[2] predicate. Remove "iF"
14461 from operand constraints and use "e" constraint instead.
14462 (*subti3_1, *subti3_1 splitter): Ditto.
14463 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
14464 operand[1] predicate.
14465
14466 2007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
14467
14468 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
14469 arrays, multiply the access strides by the size of the sub-array.
14470 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
14471
14472 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
14473
14474 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
14475 the configured assembler supports the sahf mnemonic.
14476 * configure: Regenerate.
14477 * config.in: Regenerate.
14478
14479 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
14480 emit "sahf" or ".byte\t0x9e" as asm template.
14481
14482 2007-03-14 Michael Meissner <michael.meissner@amd.com>
14483
14484 PR 31018
14485 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
14486 option to replace hard coded TARGET_xxx in md file.
14487 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
14488 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
14489 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
14490 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
14491 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
14492 (X86_TUNE_NOT_VECTORMODE): Ditto.
14493 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
14494 (TUNE_AVOID_VECTOR_DECODE): Ditto.
14495 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
14496 (TUNE_SLOW_IMUL_IMM8): Ditto.
14497 (TUNE_MOVE_M1_VIA_OR): Ditto.
14498 (TUNE_NOT_UNPAIRABLE): Ditto.
14499 (TUNE_NOT_VECTORMODE): Ditto.
14500
14501 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
14502 options.
14503
14504 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
14505 tuning options instead of hard coded TARGET_xxx.
14506 (fix ssemode peephole2's): Ditto.
14507 (imul peephole2's): Ditto.
14508 (movsi_or): Ditto.
14509 (movdi_or_rex64): Ditto.
14510 (move peephole2): Ditto.
14511 (not peephole2's): Ditto.
14512
14513 2007-03-14 Dirk Mueller <dmueller@suse.de>
14514
14515 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
14516 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
14517 * c-parser.c (c_parser_if_body): Always add an empty statement in case
14518 of empty body.
14519 * c-parser.c (c_parser_do_statement): Warn about empty body in
14520 do/while statement.
14521 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
14522 * doc/invoke.texi (-Wempty-body): Update documentation.
14523
14524 2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14525
14526 PR c/21438
14527 * c-common.h (warn_for_div_by_zero): Declare.
14528 * c-common.c (warn_for_div_by_zero): Define.
14529 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
14530 warning.
14531
14532 2007-03-14 Richard Sandiford <richard@codesourcery.com>
14533
14534 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
14535 to PREFIX and STANDARD_PREFIX.
14536
14537 2007-03-14 Richard Sandiford <richard@codesourcery.com>
14538 Phil Edwards <phil@codesourcery.com>
14539
14540 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
14541 (__gthread_once_t): Remove busy field for RTPs.
14542 (__GTHREAD_ONCE_INIT): Update accordingly.
14543
14544 2007-03-14 Richard Sandiford <richard@codesourcery.com>
14545
14546 * doc/invoke.texi: Document VxWorks options.
14547
14548 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
14549
14550 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
14551
14552 2007-03-13 Seongbae Park <seongbae.park@gmail.com>
14553
14554 PR tree-optimization/30590
14555 * tree-nrv.c (tree_nrv): Check for the partial update of the
14556 return value.
14557
14558 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
14559
14560 * flags.h (flag_random_seed): Remove declaration, in favor of...
14561 * toplev.h (get_random_seed, set_random_seed): ... these.
14562 * tree.c (get_file_function_name): Use the former.
14563 * opts.c (common_handle_option): Use the latter.
14564 * toplev.c
14565
14566 2007-03-13 Steven Bosscher <steven@gcc.gnu.org>
14567
14568 PR middle-end/31127
14569 * cse.c (cse_find_path): Do not bail out if a basic block that
14570 we already visited now becomes part of a path that starts at a
14571 different basic block. Just disallow this, to make sure we
14572 visit each basic block at most once.
14573
14574 2007-03-13 Jan Hubicka <jh@suse.cz>
14575
14576 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
14577 attributes, when profile esitmate is present, calls with very low
14578 frequency are cold.
14579
14580 2007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
14581
14582 PR tree-optimization/30730
14583 PR tree-optimization/26900
14584 * tree-ssa-loop-niter.c: Include gmp.h.
14585 (bounds): New type.
14586 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
14587 split_to_var_and_offset, determine_value_range,
14588 bound_difference_of_offsetted_base, refine_bounds_using_guard,
14589 bound_difference, bounds_add, bounds_negate,
14590 number_of_iterations_ne_max, dump_affine_iv): New functions.
14591 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
14592 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
14593 difference of initial and final value of control iv to validate
14594 results.
14595 (number_of_iterations_cond): Add loop parameter. Determine bounds
14596 on the difference of the extremes of the control iv. Add dumps.
14597 (expand_simple_operations): Handle phi nodes.
14598 (simplify_using_initial_conditions): Do not record used conditions.
14599 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
14600 Do not set additional_info.
14601 (implies_nonnegative_p, implies_ge_p): Removed.
14602 (derive_constant_upper_bound): Do not use parameter `additional'.
14603 (record_estimate): Parameter `additional' removed. Parameter
14604 `i_bound' added. Do not call derive_constant_upper_bound.
14605 (record_nonwrapping_iv): Use derive_constant_upper_bound to
14606 bound the number of iterations estimate.
14607 (estimate_numbers_of_iterations_loop): Pass the estimate from
14608 the number of iterations analysis to record_estimate.
14609 * tree.h (multiple_of_p): Declare.
14610 * tree-scalar-evolution.c (expression_expensive_p): Removed.
14611 (scev_const_prop): Do not check expression_expensive_p.
14612 * fold-const.c (multiple_of_p): Exported.
14613 * double-int.c (double_int_mask): Exported.
14614 * double-int.h (double_int_mask): Declare.
14615 * tree-flow.h (struct tree_niter_desc): Removed additional_info
14616 field. Added max field.
14617
14618 2007-03-13 David Taylor <taylor@candd.org>
14619
14620 PR driver/12448:
14621 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
14622 default -MQ.
14623
14624 2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14625
14626 PR target/31123
14627 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
14628 two unamed patterns.
14629
14630 2007-03-13 Uros Bizjak <ubizjak@gmail.com>
14631
14632 * config/i386/i386.opt (mcx16, msahf): New options.
14633 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
14634 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
14635
14636 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
14637 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
14638 Output -mcx16 and -msahf options when corresponding bit is set.
14639
14640 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
14641 and -msahf options.
14642
14643 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
14644
14645 * configure.ac: Test for assembler tolerance to # 0 "".
14646 * configure, config.in: Rebuilt.
14647 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
14648
14649 2007-03-13 Geoffrey Keating <geoffk@apple.com>
14650
14651 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
14652
14653 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
14654 (handle_syscall): Handle direct system calls.
14655 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
14656
14657 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
14658
14659 * doc/invoke.texi: Fix cpp.info cross-reference.
14660 * doc/passes.texi: Fix gcc.info cross-reference.
14661
14662 2007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
14663
14664 PR tree-optimization/30835
14665 * lambda-code.c (can_convert_to_perfect_nest): Check whether
14666 bb_for_stmt is not NULL before accessing it.
14667
14668 2007-03-12 Joseph Myers <joseph@codesourcery.com>
14669
14670 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
14671 some multilibs.
14672
14673 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
14674
14675 PR 30635
14676 * doc/install.texi: Document --enable-stage1-languages
14677
14678 2007-03-12 Steven Bosscher <steven@gcc.gnu.org>
14679
14680 * tree-pass.h (pass_into_cfg_layout_mode,
14681 pass_outof_cfg_layout_mode): Declare.
14682 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
14683 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
14684 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
14685 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
14686
14687 2007-03-12 Seongbae Park <seongbae.park@gmail.com>
14688
14689 * c-decl.c (warn_variable_length_array): New function.
14690 Refactored from grokdeclarator to handle warn_vla
14691 and handle unnamed array case.
14692 (grokdeclarator): Refactored VLA warning case.
14693 * c.opt (Wvla): New flag.
14694 * doc/invoke.texi (Wvla): New warning.
14695
14696 2007-03-12 Richard Henderson <rth@redhat.com>
14697
14698 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
14699 (TARGET_SECTION_TYPE_FLAGS): New.
14700
14701 2007-03-12 Richard Henderson <rth@redhat.com>
14702
14703 * config/darwin.c (machopic_reloc_rw_mask): New.
14704 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
14705 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
14706
14707 2007-03-12 Mark Mitchell <mark@codesourcery.com>
14708
14709 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
14710 * cppdefault.h (cpp_PREFIX): Document.
14711 (cpp_PREFIX_len): Likewise.
14712 (cpp_EXEC_PREFIX): New variable.
14713 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
14714 * c-incpath.c (add_standard_paths): Correct logic for relocating
14715 paths within prefix.
14716
14717 2007-03-12 Uros Bizjak <ubizjak@gmail.com>
14718
14719 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
14720 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
14721 mode macro.
14722 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
14723 fix_truncdfdi_sse using SSEMODEF mode macro.
14724 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
14725 fix_truncdfsi_sse using SSEMODEF mode macro.
14726 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
14727 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
14728
14729 2007-03-12 Richard Sandiford <richard@codesourcery.com>
14730
14731 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
14732 elfos.h to tm_file.
14733
14734 2007-03-12 Olga Golovanevsky <olga@il.ibm.com>
14735
14736 * tree.h : Add multiple_of_p declaration.
14737 * fold-const.c (multiple_of_p): Make multiple_of_p public.
14738 * ipa-type-escape.c (results_of_malloc): Redundant.
14739 (visited_stmts): New. Visited stmt for walk_use_def_chains.
14740 (cast_type): Extended with new members.
14741 (check_cast): Returns cast_type.
14742 (cast): New structure for data of walk_use_def_chains.
14743 (is_malloc_result, is_cast_from_non_pointer_1,
14744 is_cast_from_non_pointer,
14745 is_array_access_through_pointer_and_index): New functions.
14746 (look_for_casts): Returns cast types.
14747 (check_call): Returns void.
14748 (okay_pointer_operation): Use support of pointer plus index,
14749 pointer plus constant and allow all multiplications.
14750
14751 2007-03-11 Richard Guenther <rguenther@suse.de>
14752
14753 PR tree-optimization/31115
14754 * tree-vrp.c (extract_range_from_binary_expr): Make sure
14755 the shift count is positive and non-anti-range for RSHIFT_EXPR.
14756 A shift count of zero is not special as with *_DIV_EXPR.
14757 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
14758 direction.
14759
14760 2007-03-11 Ian Lance Taylor <iant@google.com>
14761
14762 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
14763 the *_DIV_EXPR codes correctly with overflow infinities.
14764
14765 2007-03-11 Ira Rosen <irar@il.ibm.com>
14766
14767 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
14768 indicate success/failure of the analysis. Add negation to subtrahend
14769 in case of subtraction. Fail if both operands contain constants.
14770 (create_data_ref): Fail if analyze_offset fails.
14771
14772 2007-03-11 Uros Bizjak <ubizjak@gmail.com>
14773
14774 * config/i386/i386.md (frndintxf2): Rename to ...
14775 (rintxf2): ... this. Remove expander having same name.
14776 (rintsf2, rintdf2): Implement using SSEMODEF macro.
14777 (roundsf2, rounddf2): Ditto.
14778 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
14779 (lround<mode>di2, lround<mode>si2): Ditto.
14780
14781 2007-03-11 Steven Bosscher <steven@gcc.gnu.org>
14782
14783 * lower-subreg.c: Include except.h.
14784 (decompose_multiword_subregs): Verify that the only control flow
14785 insns we can split are loads to multi-words pseudos.
14786 Handle breaking such blocks after splitting, instead of calling
14787 find_many_sub_basic_blocks.
14788
14789 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
14790 on the new basic block. Add a lengthy comment explaining why we
14791 thought this was necessary.
14792 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
14793
14794 2007-03-10 Mark Mitchell <mark@codesourcery.com>
14795
14796 PR c++/30924
14797 * tree.c (walk_type_fields): Recurse into the element type of
14798 ARRAY_TYPEs if there is a pointer set.
14799
14800 2007-03-10 Dirk Mueller <dmueller@suse.de>
14801
14802 * c-common.c (warn_logical_operator): Fix condition.
14803
14804 2007-03-10 Tobias Schl�ter <tobi@gcc.gnu.org>
14805
14806 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
14807 quotation mark.
14808 * config/darwin.c (machopic_select_section): Remove superfluous
14809 argument in call to categorize_decl_for_section. Remove unused
14810 variable shlib.
14811
14812 2007-03-10 Joseph Myers <joseph@codesourcery.com>
14813
14814 * configure.ac (glibc_header_dir): Set using with_build_sysroot if
14815 defined.
14816 * configure: Regenerate.
14817
14818 2007-03-10 Uros Bizjak <ubizjak@gmail.com>
14819
14820 PR target/31101
14821 * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
14822 (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
14823 (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
14824 Add LABEL_NUSES to emitted label.
14825 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
14826 branch probability value to emitted jump insn.
14827 * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
14828 Do not check life information and do not re-arrange input operands
14829 for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
14830
14831 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
14832
14833 * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
14834 the change of decode_asm_operands.
14835
14836 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
14837
14838 * mode-switching.c (create_pre_exit): Skip blockage insn.
14839
14840 2007-03-09 Diego Novillo <dnovillo@redhat.com>
14841
14842 * tree-pass.h (TODO_update_smt_usage): Remove.
14843 Update all users.
14844 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
14845 argument SOME.
14846 Update all users.
14847
14848 2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14849
14850 * pa.c (attr_length_call): Revise condition for long
14851 pc-relative branch.
14852 (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
14853 local calls on the SOM target. Don't use "LONG_PIC_PCREL" call
14854 sequence on SOM target.
14855
14856 2007-03-09 Geoffrey Keating <geoffk@apple.com>
14857
14858 * gcc.c: Document %{, in big comment at top.
14859 (input_suffix_matches): Remove special handling for .s and
14860 .S.
14861 (input_spec_matches): New.
14862 (handle_braces): Handle %{,.
14863 (validate_switches): ',' indicates a value which is not a switch.
14864 * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
14865 to detect assembler input.
14866 * config/i386/sol2.h (CPP_SPEC): Likewise.
14867 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
14868 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14869 * config/rs6000/lynx.h (ASM_SPEC): Likewise.
14870 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
14871 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
14872 -m64 causes deployment target to default to 10.5.
14873 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
14874
14875 2007-03-09 Richard Henderson <rth@redhat.com>
14876
14877 PR target/26090
14878 * target.h (targetm.asm.out.reloc_rw_mask): New.
14879 * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
14880 (TARGET_ASM_OUT): Use it.
14881 * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
14882 * varasm.c (categorize_decl_for_section): Remove shlib argument;
14883 use the new reloc_rw_mask target hook instead.
14884 (default_section_type_flags_1): Merge into...
14885 (default_section_type_flags): ... here.
14886 (decl_readonly_section_1): Merge into...
14887 (decl_readonly_section): ... here.
14888 (default_elf_select_section_1): Merge into...
14889 (default_elf_select_section): ... here.
14890 (default_unique_section_1): Merge into...
14891 (default_unique_section): ... here.
14892 (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
14893 (default_select_rtx_section): Use it.
14894 (default_elf_select_rtx_section): Likewise.
14895 * output.h: Update to match.
14896 * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
14897 * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
14898 (TARGET_ASM_RELOC_RW_MASK): New.
14899 * config/i386/i386.c (x86_64_elf_select_section): Adjust call
14900 to categorize_decl_for_section.
14901 (x86_64_elf_unique_section): Likewise.
14902 * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
14903 TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
14904 (TARGET_ASM_RELOC_RW_MASK): New.
14905 * config/ia64/ia64.c (ia64_rwreloc_select_section,
14906 ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
14907 (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
14908 (TARGET_RWRELOC): Remove.
14909 (ia64_section_type_flags): Adjust call to default_section_type_flags.
14910 * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
14911 * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
14912 (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
14913 (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
14914 (rs6000_xcoff_select_section): Use decl_readonly_section.
14915 (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
14916 * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
14917 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
14918 (TARGET_SECTION_TYPE_FLAGS): Remove.
14919 * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
14920
14921 2007-03-09 Roger Sayle <roger@eyesopen.com>
14922
14923 * fold-const.c (fold_comparison): Remove compile-time evaluation of
14924 complex constant equality/inequality comparisons for here.
14925 (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
14926 known at compile-time or can be simplified to a scalar comparison.
14927 (fold_relational_const): Move compile-time evaluation of complex
14928 constant equality/inequality comparisons to here.
14929
14930 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
14931
14932 PR rtl-optimization/30643
14933 * cse.c (cse_insn): Recompute dest_hash after insert_regs for
14934 dest_addr_elt.
14935 (fold_rtx): Recurse, like before 2006-11-03.
14936
14937 2007-03-09 DJ Delorie <dj@redhat.com>
14938
14939 * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
14940 m32c-pragma.o.
14941
14942 2007-03-09 Aldy Hernandez <aldyh@redhat.com>
14943
14944 PR tree-optimization/30375
14945 * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
14946 LHS of statements is not the same.
14947 * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
14948
14949 2007-03-09 Chao-ying Fu <fu@mips.com>
14950
14951 * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
14952 REV 2.
14953 * doc/invoke.texi (-mdspr2): Document new option.
14954 * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
14955 New unspec for DSP REV 2.
14956 (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
14957 these instructions are extended in DSP REV 2.
14958 (mips-dspr2.md): Include.
14959 * config/mips/mips.opt (mdspr2): New option.
14960 * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
14961 MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
14962 MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
14963 (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
14964 (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
14965 (dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins.
14966 (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
14967 and 2 builtins.
14968 (bdesc_map): Add one field of unsupported_target_flags.
14969 (bdesc_arrays): Update entries to have extra fields. Add
14970 dsp_32only_bdesc.
14971 (mips_init_builtins): Initialize new function types.
14972 Check unsupported_target_fileds to filter out builtins.
14973 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
14974 TARGET_DSPR2.
14975 (ASM_SPEC): Pass mdspr2 to the assembler.
14976 * config/mips/mips-dspr2.md: New file.
14977
14978 2007-03-09 Sa Liu <saliu@de.ibm.com>
14979
14980 * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
14981
14982 2007-03-09 Ian Lance Taylor <iant@google.com>
14983
14984 * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
14985 argument) like -Wstrict-overflow=2.
14986 * doc/invoke.texi (Warning Options): Update documentation.
14987
14988 2007-03-09 Dirk Mueller <dmueller@suse.de>
14989
14990 PR c++/17946
14991 * doc/invoke.texi (-Wlogical-op): Document.
14992 * common.opt (-Wlogical-op): New.
14993 * c-common.h (warn_logical_operator): Declare.
14994 * c-common.c (warn_logical_operator): Define.
14995 * c-typeck.c (parser_build_binary_op): Call
14996 warn_logical_operator.
14997
14998 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
14999
15000 * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
15001 * final.c (final_scan_insn): Test for non-"" file name.
15002
15003 2007-03-09 Sebastian Pop <sebastian.pop@inria.fr>
15004
15005 * doc/loop.texi: Document the Omega linear constraints solver.
15006 * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
15007 omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
15008 omega-hash-table-size, omega-max-keys, and
15009 omega-eliminate-redundant-constraints.
15010 * tree-pass.h (pass_check_data_deps): Declared.
15011 * omega.c: New.
15012 * omega.h: New.
15013 * timevar.def (TV_CHECK_DATA_DEPS): Declared.
15014 * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
15015 pass_check_data_deps): New.
15016 * tree-data-ref.c (init_data_ref): Remove declaration.
15017 (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
15018 (analyze_array): Renamed init_array_ref, move up initializations.
15019 (init_data_ref): Renamed init_pointer_ref. Moved before its call.
15020 Removed arguments that are set to NULL.
15021 (analyze_indirect_ref): Correct indentation, correct call to
15022 init_pointer_ref.
15023 (object_analysis): Call init_array_ref instead of analyze_array.
15024 (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
15025 (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
15026 of DR_ACCESS_FNS_ADDR.
15027 (init_omega_eq_with_af, omega_extract_distance_vectors,
15028 omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
15029 ddr_consistent_p): New.
15030 (compute_affine_dependence): Check consistency of ddrs when
15031 flag_check_data_deps is passed.
15032 (analyze_all_data_dependences): Uncomment.
15033 (tree_check_data_deps): New.
15034 * tree-data-ref.h: Include omega.h.
15035 (DR_ACCESS_FNS_ADDR): Removed.
15036 (data_dependence_relation): Add inner_loop.
15037 (DDR_INNER_LOOP): New.
15038 * common.opt (fcheck-data-deps): New.
15039 * tree-flow.h (tree_check_data_deps): Declare.
15040 * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
15041 (OBJS-common): Depend on omega.o.
15042 (omega.o): Define.
15043 * passes.c (pass_check_data_deps): Scheduled.
15044 * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
15045 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
15046 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
15047 PARAM_VECT_MAX_VERSION_CHECKS,
15048 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
15049
15050 2007-03-09 Richard Guenther <rguenther@suse.de>
15051
15052 PR tree-optimization/30904
15053 PR middle-end/31058
15054 * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
15055 the same way as *_DIV_EXPR.
15056
15057 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
15058
15059 * recog.c (decode_asm_operands): No mixed declarations and code.
15060
15061 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
15062
15063 * rtl.def (ASM_INPUT): Add location.
15064 * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
15065 (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
15066 (decode_asm_operands): Add loc operand.
15067 (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
15068 * stmt.c (expand_asm): Rename to...
15069 (expand_asm_loc): ... this. Add locus argument. Pass it on to
15070 gen_rtx_ASM_INPUT_loc.
15071 (expand_asm_expr): Adjust.
15072 * recog.c (decode_asm_operands): Add loc operand.
15073 (check_asm_operands, extract_insn): Adjust.
15074 * reload1.c (maybe_fix_stack_asms): Likewise.
15075 * final.c (asm_insn_count): Likewise.
15076 (final_scan_insn): Output # line before and after asm.
15077
15078 2007-03-09 Daniel Berlin <dberlin@dberlin.org>
15079
15080 * tree-ssa-structalias.c (variable_info): Remove
15081 finished_solution.
15082 (new_var_info): Ditto.
15083 (shared_bitmap_info_t): New structure.
15084 (shared_bitmap_table): New variable.
15085 (shared_bitmap_hash): New function.
15086 (shared_bitmap_eq): Ditto
15087 (shared_bitmap_lookup): Ditto.
15088 (shared_bitmap_add): Ditto.
15089 (merge_smts_into): Change to take bitmap directly.
15090 (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
15091 (init_alias_vars): Init shared bitmap hashtable.
15092 (delete_points_to_sets): Delete shared bitmap hashtable.
15093 * tree-ssa-operands.c (add_virtual_operand): Partially revert the
15094 is_aliased removal as a change that was still necessary was
15095 deleted.
15096
15097 2007-03-09 Uros Bizjak <ubizjak@gmail.com>
15098
15099 * config/i386/i386.h (override_options): Conditionally disable
15100 x86_sahf for 64bit targets only.
15101
15102 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
15103
15104 PR C/31072
15105 * c-decl.c (merge_decls): Don't call make_var_volatile.
15106 * varasm.c (make_var_volatile): Remove.
15107 * output.h (make_var_volatile): Remove.
15108
15109 2007-03-08 Zdenek Dvorak <dvorakz@suse.cz>
15110
15111 PR tree-optimization/31085
15112 * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
15113
15114 2007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15115
15116 * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
15117 llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
15118 ATTR_CONST_NOTHROW_LIST.
15119
15120 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
15121 FIX_TRUNC_EXPR.
15122
15123 2007-03-08 Diego Novillo <dnovillo@redhat.com>
15124
15125 * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
15126
15127 2007-03-08 Geoffrey Keating <geoffk@apple.com>
15128
15129 PR 31013
15130 * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
15131 is declared.
15132 * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
15133 passed, use shared libgcc.
15134
15135 2007-03-08 Roger Sayle <roger@eyesopen.com>
15136
15137 * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
15138 instead of calling build2 with a GIMPLE_MODIFY_STMT.
15139 (honor_protect_cleanup_actions, lower_try_finally_switch):
15140 Likewise.
15141 * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
15142 ifc_temp_var): Likewise.
15143 * tree-inline.c (setup_one_parameter): Likewise.
15144 * tree-mudflap.c (mf_decl_cache_locals,
15145 mf_build_check_statement_for): Likewise.
15146 * tree-nested.c (init_tmp_var, save_tmp_var,
15147 finalize_nesting_tree_1): Likewise.
15148 * tree-outof-ssa.c (insert_copy_on_edge,
15149 insert_backedge_copies): Likewise.
15150 * tree-profile.c (tree_gen_edge_profiler,
15151 tree_gen_ic_profiler): Likewise.
15152 * tree-scalar-evolution.c (scev_const_prop): Likewise.
15153 * tree-sra.c (sra_build_assignment): Likewise.
15154 * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
15155 * tree-ssa-math-opts.c (insert_reciprocals,
15156 execute_cse_sincos_1): Likewise.
15157 * tree-tailcall.c (adjust_accumulator_values,
15158 adjust_return_value): Likewise.
15159 * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
15160 * tree-vect-transform.c (vect_create_data_ref_ptr,
15161 bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
15162 vect_create_epilog_for_reduction, vectorizable_reduction,
15163 vectorizable_call, vectorizable_conversion,
15164 vectorizable_assignment, vectorizable_operation,
15165 vectorizable_type_demotion, vect_gen_widened_results_half,
15166 vect_permute_store_chain, vectorizable_store,
15167 vect_setup_realignment, vect_permute_load_chain,
15168 vectorizable_load, vectorizable_condition,
15169 vect_create_cond_for_align_checks): Likewise.
15170 * tree-vrp.c (build_assert_expr_for): Likewise.
15171
15172 2007-03-08 Ian Lance Taylor <iant@google.com>
15173
15174 * tree-vrp.c: Include "intl.h".
15175 (usable_range_p): New static function.
15176 (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
15177 overflowed values, juts set *strict_overflow_p.
15178 (compare_values): Only return -2 if one of the operands is not a
15179 constant.
15180 (compare_ranges): Call usable_range_p.
15181 (compare_range_with_value): Likewise.
15182 (vrp_evaluate_conditional_warnv): Rename from
15183 vrp_evaluate_conditional. Make static. Change all callers.
15184 (vrp_evaluate_conditional): New function.
15185 (simplify_div_or_mod_using_ranges): Issue warning about reliance
15186 on signed overflow.
15187 (simplify_abs_using_ranges): Likewise.
15188 (simplify_stmt_for_jump_threading): Add within_stmt parameter.
15189 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
15190 within_stmt parameter.
15191 * tree-ssa-propagate.c (fold_predicate_in): Update call to
15192 vrp_evaluate_conditional.
15193 * tree-ssa-threadedge.c
15194 (record_temporary_equivalences_from_stmts_at_dest): Change
15195 simplify parameter to take a second tree parameter.
15196 (simplify_control_stmt_condition): Likewise.
15197 (thread_across_edge): Likewise.
15198 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
15199 (thread_across_edge): Likewise.
15200 * Makefile.in (tree-vrp.o): Depend upon intl.h.
15201
15202 2007-03-08 Uros Bizjak <ubizjak@gmail.com>
15203
15204 * config/i386/i386.h (TARGET_SAHF): New define.
15205 * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
15206 Also enable for m_K8, m_AMDFAM10 and m_CORE2.
15207 (x86_sahf): New global variable.
15208 (override_options): Add PTA_NO_SAHF to pta_flags enum. Recode
15209 pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and
15210 nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set
15211 in processor flags. Do not unconditionally disable TARGET_USE_SAHF
15212 for 64-bit.
15213 (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
15214 (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
15215 when expanding fcomi/sahf based tests.
15216 (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
15217 expanding sahf based alternative. Emit sahf based sequence when
15218 optimizing for code size.
15219 * config/i386/i386.md (x86_sahf_1): Do not disable for
15220 TARGET_64BIT, enable for TARGET_SAHF.
15221
15222 2007-03-08 Martin Michlmayr <tbm@cyrius.com>
15223
15224 * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
15225 spurious whitespace from error message.
15226
15227 2007-03-08 Volker Reichelt <reichelt@netcologne.de>
15228
15229 PR c++/30852
15230 * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
15231
15232 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
15233
15234 * c-decl.c (grokdeclarator): Disable warnings for anonymous
15235 bitfields.
15236 * tree-sra.c (instantiate_element): Propagate disabled warnings
15237 from the element itself to the created variable.
15238
15239 2007-03-07 Richard Henderson <rth@redhat.com>
15240
15241 PR target/30848
15242 * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
15243 silently fix up the stack in the case of a missing register.
15244
15245 2007-03-07 Paul Brook <paul@codesourcery.com>
15246
15247 * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
15248
15249 2007-03-07 Joseph Myers <joseph@codesourcery.com>
15250
15251 * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
15252 New.
15253 (phase1_vrs): Use them.
15254 (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
15255 (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
15256 __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
15257 (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
15258 __gnu_Unwind_Restore_WMMXC if required.
15259 (_Unwind_VRS_Pop): Implement iWMMXt support.
15260 * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
15261 gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
15262 gnu_Unwind_Save_WMMXC): Define.
15263
15264 2007-03-07 Richard Sandiford <richard@codesourcery.com>
15265
15266 * config/vxworks.h (vxworks_override_options): Declare.
15267 (VXWORKS_OVERRIDE_OPTIONS): Use it.
15268 * config/vxworks.c: Include target.h and toplev.h.
15269 (vxworks_override_options): New function.
15270 * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
15271
15272 2007-03-07 Andreas Krebbel <krebbel1@de.ibm.com>
15273
15274 * config/s390/s390.c (override_options): Don't emit an error when
15275 -mstack-size is used without providing -mstack-guard.
15276 (s390_emit_prologue): Choose stack_guard value automatically if not
15277 provided via command line.
15278 * doc/invoke.texi: Adjust description of -mstack-guard and
15279 -mstack-size.
15280
15281 2007-03-07 Richard Sandiford <richard@codesourcery.com>
15282
15283 * config/i386/i386.c (output_set_got): Add a GOT initialization
15284 sequence for VxWorks PIC.
15285 (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
15286 around labels as well as symbols. Use gotoff_operand instead
15287 of local_symbolic_operand.
15288 (legitimize_pic_address): Use gotoff_operand instead of
15289 local_symbolic_operand. Use @GOT accesses for labels as
15290 well as symbols.
15291 (ix86_output_addr_diff_elt): Use PC-relative rather than
15292 GP-relative offsets for VxWorks PIC.
15293 (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
15294 no_new_pseudos. Check whether the returned register is op0.
15295 * config/i386/i386.md (tablejump): Use PC-relative rather than
15296 GP-relative offsets for VxWorks PIC.
15297 * config/i386/predicates.md (gotoff_operand): New predicate.
15298
15299 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15300
15301 * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
15302 before defining.
15303 * config/vxworks-dummy.h: New file.
15304 * config/i386/i386.h: Include it.
15305
15306 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
15307
15308 * dwarf2out.c (is_inlined_entry_point): New
15309 (add_high_low_attributes): Emit DW_AT_entry_pc along with
15310 DW_AT_ranges if the first subblock is the entry point.
15311
15312 2007-03-06 David Daney <ddaney@avtrex.com>
15313
15314 * doc/install.texi (mips-*-*): Change recommended binutils
15315 version.
15316
15317 2007-03-06 Anatoly Sokolov <aesok@post.ru>
15318
15319 * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
15320 ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
15321 devices.
15322 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15323 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15324
15325 2007-03-06 Jan Hubicka <jh@suse.cz>
15326
15327 * errors.h (warning, error, fatal, internal_error): Mark as cold.
15328 * predict.c (maybe_hot_bb): Cold functions are never hot; hot
15329 functions are hot.
15330 (probably_cold_bb_p): Cold functions are cold.
15331 (probably_never_executed_bb_p): Cold functions are cold.
15332 (tree_bb_level_predictions): Predict calls to cold functions as not
15333 taken.
15334 (compute_function_frequency): Check hot/cold attributes.
15335 * function.h (function_frequency): Update comments.
15336 * predict.def (PRED_COLD_FUNCTION): Predict cold function.
15337 * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
15338 (c_common_att): Add cold and hot.
15339
15340 * doc/extend.texi (hot,cold attributes): Document.
15341
15342 2007-03-06 Andrew Haley <aph@redhat.com>
15343
15344 * function.c (expand_function_end): Move blockage to just after we
15345 emit the label for the naked return from the function.
15346
15347 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15348
15349 * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
15350 before redefining.
15351
15352 2007-03-06 Jan Hubicka <jh@suse.cz>
15353
15354 * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
15355 loaded for constant large models. Non-large 64bit PIC can do.
15356 * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
15357 * cmodel.h: Add LARGE PIC.
15358 * i386.md (UNSPEC_PLTOFF): New.
15359 (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
15360 unspecs as needed.
15361 (*call_1_rex64): Disable for large models.
15362 (*call_1_rex64_large): New.
15363 (*call_value_1_rex64): Disable for large models.
15364 (*call_value_1_rex64_large): New.
15365 (set_rip_rex4): New.
15366 (set_got_offset_rex64): New.
15367 * predicates.md (constant_call_address_operand): For large model
15368 constant calls are not possible.
15369 * i386-protos.h (construct_plt_address): Declare.
15370 * i386.c (override_options): Accept large models.
15371 (ix86_expand_prologue): Expand large PIC GOT pointer load.
15372 (legitimate_constant_p): Add new UNSPECs.
15373 (legitimate_pic_operand_p): Likewise.
15374 (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
15375 (legitimize_pic_address): Do easy RIP relative way for TLS only for
15376 non-large model.
15377 (output_pic_addr_const): Add PLTOFF.
15378 (ix86_output_addr_diff_elt): Output 64bit tables when needed.
15379 (ix86_expand_move): Legitimize pic address when in PIC mode.
15380 (construct_plt_address): New function.
15381 (ix86_expand_call): Offload the address to register and use GOT
15382 pointer for large model.
15383 * invoke.texi (mcmodel=large): Update documentation.
15384
15385 2007-03-06 Richard Henderson <rth@redhat.com>
15386
15387 * config/i386/i386.c (x86_use_leave, x86_push_memory,
15388 x86_zero_extend_with_and, x86_movx, x86_double_with_add,
15389 x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
15390 x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
15391 x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
15392 x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
15393 x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
15394 x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
15395 x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
15396 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
15397 x86_partial_reg_dependency, x86_memory_mismatch_stall,
15398 x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
15399 x86_sse_partial_reg_dependency, x86_sse_split_regs,
15400 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
15401 x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
15402 x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
15403 x86_schedule, x86_use_bt, x86_pad_returns,
15404 x86_use_xchgb): Merge into ...
15405 (ix86_tune_features): ... here. New array.
15406 (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
15407 x86_bswap): Merge into ...
15408 (ix86_arch_features): ... here. New array.
15409 (x86_3dnow_a): Remove.
15410 (x86_accumulate_outgoing_args): Make static.
15411 (x86_arch_always_fancy_math_387): Make static.
15412 (ix86_tune_mask, ix86_arch_mask): Move ...
15413 (override_options): ... to local variables here. Apply the
15414 appropriate mask to each element of ix86_arch_features and
15415 ix86_tune_features. Adjust TARGET_CMOVE and TARGET_USE_SAHF
15416 as were done in the old macros.
15417 (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
15418 * config/i386/i386.h (x86_use_leave, x86_push_memory,
15419 x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
15420 x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
15421 x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
15422 x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
15423 x86_read_modify_write, x86_read_modify, x86_split_long_moves,
15424 x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
15425 x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
15426 x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
15427 x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
15428 x86_partial_reg_dependency, x86_memory_mismatch_stall,
15429 x86_accumulate_outgoing_args, x86_prologue_using_move,
15430 x86_epilogue_using_move, x86_decompose_lea,
15431 x86_arch_always_fancy_math_387, x86_shift1,
15432 x86_sse_partial_reg_dependency, x86_sse_split_regs,
15433 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
15434 x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
15435 x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
15436 x86_use_incdec, x86_pad_returns, x86_bswap,
15437 x86_partial_flag_reg_stall): Remove.
15438 (enum ix86_tune_indices): New.
15439 (ix86_tune_features): New.
15440 (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
15441 TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
15442 TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
15443 TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
15444 TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
15445 TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
15446 TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
15447 TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
15448 TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
15449 TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
15450 TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
15451 TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
15452 TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
15453 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
15454 TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
15455 TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
15456 TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
15457 TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
15458 TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
15459 TARGET_EXT_80387_CONSTANTS): Use it.
15460 (enum ix86_arch_indices): New.
15461 (ix86_arch_features): New.
15462 (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
15463 TARGET_BSWAP): Use it.
15464 (ix86_tune_mask, ix86_arch_mask): Remove.
15465
15466 2007-03-06 Joseph Myers <joseph@codesourcery.com>
15467
15468 PR bootstrap/31020
15469 * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
15470 Define using $${sysroot_headers_suffix}.
15471 * configure: Regenerate.
15472 * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
15473 multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
15474 defined.
15475 * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
15476 * gcc.c (print_sysroot_headers_suffix): New.
15477 (option_map): Include --print-sysroot-headers-suffix.
15478 (display_help): Mention -print-sysroot-headers-suffix.
15479 (process_command): Handle -print-sysroot-headers-suffix.
15480 (do_spec_1): Append multilib directory to include-fixed path if
15481 sysroot suffixes in use.
15482 (main): Handle -print-sysroot-headers-suffix.
15483 * Makefile.in (start.encap): Don't depend on xlimits.h
15484 (xlimits.h): Remove.
15485 (stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of
15486 limits.h for each multilib in fixinc_list.
15487 (fixinc_list, s-fixinc_list): New.
15488 (stmp-fixinc): Depend on fixinc_list. If not copying headers,
15489 generate them for each multilib in fixinc_list.
15490 (stmp-fixproto): Use include-fixed. Run fixproto for each
15491 multilib in fixinc_list.
15492 (mostlyclean): Don't remove xlimits.h.
15493 (clean): Remove include-fixed.
15494 (real-install-headers-tar, real-install-headers-cpio,
15495 real-install-headers-cp): Don't copy include, only include-fixed.
15496 (install-mkheaders): Depend on fixinc_list. Don't depend on
15497 xlimits.h. Save limits.h files for each multilib in fixinc_list.
15498 Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in
15499 SYSTEM_HEADER_DIR setting in mkheaders.conf.
15500
15501 2007-03-06 Jan Hubicka <jh@suse.cz>
15502
15503 * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
15504 NANs easilly.
15505
15506 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15507
15508 * configure.ac: Allow tm_file to contain build-directory files.
15509 * configure: Regenerate.
15510 * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
15511 * config/m68k/t-uclinux (sysroot-suffix.h): New target.
15512 * config/m68k/print-sysroot-suffix.sh: New file.
15513
15514 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15515
15516 * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
15517 of pic_offset_table_rtx if reload_completed.
15518 (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
15519 PIC_OFFSET_TABLE_REGNUM.
15520 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
15521 return true.
15522 (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
15523 (m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset.
15524
15525 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15526
15527 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
15528 functions that call eh_return.
15529
15530 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15531
15532 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
15533 functions that need a constant pool.
15534
15535 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15536
15537 PR target/28181
15538 * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
15539 (m68k_preferred_reload_class): Likewise.
15540 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
15541 (SECONDARY_RELOAD_CLASS): Define.
15542 (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
15543 (LIMIT_RELOAD_CLASS): Delete.
15544 * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
15545 registers from storing bytes.
15546 (m68k_secondary_reload_class): New function.
15547 (m68k_preferred_reload_class): Likewise.
15548
15549 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15550
15551 * config/m68k/m68k.c (m68k_save_reg): Remove special case for
15552 leaf functions.
15553 (m68k_expand_prologue): Likewise.
15554
15555 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15556
15557 * config/m68k/m68k-protos.h (output_sibcall): Declare.
15558 (mips_expand_epilogue): Add a bool parameter.
15559 (m68k_legitimize_sibcall_address): Declare.
15560 * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
15561 (m68k_expand_epilogue): Add a parameter to select between sibling
15562 and normal epilogues. Only generate a return for the latter.
15563 (m68k_ok_for_sibcall_p): New function.
15564 (m68k_legitimize_sibcall_address, output_sibcall): New functions.
15565 * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
15566 (sibcall_value, *sibcall_value): Likewise.
15567 (*call, *call_value): Require !SIBLING_CALL_P.
15568 (epilogue): Update call to m68k_expand_epilogue.
15569 (sibcall_epilogue): New pattern.
15570 * config/m68k/predicates.md (const_call_operand): Say that this
15571 predicate applies to sibling calls too.
15572 (sibcall_operand): New predicate.
15573
15574 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15575
15576 * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
15577 alternatives as movsi_cf.
15578 (movsf_cf_hard): Add commentary.
15579
15580 2007-03-06 Kazu Hirata <kazu@codesourcery.com>
15581 Richard Sandiford <richard@codesourcery.com>
15582
15583 * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
15584 (m68k_movem_pattern_p, m68k_output_movem): Likewise.
15585 (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
15586 * config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers
15587 as being live on exit from an interrupt function.
15588 (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
15589 * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
15590 (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
15591 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
15592 (m68k_interrupt_function_p): Globalize.
15593 (m68k_compute_frame_layout): Remove reverse mask code.
15594 (m68k_emit_movem, m68k_set_frame_related): New functions.
15595 (m68k_output_function_prologue): Delete in favor of...
15596 (m68k_expand_prologue): ...this new function.
15597 (m68k_output_function_epilogue): Delete in favor of...
15598 (m68k_expand_epilogue): ...this new function.
15599 (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
15600 functions.
15601 (print_operand): Handle %?.
15602 * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
15603 (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
15604 (prologue, epilogue): New patterns.
15605 (return): Turn into a define_expand.
15606 (*return): New pattern, derived from old "return" pattern. Use rte
15607 rather than rts for interrupt functions. Only use rtd if the pop
15608 count is nonzero.
15609 (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
15610 (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
15611 (link, *link, unlink, *unlink, load_got): Likewise.
15612
15613 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15614
15615 PR target/23482
15616 PR target/17114
15617 * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
15618 (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
15619 (m68k_matches_q_p, m68k_matches_u_p): Likewise.
15620 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
15621 and m68k_matches_u_p.
15622 (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
15623 (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
15624 (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
15625 (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
15626 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
15627 (REG_STRICT_P): New macro.
15628 (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
15629 PCREL_GENERAL_OPERAND_OK.
15630 (REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and
15631 m68k_legitimate_base_reg_p.
15632 (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
15633 (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
15634 (PIC_CASE_VECTOR_ADDRESS): Update comment.
15635 * config/m68k/m68k.c (m68k_address): New structure.
15636 (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
15637 (m68k_decompose_index, m68k_legitimate_constant_address_p)
15638 (m68k_jump_table_ref_p, m68k_decompose_address)
15639 (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
15640 (m68k_matches_u_p): New functions.
15641 (print_operand_address): Rewrite to use m68k_decompose_index.
15642
15643 2007-03-05 David Taylor <dtaylor@emc.com>
15644
15645 * gcc.c: Correct copyright date in --version output.
15646
15647 2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15648
15649 * pa.md: In unamed move patterns, disparge copies between general
15650 and floating point registers using '?' modifier. Don't include 'f'
15651 constraint for register preferences in DImode, SImode, HImode and
15652 QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
15653 Remove constraints for copies between general and floating registers
15654 in soft-float DFmode pattern.
15655 (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
15656 floating register.
15657 (movsf): Likewise.
15658
15659 2007-03-05 Mike Stump <mrs@apple.com>
15660
15661 * c-common.c (targetcm): Add.
15662 * c-opts.c (c_common_handle_option): Handle language specific
15663 target options.
15664 * opts.c (handle_option): Verify language for target options, if
15665 any are given.
15666 * opth-gen.awk: Add CL_LANG_ALL.
15667 * target-def.h (TARGET_HANDLE_C_OPTION): Add.
15668 (TARGETCM_INITIALIZER): Add.
15669 * target.h (struct gcc_targetcm): Add.
15670 (targetcm): Add.
15671 * targhooks.c (default_handle_c_option): Add.
15672 * targhooks.h (default_handle_c_option): Add.
15673 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
15674
15675 * config/darwin.opt (iframework): Add.
15676 * config/darwin.h (TARGET_HAS_TARGETCM): Add.
15677 * config/darwin-c.c (handle_c_option): Add.
15678 (TARGET_HANDLE_C_OPTION): Add.
15679 (targetcm): Add.
15680 * doc/invoke.texi (Darwin Options): Add -iframework.
15681
15682 2007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15683
15684 * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
15685 conversion.
15686
15687 2007-03-05 Ian Lance Taylor <iant@google.com>
15688
15689 * c.opt (fgnu89-inline): New option.
15690 * c-opts.c (c_common_post_options): Set default value for
15691 flag_gnu89_inline.
15692 * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
15693 (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
15694 inline functions.
15695 (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
15696 (grokdeclarator, start_function): Likewise.
15697 * c-cppbuiltin.c (c_cpp_builtins): Define either
15698 __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
15699 * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
15700 (C Dialect Options): Document -fgnu89-inline.
15701 * doc/extend.texi (Function Attributes): Explain what the
15702 gnu_inline attribute does.
15703 * doc/cpp.texi (Common Predefined Macros): Document
15704 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
15705
15706 2007-03-05 Ian Lance Taylor <iant@google.com>
15707
15708 PR tree-optimization/31034
15709 * tree-vrp.c (extract_range_from_assert): Don't try to handle a
15710 half-range if the other side is an overflow infinity.
15711
15712 2007-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
15713
15714 * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
15715 (bfin*-linux-uclibc*): New configuration.
15716 * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
15717 defining.
15718 * config/bfin/linux.h: New file.
15719 * config/bfin/libgcc-bfin.ver: New file.
15720 * config/bfin/t-bfin-uclinux: New file.
15721 * config/bfin/t-bfin-linux: New file.
15722 * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
15723 (TARGET_OS_CPP_BUILTINS): New macro.
15724
15725 2007-03-05 Richard Guenther <rguenther@suse.de>
15726
15727 * fold-const.c (fold_binary): Remove duplicate folding
15728 of comparison of non-null ADDR_EXPR against null.
15729
15730 2007-03-05 Richard Guenther <rguenther@suse.de>
15731 Dorit Nuzman <dorit@il.ibm.com>
15732
15733 PR tree-optimization/26420
15734 * tree-vectorizer.c (vectorize_loops): Bail out early if there
15735 are no loops in the function. Only print the number of
15736 vectorized loops if it is greater than zero or we are supposed
15737 to print information about unvectorized loops.
15738
15739 2007-03-05 Revital Eres <eres@il.ibm.com>
15740
15741 * gcc.dg/var-expand1.c: New test.
15742 * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
15743 when an accumulator is expanded.
15744
15745 2007-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15746
15747 PR other/30465
15748 * c-common.c (convert_and_check): Don't give warnings for
15749 conversion if 'expr' already overflowed.
15750
15751 2007-03-04 Roger Sayle <roger@eyesopen.com>
15752
15753 PR middle-end/30744
15754 * fold-const.c (fold_comparison): Enforce type consistency when
15755 transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
15756
15757 2007-03-04 Zdenek Dvorak <dvorakz@suse.cz>
15758
15759 * tree-ssa-address.c (create_mem_ref): Do not put an expression
15760 containing a cast to the base of TARGET_MEM_REF.
15761
15762 2007-03-04 Martin Michlmayr <tbm@cyrius.com>
15763
15764 * tree.c (tree_contains_struct_check_failed): Remove spurious
15765 whitespace from error message.
15766
15767 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
15768
15769 PR target/30406
15770 * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
15771 instead of precision.
15772
15773 2007-03-04 Roman Zippel <zippel@linux-m68k.org>
15774 Nathan Sidwell <nathan@codesourcery.com>
15775
15776 * emit-rtl.c (find_auto_inc): New.
15777 (try_split): recreate REG_INC notes,
15778 Use regular for loops rather than whiles.
15779
15780 2007-03-03 Andreas Schwab <schwab@suse.de>
15781
15782 * configure.ac (HAVE_AS_REL16): Move test back to correct place.
15783 * configure: Regenerate.
15784
15785 2007-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15786
15787 * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
15788 flag_rounding_math, not flag_unsafe_math_optimizations.
15789
15790 * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
15791 fold_build2.
15792 * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
15793 alpha_fold_vector_minmax): Likewise.
15794 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
15795 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
15796
15797 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
15798
15799 * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
15800 (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
15801 if the lhs has side-effects.
15802 <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
15803
15804 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
15805
15806 * config/i386/i386.h (TUNEMASK): Remove define.
15807 (ARCHMASK): Remove define.
15808 (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
15809 Use ix86_arch_mask variable instead of ARCHMASK.
15810 * config/i386/i386.c (override_options): Ditto.
15811 (standard_80387_constant_p): Ditto.
15812
15813 2007-03-02 Ian Lance Taylor <iant@google.com>
15814
15815 Used signed infinities in VRP.
15816 * tree-vrp.c (uses_overflow_infinity): New static function.
15817 (supports_overflow_infinity): New static function.
15818 (make_overflow_infinity): New static function.
15819 (negative_overflow_infinity): New static function.
15820 (positive_overflow_infinity): New static function.
15821 (is_negative_overflow_infinity): New static function.
15822 (is_positive_overflow_infinity): New static function.
15823 (is_overflow_infinity): New static function.
15824 (overflow_infinity_range_p): New static function.
15825 (compare_values_warnv): New function split out of compare_values.
15826 (compare_value): Call it.
15827 (set_value_range_to_nonnegative): Add overflow_infinity
15828 parameter. Change caller.
15829 (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
15830 Change callers.
15831 (vrp_expr_computes_nonzero): Likewise.
15832 (compare_ranges, compare_range_with_value): Likewise.
15833 (compare_name_with_value, compare_names): Likewise.
15834 (vrp_evaluate_conditional): Likewise.
15835 (set_value_range): Handle infinity
15836 (vrp_operand_equal_p, operand_less_p): Likewise.
15837 (extract_range_from_assert): Likewise.
15838 (vrp_int_const_binop): Likewise.
15839 (extract_range_from_binary_expr): Likewise.
15840 (extract_range_from_unary_expr): Likewise.
15841 (extract_range_from_comparison): Likewise.
15842 (extract_range_from_expr): Likewise.
15843 (dump_value_range): Likewise.
15844 (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
15845 (test_for_singularity): Likewise.
15846 (vrp_int_const_binop): Remove inline qualifier.
15847 (adjust_range_with_scev): Add comment.
15848 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
15849
15850 2007-03-02 Diego Novillo <dnovillo@redhat.com>
15851
15852 * tree-ssa-structalias.c (could_have_pointers): Tidy.
15853 (get_constraint_for): Likewise.
15854 (do_structure_copy): Likewise.
15855 (find_func_aliases): Fix references to MODIFY_EXPR.
15856 (intra_create_variable_infos): Tidy.
15857 * tree-ssa-operands.c (add_virtual_operand): Add argument
15858 IS_CALL_SITE.
15859 When adding members of alias sets, if IS_CALL_SITE is true and
15860 the symbol is not call-clobbered, skip it.
15861 Adjust all callers.
15862
15863 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
15864
15865 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
15866 entry by means of emit_insn_at_entry.
15867
15868 2007-03-02 Richard Henderson <rth@redhat.com>
15869
15870 * expr.h (promoted_input_arg): Remove decl.
15871 * function.c (promoted_input_arg): Merge into ...
15872 * combine.c (setup_incoming_promotions): ... only caller.
15873 Rearrange to avoid double loop.
15874
15875 2007-03-02 Ben Elliston <bje@au.ibm.com>
15876 Peter Bergner <bergner@vnet.ibm.com>
15877 Janis Johnson <janis187@us.ibm.com>
15878
15879 * config/rs6000/dfp.md: New file.
15880 * config/rs6000/rs6000.md: Include dfp.md.
15881 (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
15882 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
15883 and TDmode decimal float modes in FP registers.
15884 (num_insns_constant): Likewise.
15885 (rs6000_legitimate_offset_address_p): Likewise.
15886 (rs6000_legitimize_address): Likewise.
15887 (rs6000_legitimize_reload_address): Likewise.
15888 (rs6000_legitimate_address): Likewise.
15889 (rs6000_emit_move): Likewise.
15890 (function_arg_boundary): Likewise.
15891 (function_arg_advance): Likewise.
15892 (rs6000_darwin64_record_arg_recurse): Likewise.
15893 (function_arg): Likewise.
15894 (rs6000_gimplify_va_arg): Likewise.
15895 (rs6000_split_multireg_move): Likewise.
15896 (rs6000_output_function_epilogue): Likewise.
15897 (rs6000_output_function_epilogue): Likewise.
15898 (rs6000_register_move_cost): Likewise.
15899 (rs6000_function_value): Likewise.
15900 (rs6000_libcall_value): Likewise.
15901
15902 2007-03-02 Richard Sandiford <richard@codesourcery.com>
15903
15904 * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
15905
15906 2007-03-02 Richard Sandiford <richard@codesourcery.com>
15907
15908 * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
15909 Use $MULTIDIR to choose between the kernel and RTP headers,
15910 and use $WIND_BASE and $WIND_USR to locate them.
15911
15912 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
15913
15914 * config/i386/i386.c (override_options): Put initialization of
15915 ix86_tune_mask and ix86_arch_mask to the correct place.
15916
15917 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
15918 Michael Meissner <michael.meissner@amd.com>
15919
15920 PR target/31019
15921 * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
15922 (ARCHMASK): Define.
15923 (TARGET_CMOVE): Use ARCHMASK.
15924 (TARGET_CMPXCHG): Ditto.
15925 (TARGET_CMPXCHG8B): Ditto.
15926 (TARGET_XADD): Ditto.
15927 (TARGET_BSWAP): Ditto.
15928 * config/i386/i386.c (ix86_tune_mask): New global variable.
15929 (ix86_arch_mask): Ditto.
15930 (override_options): Initialize ix86_tune_mask and
15931 ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
15932 target_flags.
15933
15934 2007-03-02 Ben Elliston <bje@au.ibm.com>
15935
15936 PR 30992
15937 * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
15938
15939 2007-03-02 Joseph Myers <joseph@codesourcery.com>
15940
15941 * target.h (init_dwarf_reg_sizes_extra): New target hook.
15942 * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
15943 * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
15944 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
15945 hook.
15946 * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
15947 rs6000_init_dwarf_reg_sizes_extra): New.
15948 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
15949 SPE register high parts.
15950
15951 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
15952
15953 * Makefile.in: Add install-pdf target as
15954 copied from automake v1.10 rules.
15955 * configure.ac: Add install-pdf to target list.
15956 * configure: Regenerate.
15957
15958 2007-03-01 Paul Brook <paul@codesourcery.com>
15959
15960 * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
15961 modes to LDRD for DImode.
15962 (output_move_double): Fixup out of range ldrd/strd.
15963 (vfp_secondary_reload_class): Rename...
15964 (coproc_secondary_reload_class): ... to this. Add wb argument.
15965 * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
15966 coproc_secondary_reload_class for CLASS_IWMMXT.
15967 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
15968 * arm-protos.h (coproc_secondary_reload_class): Update prototype.
15969
15970 2007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
15971
15972 * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
15973 unroll factor by the estimated number of iterations.
15974 (loop_prefetch_arrays): Do not prefetch in loops that iterate less
15975 than prefetch latency.
15976
15977 * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
15978 decode_caches_intel, detect_caches_intel): New functions.
15979 (host_detect_local_cpu): Use detect_caches_amd and
15980 detect_caches_intel.
15981
15982 2007-03-01 Richard Henderson <rth@redhat.com>
15983
15984 * expr.c (emit_move_complex_push): Export.
15985 (emit_move_complex_parts): Split out from ...
15986 (emit_move_complex): ... here.
15987 * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
15988 * config/i386/i386.md (movcdi): New.
15989
15990 2007-03-01 Uros Bizjak <ubizjak@gmail.com>
15991
15992 * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
15993 size of mode1 to check for tieable modes in MMX case.
15994
15995 2007-03-01 Richard Sandiford <richard@codesourcery.com>
15996
15997 * Makefile.in (rtlanal.o): Depend on tree.h.
15998 * rtl.h (offset_within_section_p, split_const): Declare.
15999 * rtlanal.c: Include tree.h.
16000 (offset_within_block_p): New function, taken from
16001 mips_offset_within_object_p.
16002 (split_const): New function, taken from mips_split_const.
16003 * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
16004 Declare.
16005 * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
16006 (CONSTANT_ADDRESS_P): Only accept legitimate constants.
16007 (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
16008 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
16009 (m68k_illegitimate_symbolic_constant_p): New function.
16010 * config/m68k/m68k.md (movsi): Remove misleading predicates.
16011 If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
16012 symbolic constant that might be outside the symbol's section,
16013 move the symbol first and then add the offset.
16014 * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
16015 Override.
16016 * config/mips/mips.c (mips_split_const): Delete.
16017 (mips_offset_within_object_p): Delete.
16018 (mips_symbolic_constant_p): Use offset_within_section_p and
16019 split_const instead of mips_offset_within_object_p and
16020 mips_split_const.
16021 (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
16022 (mips_legitimize_const_move, print_operand_reloc)
16023 (mips_dangerous_for_la25_p): Use split_const instead of
16024 mips_split_const.
16025
16026 2007-02-28 Eric Christopher <echristo@apple.com>
16027
16028 * Makefile.in (install-include-dir): Don't rm -rf include.
16029
16030 2007-02-28 Richard Guenther <rguenther@suse.de>
16031
16032 PR middle-end/30364
16033 * fold-const.c (fold_binary): Do not associate expressions
16034 with more than one variable for integer types that do not wrap.
16035
16036 2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
16037
16038 * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
16039 Delete, and replace with...
16040 (fold_builtin_call_array): This. Update callers to use it.
16041 * fold-const.c (fold_build_call_list): Delete, and replace with...
16042 (fold_build_call_array): This.
16043 (fold_build_call_list_initializer): Delete, and replace with...
16044 (fold_build_call_array_initializer): This.
16045 * tree.h: Update declarations to reflect above changes.
16046
16047 * c-typeck.c (build_function_call): Store converted arguments
16048 in a stack-allocated array instead of building a list.
16049 (convert_arguments): Store arguments in the array passed in as an
16050 argument, and return the actual number of arguments.
16051 * c-format.c: (check_function_format): Pass arguments in an
16052 array instead of a list.
16053 * c-common.c (check_function_nonnull): Likewise.
16054 (check_function_sentinel): Likewise.
16055 (check_function_arguments): Likewise.
16056 * c-common.h: Update declarations to reflect above changes.
16057
16058 2007-02-28 Jan Hubicka <jh@suse.cz>
16059
16060 * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
16061 PRED_NEGATIVE_RETURN): Update outcomes.
16062
16063 2007-02-28 Bernd Schmidt <bernd.schmidt@analog.com>
16064
16065 * calls.c (emit_library_call_value_1): Handle partial registers
16066 correctly when building up CALL_INSN_FUNCTION_USAGE.
16067
16068 2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16069
16070 * pa/predicates.md (move_src_operand): Allow zero for mode.
16071 * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
16072 move pattern.
16073
16074 2007-02-27 Uros Bizjak <ubizjak@gmail.com>
16075
16076 PR target/30970
16077 * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
16078 *movv2df_internal): Enable pattern only for valid operand
16079 combinations.
16080 * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
16081 tie only 128bit modes. For MMX registers, tie only 64bit modes.
16082
16083 2007-02-27 Mike Stump <mrs@apple.com>
16084
16085 * config/darwin-crt3.c: Avoid compilation when compiling for a
16086 kext multilib.
16087
16088 2007-02-27 Joseph Myers <joseph@codesourcery.com>
16089
16090 * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
16091 FIXED_INCLUDE_DIR.
16092 (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
16093 for fixed headers and limits.h.
16094 (install-include-dir, install-headers-tar, install-headers-cpio,
16095 install-headers-cp, real-install-headers-tar,
16096 real-install-headers-cpio, real-install-headers-cp): Handle
16097 include-fixed as well as include.
16098 (install-mkheaders): Don't install files that go only in include
16099 not include-fixed.
16100 * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
16101 from GCC_INCLUDE_DIR.
16102 * gcc.c (process_command): Remove special -BstageN/ handling.
16103 (do_spec_1): Add include-fixed directories.
16104
16105 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
16106
16107 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
16108 _smulsi3_highpart.
16109 * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
16110 New functions.
16111 * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
16112 patterns.
16113
16114 2007-02-27 Mark Mitchell <mark@codesourcery.com>
16115
16116 * c-common.c (get_priority): Add check for
16117 SUPPORTS_INIT_PRIORITY.
16118
16119 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
16120
16121 * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
16122
16123 * config/bfin/bfin.c: Include "cfglayout.h".
16124 (MAX_LSETUP_DISTANCE): New macro.
16125 (struct loop_info): New members incoming, incoming_src and
16126 incoming_dest. Delete member predecessor.
16127 (length_for_loop): New function.
16128 (bfin_optimize_loop): Handle more different loop structures.
16129 (bfin_discover_loop): Rework detection of predecessor blocks by
16130 examining incoming edges.
16131 (bfin_discover_loops, bfin_free_loops): New functions, broken out of
16132 bfin_reorg_loops.
16133 (bfin_reorder_loops): New function.
16134 (bfin_reorg_loops): Use these three new functions.
16135
16136 * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
16137 REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
16138 (CONSTRAINT_LEN): Add entry for 'q'.
16139 (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
16140 Add 'q' constraints.
16141 (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
16142 (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
16143
16144 * config/bfin/bfin.md (add_with_carry): New pattern.
16145 (s_or_u, su_optab, su_modifier): New code macros/attrs.
16146 (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
16147 <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
16148 support unsigned multiplies too. Removed incorrect commutativity from
16149 operand 1 constraint where appropriate.
16150 (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
16151 patterns.
16152 (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
16153 <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
16154 New patterns.
16155 (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
16156 usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
16157 usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
16158 usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
16159 usmulhisi_hh_huh): New patterns.
16160
16161 * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
16162 lshifthi3): Fix output template to use half reg for operand 2.
16163
16164 * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
16165 instead of R2.
16166
16167 * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
16168
16169 2007-02-27 Andreas Schwab <schwab@suse.de>
16170
16171 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
16172
16173 2007-02-27 Jan Hubicka <jh@suse.cz>
16174
16175 * predict.c (last_basic_block_p): Remove.
16176 (tree_estimate_probability): Update return heuristic for commonized
16177 return blocks.
16178
16179 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
16180
16181 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
16182
16183 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
16184
16185 * doc/include/gcc-common.texi (versionsubtitle): New macro.
16186 * doc/cpp.texi: Standardize title page.
16187 * doc/cppinternals.texi: Likewise.
16188 * doc/gcc.texi: Standardize title page, remove version number
16189 from copyright page.
16190 * doc/gccint.texi: Likewise.
16191 * doc/install.texi: Standardize title page, add table of
16192 contents.
16193
16194 2007-02-26 Jan Hubicka <jh@suse.cz>
16195
16196 * predict.def: Set outcomes according to more recent results.
16197 (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
16198 Remove dead predictors.
16199 * predict.c (return_prediction): Fix pasto.
16200
16201 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
16202
16203 * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
16204 change; avoid a memory leak when returning early.
16205
16206 2007-02-26 Mark Mitchell <mark@codesourcery.com>
16207
16208 * c-decl.c (static_ctors): Move to c-common.c.
16209 (static_dtors): Likewise.
16210 (finish_function): Use c_record_cdtor_fn.
16211 (build_cdtor): Move to c-common.c.
16212 (c_write_global_declarations): Use c_build_cdtor_fns.
16213 * c-common.h (static_ctors): Declare.
16214 (static_dtors): Likewise.
16215 (c_record_cdtor_fn): Likewise.
16216 (c_build_cdtor_fns): Likewise.
16217 * c-common.c (static_ctors): New variable.
16218 (static_dtors): Likewise.
16219 (c_record_cdtor_fn): New function.
16220 (build_cdtor): Move from c-decl.c
16221 (c_build_cdtor_fns): New function.
16222
16223 * output.h (assemble_addr_to_section): Declare.
16224 (get_cdtor_priority_section): Likewise.
16225 * varasm.c (assemble_addr_to_section): New function.
16226 (get_cdtor_priority_section): Likewise.
16227 (default_named_section_asm_out_destructor): Use them.
16228 (destor_dtor_section_asm_out_destructor): Likewise.
16229 (default_named_section_asm_out_constructor): Likewise.
16230 (default_ctor_section_asm_out_constructor): Likewise.
16231 * config.gcc (*-*-vxworks*): Include vxworks.o.
16232 * config/t-vxworks (vxworks.o): New target.
16233 * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
16234 (TARGET_ASM_CONSTRUCTOR): Define.
16235 (TARGET_ASM_DESTRUCTOR): Likewise.
16236 (vxworks_asm_out_constructor): Declare.
16237 (vxworks_asm_out_destructor): Likewise.
16238
16239 * c-common.c (get_priority): Check that we have not just an
16240 INTEGER_CST, but an integer constant with integeral type.
16241
16242 2007-02-25 Uros Bizjak <ubizjak@gmail.com>
16243
16244 PR tree-optimization/30938
16245 * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
16246 use &dt[nargs-1] instead of &dt[nargs] in the call to
16247 vect_is_simple_use().
16248
16249 2007-02-25 Ulrich Weigand <uweigand@de.ibm.com>
16250
16251 * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
16252 from register elimination as PRE_MODIFY / POST_MODIFY increments.
16253 Do not attempt to handle MEM inside auto-inc expressions.
16254 * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
16255 of a register modified by an auto-inc expression. However, do handle
16256 elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
16257 (elimination_effects): Prohibit elimination of a register modified
16258 by an auto-inc expression. Disable register elimination rules whose
16259 target register is modified by an auto-inc expression with variable
16260 increment.
16261
16262 2007-02-25 Zdenek Dvorak <dvorakz@suse.cz>
16263
16264 * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
16265 off-by-one error.
16266 (array_at_struct_end_p): New function.
16267 (idx_infer_loop_bounds): Use it.
16268 (estimate_numbers_of_iterations_loop): Export.
16269 * predict.c (predict_loops): Use estimated_loop_iterations_int.
16270 Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
16271 (tree_estimate_probability): Call record_loop_exits.
16272 * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
16273 (estimated_loop_iterations, estimated_loop_iterations_int,
16274 estimated_loop_iterations_tree): New functions.
16275 (analyze_siv_subscript_cst_affine,
16276 compute_overlap_steps_for_affine_1_2,
16277 analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
16278 (analyze_miv_subscript): Use estimated_loop_iterations_tree.
16279 * predict.def (PRED_LOOP_ITERATIONS): Update comment.
16280 (PRED_LOOP_ITERATIONS_GUESSED): New.
16281 * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
16282 * cfgloop.h (estimate_numbers_of_iterations_loop,
16283 estimated_loop_iterations_int): Declare.
16284
16285 2007-02-25 Mark Mitchell <mark@codesourcery.com>
16286
16287 * doc/extend.texi: Document optional priority argument to
16288 constructors and destructors.
16289 * tree.c (init_priority_for_decl): Adjust GTY markers.
16290 (init_ttree): Use priority-info hash functions for
16291 init_priority_for_decl.
16292 (tree_map_eq): Rename to ...
16293 (tree_map_base_eq): ... this.
16294 (tree_map_marked_p): Rename to ...
16295 (tree_map_base_marked_p): ... this.
16296 (tree_map_base_hash): New function.
16297 (decl_init_priority_lookup): Rework.
16298 (decl_fini_priority_lookup): New function.
16299 (decl_priority_info): New function.
16300 (decl_init_priority_insert): Use it.
16301 (decl_fini_priority_insert): Likewise.
16302 (decl_restrict_base_lookup): Adjust for refactoring of tree_map
16303 hierarchy.
16304 (decl_restrict_base_insert): Likewise.
16305 (decl_debug_expr_insert): Likewise.
16306 (decl_value_expr_lookup): Likewise.
16307 (decl_value_expr_insert): Likewise.
16308 * tree.h (priority_type): New type.
16309 (decl_init_priority_lookup): Use priority_type.
16310 (decl_fini_priority_lookup): New function.
16311 (decl_init_priority_insert): Use priority_type.
16312 (decl_fini_priority_insert): New function.
16313 (DECL_HAS_INIT_PRIORITY): Tweak comments.
16314 (DECL_INIT_PRIORITY): Likewise.
16315 (SET_DECL_INIT_PRIORITY): Add comment.
16316 (DECL_FINI_PRIORITY): New macro.
16317 (SET_DECL_FINI_PRIORITY): Likewise.
16318 (DEFAULT_INIT_PRIORITY): Document.
16319 (MAX_INIT_PRIORITY): Likewise.
16320 (MAX_RESERVED_INIT_PRIORITY): Likewise.
16321 (tree_map_base): New type.
16322 (tree_map_base_eq): New function.
16323 (tree_map_base_hash): Likewise.
16324 (tree_map_base_marked_p): Likewise.
16325 (tree_map): Inherit from tree_map_base.
16326 (tree_map_eq): Make it a macro.
16327 (tree_map_marked_p): Likewise.
16328 (tree_int_map): Inherit from tree_map_base.
16329 (tree_int_map_eq): Make it a macro.
16330 (tree_int_map_hash): Likewise.
16331 (tree_int_map_marked_p): Likewise.
16332 (tree_priority_map): New type.
16333 (tree_priority_map_eq): New macro.
16334 (tree_priority_map_hash): Likewise.
16335 (tree_priority_map_marked_p): Likewise.
16336 * varasm.c (emults_decl): Adjust for refactoring of tree_map
16337 hierarchy.
16338 (emutls_common_1): Likewise.
16339 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
16340 * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
16341 of tree_map hierarchy.
16342 * tree-cfg.c (move_stmt_r): Likewise.
16343 (new_label_mapper): Likewise.
16344 * c-tree.h (c_expand_body): Move to ...
16345 * c-common.h (c_expand_body): ... here.
16346 * c-decl.c (c_expand_body): Move to ...
16347 * c-common.c (c_expand_body): ... here.
16348 (c_common_attribute_table): Allow 1 argument for the constructor
16349 and destructor attributes.
16350 (get_priority): New function.
16351 (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
16352 (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
16353
16354 2007-02-24 Jan Hubicka <jh@suse.cz>
16355
16356 PR middle-end/30509
16357 * tree-inline.c (copy_bb): Produce exact copy of EH info when
16358 copying for inlining.
16359
16360 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
16361 Jan Hubicka <jh@suse.cz>
16362
16363 PR target/30778
16364 * i386.c (counter_mode): New function.
16365 (expand_set_or_movmem_via_loop): Use it.
16366 (expand_movmem_epilogue): Likewise; fix pasto.
16367 (ix86_expand_movmem): Do emit guard even for constant counts.
16368 (ix86_expand_setmem): Likewise.
16369
16370 2007-02-25 Nick Clifton <nickc@redhat.com>
16371
16372 * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
16373 (JUMP_TABLES_IN_TEXT_SECTION): Define.
16374
16375 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
16376
16377 PR target/30770
16378 * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
16379 count argument with 0x10, not with 0x16.
16380 (expand_setmem_epilogue): Ditto.
16381
16382 2007-02-24 Mike Stump <mrs@apple.com>
16383
16384 * config/i386/i386.c (output_pic_addr_const): Stubify optimized
16385 symbols.
16386
16387 2007-02-24 Richard Guenther <rguenther@suse.de>
16388
16389 PR middle-end/30951
16390 * fold-const.c (fold_binary): Fold x +- CST op x for
16391 EQ_EXPR and NE_EXPR.
16392
16393 2007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16394
16395 * pa.md (muldi3): Force subregs to registers in 64-bit expander.
16396
16397 2007-02-24 Jan Hubicka <jh@suse.cz>
16398
16399 * cgraphunit.c (decide_is_function_needed): Honor
16400 -fkeep-inline-functions.
16401
16402 2007-02-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16403
16404 * builtins.c (fold_builtin_modf): New.
16405 (fold_builtin_2): Use it.
16406
16407 2007-02-24 Bernd Schmidt <bernd.schmidt@analog.com>
16408
16409 * loop-iv.c (implies_p): Detect additional cases where A implies B.
16410 (determine_max_iter): Take additional LOOP arg; all callers changed.
16411 Lose broken logic dealing with PLUS. Try to limit the upper bound by
16412 one using simplifications.
16413 (simplify_using_initial_values): Return if the expression becomes
16414 invalid due to altered regs.
16415
16416 2007-02-23 DJ Delorie <dj@redhat.com>
16417
16418 * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
16419
16420 2007-02-23 Mike Stump <mrs@apple.com>
16421
16422 * tlink.c (scan_linker_output): Parse linker messages from
16423 darwin9's linker better.
16424
16425 2007-02-23 Steve Ellcey <sje@cup.hp.com>
16426
16427 PR debug/29614
16428 * varpool.c (varpool_assemble_pending_decls): Set
16429 varpool_last_needed_node to null.
16430
16431 2007-02-23 DJ Delorie <dj@redhat.com>
16432
16433 * config/i386/i386.c (ix86_data_alignment): Don't specify an
16434 alignment bigger than the object file can handle.
16435
16436 2007-02-23 Uros Bizjak <ubizjak@gmail.com>
16437
16438 PR target/30825
16439 * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
16440 zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
16441 (*movsf_1): Penalize MMX moves.
16442
16443 2007-02-23 Bernd Schmidt <bernd.schmidt@analog.com>
16444
16445 * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
16446 2^32-1 or more times unless flag_unsafe_loop_optimizations.
16447
16448 * loop-iv.c (determine_max_iter): Moved in front of its sole user.
16449
16450 2007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16451
16452 * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
16453 (fold_builtin_1): Use them.
16454 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
16455 BUILT_IN_SIGNIFICAND.
16456
16457 2007-02-23 H.J. Lu <hongjiu.lu@intel.com>
16458
16459 * config/i386/i386.c (bdesc_1arg): Initialize
16460 IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
16461 "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
16462 (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
16463 and IX86_BUILTIN_MOVSLDUP.
16464
16465 2007-02-22 Paolo Bonzini <bonzini@gnu.org>
16466
16467 PR rtl-optimization/30841
16468 * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
16469
16470 2007-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16471
16472 * builtins.c (fold_builtin_frexp): New.
16473 (fold_builtin_2): Use it.
16474
16475 2007-02-22 Mark Mitchell <mark@codesourcery.com>
16476
16477 * doc/invoke.texi (Spec Files): Document getenv spec function.
16478
16479 * gcc.c (getenv_spec_function): New function.
16480 (static_spec_functions): Add it.
16481 * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
16482 (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
16483 header files.
16484
16485 2007-02-22 Michael Matz <matz@suse.de
16486
16487 PR c++/29433
16488 * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
16489 (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
16490
16491 2007-02-22 Ian Lance Taylor <iant@google.com>
16492
16493 PR debug/30898
16494 * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
16495 (mem_loc_descriptor): Call it.
16496
16497 2007-02-22 Zdenek Dvorak <dvorakz@suse.cz>
16498 Ira Rosen <irar@il.ibm.com>
16499
16500 * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
16501
16502 2007-02-22 Ira Rosen <irar@il.ibm.com>
16503
16504 PR tree-optimization/30843
16505 * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
16506 stores only after all the group is vectorized.
16507
16508 2007-02-22 Dorit Nuzman <dorit@il.ibm.com>
16509
16510 PR tree-optimization/30858
16511 * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
16512 in the reduction cycle have a single use in the loop.
16513 * tree-vectorizer.h (relevant): Add documentation.
16514
16515 2007-02-20 Mike Stump <mrs@apple.com>
16516
16517 * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
16518 * configure: Regenerate.
16519
16520 2007-02-21 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
16521
16522 Change the defaults of some parameters and options.
16523 * config/spu/spu-protos.h (spu_optimization_options): Declare.
16524 * config/spu/spu.c (spu_optimization_options): Add.
16525 (spu_override_options): Change params in spu_optimization_options.
16526 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
16527
16528 Register 127 is only 16 byte aligned when used as a frame pointer.
16529 * config/spu/spu-protos.h (spu_init_expanders): Declare.
16530 * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
16531 HARD_FRAME_POINTER_REGNUM.
16532 (spu_legitimate_address): Use regno_aligned_for_reload.
16533 (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
16534 aligned when frame_pointer_needed is true.
16535 (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
16536 to 8 bits.
16537 * config/spu/spu.h (INIT_EXPANDERS): Define.
16538
16539 Make sure shift and rotate instructions have valid immediate operands.
16540 * config/spu/predicates.md (spu_shift_operand): Remove.
16541 * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
16542 * config/spu/constraints.md (W, O): Extend range.
16543 * config/spu/spu.md (umask, nmask): Define.
16544 (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
16545 lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
16546 rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
16547 rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
16548 spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
16549 (lshr<mode>3_reg): Fix rtl description.
16550
16551 Make sure mulhisi immediate operands are valid.
16552 * config/spu/predicates.md (imm_K_operand): Add.
16553 * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
16554
16555 Generate constants using fsmbi and andi.
16556 * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
16557 (print_operand, spu_split_immediate, classify_immediate,
16558 fsmbi_const_p): Handle IC_FSMBI2.
16559
16560 Correctly handle a CONST_VECTOR containing symbols.
16561 * config/spu/spu.c (print_operand): Handle HIGH correctly.
16562 (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
16563 (immediate_load_p): Allow symbols that use 2 instructions to create.
16564 (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
16565 with symbols when flag_pic is set.
16566 (const_vector_immediate_p): New.
16567 (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
16568 accept a CONST_VECTOR with symbols.
16569 (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't
16570 accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH
16571 correctly.
16572 * config/spu/spu.md (high, low): Delete.
16573 (low_<mode>): Define.
16574
16575 Remove INTRmode and INTR_REGNUM, which didn't work.
16576 * config/spu/spu.c (spu_conditional_register_usage): Remove reference
16577 of INTR_REGNUM.
16578 * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
16579 set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
16580 peephole2 pattern): Don't use INTR or 131.
16581 (movintrcc): Delete.
16582 * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
16583 CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
16584 * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
16585 (UNSPEC_SET_INTR): Add.
16586 * config/spu/spu-modes.def (INTR): Remove.
16587
16588 More accurate warnings about run-time relocations.
16589 * config/spu/spu.c (reloc_diagnostic): Test in_section.
16590
16591 Correctly warn about immediate arguments to specific intrinsics.
16592 * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
16593 (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
16594 the instruction predicate.
16595
16596 Fix tree check errors with latest update.
16597 * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
16598 CALL_EXPR_ARG.
16599 (spu_expand_builtin): Use CALL_EXPR_FN.
16600
16601 Add missing specific intrinsics.
16602 * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
16603 si_bislede.
16604 * config/spu/spu_internals.h: Ditto.
16605
16606 Fix incorrect operand modifiers.
16607 * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
16608 * config/spu/spu.md (xor<mode>3): Change %S to %J.
16609
16610 Optimize one case of zero_extend of a vec_select.
16611 * config/spu/spu.md (_vec_extractv8hi_ze): Add.
16612
16613 Accept any immediate for hbr.
16614 * config/spu/spu.md (hbr): Change s constraints to i.
16615
16616 2007-02-21 Paul Brook <paul@codesourcery.com>
16617
16618 * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
16619 condexec_count when skipping USE and CLOBBER.
16620
16621 2007-02-21 Nick Clifton <nickc@redhat.com>
16622
16623 * common.opt (Warray-bounds): Add Warning attribute.
16624 (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
16625 Likewise.
16626 (fsized-zeroes): Add Optimization attribute.
16627 (fsplit-wide-types, ftree-scev-cprop): Likewise.
16628 * c.opt (Wc++0x-compat): Add Warning attribute.
16629
16630 2007-02-21 Ulrich Weigand <uweigand@de.ibm.com>
16631
16632 PR middle-end/30761
16633 * reload1.c (eliminate_regs_in_insn): In the single_set special
16634 case, attempt to re-recognize the insn before falling back to
16635 having reload fix it up.
16636
16637 2007-02-20 Eric Christopher <echristo@gmail.com>
16638
16639 * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
16640 Rewrite accordingly.
16641 (frv_read_iacc_argument): Ditto.
16642 (frv_expand_set_builtin): Take a call instead of arglist, update for
16643 above changes.
16644 (frv_expand_unop_builtin): Ditto.
16645 (frv_expand_binop_builtin): Ditto.
16646 (frv_expand_cut_builtin): Ditto.
16647 (frv_expand_binopimm_builtin): Ditto.
16648 (frv_expand_voidbinop_builtin): Ditto.
16649 (frv_expand_int_void2arg): Ditto.
16650 (frv_expand_prefetches): Ditto.
16651 (frv_expand_voidtriop_builtin): Ditto.
16652 (frv_expand_voidaccop_builtin): Ditto.
16653 (frv_expand_load_builtin): Ditto.
16654 (frv_expand_store_builtin): Ditto.
16655 (frv_expand_mdpackh_builtin): Ditto.
16656 (frv_expand_mclracc_builtin): Ditto.
16657 (frv_expand_mrdacc_builtin): Ditto.
16658 (frv_expand_mwtacc_builtin): Ditto.
16659 (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
16660 calls for above.
16661
16662 2007-02-20 Janis Johnson <janis187@us.ibm.com>
16663
16664 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
16665 * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
16666 cmpb instruction.
16667 (HAVE_GAS_DFP): Check for assembler support of decimal floating
16668 point instructions.
16669 * configure: Regenerate.
16670 * config.in: Regenerate.
16671 * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
16672 * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
16673 masks to power6 and power6x and to POWERPC_MASKS.
16674 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
16675 _ARCH_PWR6.
16676 * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
16677 * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
16678 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16679 Access PROTOTYPE as variable, not mask.
16680
16681 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
16682
16683 * rtl.h (remove_reg_equal_equiv_notes): New prototype.
16684 * rtlanal.c (remove_reg_equal_equiv_notes): New function.
16685 * combine.c (adjust_for_new_dest): Use it.
16686 * postreload.c (reload_combine): Likewise.
16687
16688 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
16689
16690 * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
16691 notes on an insn with multiple sets, even if single_set returns
16692 non-NULL for that insn.
16693
16694 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16695
16696 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
16697 scalbn and scalbln.
16698
16699 2007-02-20 Geoffrey Keating <geoffk@apple.com>
16700
16701 * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
16702 if user didn't pass it.
16703 * config/i386/darwin.h (CC1_SPEC): Likewise.
16704 * config/rs6000/darwin.h (CC1_SPEC): Likewise.
16705 (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
16706 -mmacosx-version-min.
16707
16708 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16709 Uros Bizjak <ubizjak@gmail.com>
16710
16711 * optabs.h (enum optab_index): Add new OTI_scalb.
16712 (scalb_optab): Define corresponding macro.
16713 * optabs.c (init_optabs): Initialize scalb_optab.
16714 * genopinit.c (optabs): Implement scalb_optab using scalb?f3
16715 patterns.
16716 * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
16717 BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
16718 (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
16719 and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
16720 flag_unsafe_math_optimizations is set.
16721
16722 * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
16723 to implement scalbf, scalb and scalbl built-ins as inline x87
16724 intrinsics.
16725
16726 2007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16727 DJ Delorie <dj@redhat.com>
16728
16729 PR other/30824
16730 * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
16731 (diagnostic_report_diagnostic): ... here, and turn them into real
16732 errors. If warnings are inhibited, no need to do anything.
16733
16734 2007-02-20 Uros Bizjak <ubizjak@gmail.com>
16735
16736 * config/i386/i386.md (expm1xf2): Reorder insn sequence for
16737 better code generation.
16738
16739 2007-02-20 Ben Elliston <bje@au.ibm.com>
16740
16741 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
16742
16743 2007-02-20 Kazu Hirata <kazu@codesourcery.com>
16744
16745 * config/alpha/alpha.c, config/alpha/alpha.md,
16746 config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
16747 config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
16748 config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
16749 config/arm/lib1funcs.asm: Follow spelling conventions.
16750
16751 * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
16752 config/fr30/fr30.md, config/i386/i386.h,
16753 config/iq2000/iq2000.h, config/iq2000/predicates.md,
16754 config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
16755 config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
16756 config/pdp11/pdp11.c, config/pdp11/pdp11.h,
16757 config/rs6000/altivec.md, config/rs6000/rs6000.c,
16758 config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
16759 config/sparc/sparc.c, config/sparc/sparc.h,
16760 config/sparc/sparc.md, config/spu/constraints.md,
16761 config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
16762 conventions.
16763
16764 2007-02-20 Alan Modra <amodra@bigpond.net.au>
16765
16766 PR target/29943
16767 * varasm.c (use_blocks_for_decl_p): Return false for decls with
16768 alias attribute.
16769
16770 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
16771
16772 * doc/invoke.texi (-ftree-lrs): Remove.
16773
16774 2007-02-19 Diego Novillo <dnovillo@redhat.com>
16775
16776 * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
16777 NULL.
16778
16779 2007-02-19 Lee Millward <lee.millward@codesourcery.com>
16780
16781 * config/ia64/ia64.c (ia64_expand_builtin): Use the
16782 new CALL_EXPR_FN macro for retrieving the function
16783 declaration of the input expression.
16784
16785 2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16786
16787 * c.opt (Waddress): New.
16788 * common.opt (Walways-true): Delete.
16789 (Wstring-literal-comparison): Delete.
16790 * doc/invoke.texi (Warning Options): Delete -Walways-true and
16791 -Wstring-literal-comparison. Add -Waddress.
16792 (Waddress): New.
16793 (Walways-true): Delete.
16794 (Wstring-literal-comparison): Delete.
16795 * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
16796 consistently instead of -Walways-true in example.
16797 * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
16798 * c-typeck.c (parser_build_binary_op): Replace
16799 -Wstring-literal-comparison and -Walways-true with -Waddress.
16800 * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
16801 with -Waddress.
16802
16803 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
16804
16805 * tree-cfg.c (dump_function_to_file): Be prepared for functions
16806 without DECL_STRUCT_FUNCTION initialized.
16807
16808 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
16809
16810 * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
16811 due to calls to functions taking pointers as parameters.
16812
16813 2007-02-19 Richard Henderson <rth@redhat.com>
16814
16815 PR debug/29558
16816 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
16817 in memory.
16818
16819 2007-02-19 Andreas Krebbel <krebbel1@de.ibm.com>
16820
16821 * config/s390/s390.c (s390_call_saved_register_used,
16822 s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
16823 accessed to the new scheme.
16824
16825 2007-02-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16826
16827 * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
16828 (cris_print_index, cris_print_operand, cris_print_operand_address)
16829 (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
16830 (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
16831 (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
16832 GET_CODE () == xxx.
16833 * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
16834 EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
16835 GO_IF_LEGITIMATE_ADDRESS): Ditto.
16836 * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
16837 (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
16838 (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
16839 (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
16840 (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
16841 (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
16842 (uminsi3, call, call_value): Ditto.
16843 (define_split: indir_to_reg_split, unnamed): Ditto.
16844
16845 2007-02-19 Dorit Nuzman <dorit@il.ibm.com>
16846
16847 PR tree-optimization/30975
16848 * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
16849 wrong assert.
16850
16851 2007-02-18 Eric Christopher <echristo@gmail.com>
16852
16853 * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
16854 Remove use of arglist.
16855 (mips_expand_builtin): Remove use of arglist, pass in expr.
16856 (mips_expand_builtin_direct): Rewrite handling for arglist removal.
16857 (mips_expand_builtin_movtf): Ditto.
16858 (mips_expand_builtin_compare): Ditto.
16859
16860 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
16861
16862 * tree-sra.c (sra_build_assignment): Replace assertion
16863 checking with a comment explaining why it can't be done.
16864
16865 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
16866
16867 PR middle-end/30833
16868 * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
16869 during CALL_EXPR representation conversion.
16870 * tree-ssa-propagate.c (set_rhs): Likewise.
16871
16872 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
16873
16874 * tree-sra.c (sra_build_assignment): Disable assertion checking
16875 for now.
16876
16877 2007-02-18 Roger Sayle <roger@eyesopen.com>
16878
16879 * function.c (gimplify_parameters): Call build_gimple_modify_stmt
16880 instead of calling build2 with a GIMPLE_MODIFY_STMT.
16881 * gimple-low.c (lower_function_body, lower_builtin_setjmp):
16882 Likewise.
16883 * gimplify.c (build_stack_save_restore, gimplify_return_expr,
16884 gimplify_decl_expr, gimplify_self_mod_expr, gimplify_cond_expr,
16885 gimplify_init_ctor_eval_range, gimple_push_cleanup,
16886 gimplify_omp_for, gimplify_omp_atomic_pipeline,
16887 gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
16888 force_gimple_operand): Likewise.
16889 * ipa-cp.c (constant_val_insert): Likewise.
16890 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
16891 lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
16892 perfect_nestify): Likewise.
16893 * langhooks.c (lhd_omp_assignment): Likewise.
16894 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
16895 lower_copyprivate_clauses, lower_send_clauses,
16896 lower_send_shared_vars, expand_parallel_call,
16897 expand_omp_for_generic, expand_omp_for_static_nochunk,
16898 expand_omp_for_static_chunk, expand_omp_sections,
16899 lower_omp_single_copy, lower_omp_for_lastprivate,
16900 lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
16901 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
16902 tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
16903 Likewise.
16904
16905 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
16906
16907 * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
16908 config/sh/sh.md: Follow spelling conventions.
16909
16910 * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
16911 config/frv/predicates.md: Follow spelling conventions.
16912
16913 * config/m68k/linux-unwind.h: Fix a comment typo.
16914 * target.h: Follow spelling conventions.
16915
16916 2007-02-18 Roger Sayle <roger@eyesopen.com>
16917
16918 PR rtl-optimization/28173
16919 * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
16920 (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
16921 Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
16922 Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
16923 <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
16924
16925 2007-02-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16926
16927 * builtins.c (fold_builtin_load_exponent): New.
16928 (fold_builtin_2): Use it.
16929
16930 2007-02-18 Steven Bosscher <steven@gcc.gnu.org>
16931
16932 PR rtl-optimization/30773
16933 * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
16934 if we fail to attach a REG_EQUIV note.
16935
16936 2007-02-18 David Edelsohn <edelsohn@gnu.org>
16937 Roger Sayle <roger@eyesopen.com>
16938
16939 * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
16940
16941 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
16942
16943 * calls.c (initialize_argument_information): Pass original EXP
16944 and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments. Move
16945 code to split complex arguments here, as part of initializing the
16946 ARGS array.
16947 (expand_call): Remove code that builds a list of arguments and
16948 inserts implicit arguments into it. Instead, just count how many
16949 implicit arguments there will be so we can determine the size of
16950 the ARGS array, and let initialize_argument_information do the work.
16951 (split_complex_values): Delete unused function.
16952
16953 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
16954
16955 * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
16956
16957 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
16958
16959 * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
16960 for arg pointer based indexed addressing.
16961
16962 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
16963
16964 * config/ia64/ia64.h, config/ia64/ia64.md,
16965 config/ia64/predicates.md, config/ia64/sysv4.h: Follow
16966 spelling conventions.
16967
16968 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
16969
16970 * config/m68k/m68k.c (split_di): New.
16971 * config/m68k/m68k-protos.h: Declare split_di.
16972 * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
16973 Improve predicate handling and split constant shifts.
16974
16975 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
16976
16977 * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
16978 parameter for register bitfield operations, general predicates
16979 cleanup
16980
16981 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
16982
16983 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
16984 * config/m68k/linux-unwind.h: New file.
16985
16986 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
16987
16988 * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
16989 config/i386/athlon.md, config/ia64/ia64.md,
16990 config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
16991 df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
16992 ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
16993 tree-ssa-loop-niter.c, tree-vect-analyze.c,
16994 tree-vect-transform.c: Fix comment typos.
16995
16996 2007-02-17 Kazu Hirata <kazu@codesourcery.com>
16997
16998 * sched-deps.c (find_insn_list): Remove.
16999 * sched-int.h: Remove the prototype for find_insn_list.
17000
17001 2007-02-16 Geoffrey Keating <geoffk@apple.com>
17002
17003 * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
17004 to linker.
17005 (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
17006 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
17007 darwin_rs6000_override_options.
17008 (C_COMMON_OVERRIDE_OPTIONS): Expect
17009 darwin_macosx_version_min to be non-NULL always.
17010 (TARGET_C99_FUNCTIONS): Likewise.
17011 (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
17012 (DARWIN_MINVERSION_SPEC): New.
17013 * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
17014 * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
17015 to cc1*.
17016 (DARWIN_MINVERSION_SPEC): New.
17017 * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
17018 value.
17019 * config/darwin-c.c (darwin_cpp_builtins): Expect
17020 darwin_macosx_version_min to be non-NULL always.
17021
17022 * config/rs6000/rs6000.c: Clean up trailing whitespace.
17023
17024 2007-02-16 Uros Bizjak <ubizjak@gmail.com>
17025
17026 * config/i386/i386.h (x86_use_xchgb): New.
17027 (TARGET_USE_XCHGB): New macro.
17028 * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
17029 * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
17030 Split after reload into bswaphi for shifts of 8.
17031 (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
17032 (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
17033 or when optimizing for size.
17034
17035 2007-02-16 Richard Guenther <rguenther@suse.de>
17036 Christian Bruel <christian.bruel@st.com>
17037
17038 * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
17039 DECLs but prefer SSA_NAMEs over DECLs.
17040
17041 2007-02-16 Richard Guenther <rguenther@suse.de>
17042
17043 * tree-flow-inline.h (single_imm_use_p): Remove.
17044 (zero_imm_uses_p): Likewise.
17045 * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
17046 instead of single_imm_use_p.
17047 * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
17048 zero_imm_uses_p.
17049
17050 2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17051
17052 PR other/27843
17053 * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
17054 nested double- and backquotes.
17055
17056 2007-02-15 Roger Sayle <roger@eyesopen.com>
17057
17058 PR middle-end/30391
17059 * tree.c (expr_align): Handle MODIFY_EXPR. GIMPLE_MODIFY_STMT
17060 should be unreachable.
17061 (build2_stat): Allow construction of MODIFY_EXPR at any time.
17062 For the time being redirect GIMPLE_MODIFY_STMT to the new
17063 (renamed) build_gimple_modify_stmt_stat.
17064 (build2_gimple_stat): Rename to...
17065 (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
17066 Always build a GIMPLE_MODIFY_STMT node.
17067 * tree.h (build2_gimple, build2_gimple_stat): Delete.
17068 (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
17069 declarations.
17070
17071 * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
17072 gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
17073 * tree-complex.c (set_component_ssa_name, expand_complex_move,
17074 expand_complex_div_wide): Likewise.
17075 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
17076 * tree-ssa-loop-im.c (schedule_sm): Likewise.
17077 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
17078 * tree-ssa-loop-manip.c (create_iv): Likewise.
17079 * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
17080 abs_replacement): Likewise.
17081 * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
17082 realify_fake_stores): Likewise.
17083
17084 * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
17085 node rather than a GIMPLE_MODIFY_STMT node.
17086 (std_gimpify_va_arg_expr, expand_builtin_va_copy,
17087 fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
17088 Likewise.
17089 (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
17090 * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
17091 GIMPLE_MODIFY_STMT.
17092
17093 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
17094
17095 PR middle-end/30433
17096 * fold-const.c (fold_comparison): Add back the
17097 folding of constant complex comparisions.
17098
17099 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
17100
17101 PR middle-end/30729
17102 * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
17103 effects unknown to this function, return early.
17104
17105 2007-02-15 Ian Lance Taylor <iant@google.com>
17106
17107 * lower-subreg.c (move_eh_region_note): New static function.
17108 (resolve_simple_move): Call it.
17109 (decompose_multiword_subregs): Track blocks for which we resolve a
17110 simple move which is also a control flow insn. Pass them to
17111 find_many_sub_basic_blocks.
17112 (pass_lower_subreg): Add TODO_verify_flow.
17113 (pass_lower_subreg2): Likewise.
17114
17115 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
17116 Brooks Moses <brooks.moses@codesourcery.com>
17117 Lee Millward <lee.millward@codesourcery.com>
17118
17119 * tree.h (enum tree_code_class): Add tcc_vl_exp.
17120 (VL_EXP_CLASS_P): New.
17121 (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
17122 TREE_CODE_LENGTH.
17123 (TREE_OPERAND_CHECK_CODE): Likewise.
17124 (GIMPLE_STMT_OPERAND_CHECK): Likewise.
17125 (TREE_RTL_OPERAND_CHECK): Likewise.
17126 (tree_operand_check_failed): Make second parameter the whole tree
17127 instead of its code. Fixed callers.
17128 (VL_EXP_CHECK): New.
17129 (TREE_OPERAND_LENGTH): New.
17130 (VL_EXP_OPERAND_LENGTH): New.
17131 (CALL_EXPR_FN): New.
17132 (CALL_EXPR_STATIC_CHAIN): New.
17133 (CALL_EXPR_ARGS): New.
17134 (CALL_EXPR_ARG): New.
17135 (call_expr_nargs): New.
17136 (CALL_EXPR_ARGP): New.
17137 (build_nt_call_list): Declare.
17138 (build_vl_exp_stat): Declare.
17139 (build_vl_exp): New.
17140 (build_call_list): Declare.
17141 (build_call_nary): Declare.
17142 (build_call_valist): Declare.
17143 (build_call_array): Declare.
17144 (call_expr_arg): Declare.
17145 (call_expr_argp): Declare.
17146 (call_expr_arglist): Declare.
17147 (fold_build_call_list): Declare.
17148 (fold_build_call_list_initializer): Declare.
17149 (fold_call_expr): Declare to replace fold_builtin.
17150 (fold_builtin_fputs): Update to agree with modified definition.
17151 (fold_builtin_strcpy): Likewise.
17152 (fold_builtin_strncpy): Likewise.
17153 (fold_builtin_memory_chk): Likewise.
17154 (fold_builtin_stxcpy_chk): Likewise.
17155 (fold_builtin_strncpy_chk): Likewise.
17156 (fold_builtin_next_arg): Likewise.
17157 (fold_build_call_expr): Declare.
17158 (fold_builtin_call_list): Declare.
17159 (fold_builtin_call_valist): Declare.
17160 (build_call_expr): Declare.
17161 (validate_arglist): Update to agree with modified definition.
17162 (tree_operand_length): New.
17163 (call_expr_arg_iterator): New.
17164 (init_call_expr_arg_iterator): New.
17165 (next_call_expr_arg): New.
17166 (first_call_expr_arg): New.
17167 (more_call_expr_args_p): New.
17168 (FOR_EACH_CALL_EXPR_ARG): New.
17169
17170 * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
17171 and tcc_gimple_stmt.
17172 (tree_code_size): Update documentation. Use sizeof (tree) rather
17173 than sizeof (char *).
17174 (tree_size): Likewise. Add case for tcc_vl_exp.
17175 (tree_node_structure): Add case for tcc_vl_exp.
17176 (contains_placeholder_p): Likewise.
17177 (substitute_in_expr): Likewise.
17178 (substitute_placeholder_in_expr): Likewise.
17179 (stabilize_reference_1): Likewise.
17180 (build3_stat): Remove logic for CALL_EXPRs. Replace with assertion
17181 to diagnose breakage of this interface for constructing CALL_EXPRs.
17182 (build_nt): Add similar assertion here.
17183 (build_nt_call_list): New.
17184 (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
17185 (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
17186 TREE_CODE_LENGTH.
17187 (get_callee_fndecl): Use new CALL_EXPR accessors.
17188 (tree_operand_check_failed): Change parameters to pass entire node
17189 instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
17190 (process_call_operands): New.
17191 (build_vl_exp_stat): New.
17192 (build_call_list): New.
17193 (build_call_nary): New.
17194 (build_call_valist): New.
17195 (build_call_array): New.
17196 (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17197 (call_expr_arglist): New.
17198
17199 * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
17200 tcc_vl_exp instead of a fixed-size tcc_expression.
17201
17202 * doc/c-tree.texi (CALL_EXPR): Document new representation and
17203 accessors for CALL_EXPRs.
17204 (AGGR_INIT_EXPR): Likewise.
17205
17206 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
17207 Brooks Moses <brooks.moses@codesourcery.com>
17208 Lee Millward <lee.millward@codesourcery.com>
17209
17210 * builtins.c (c_strlen): Return NULL_TREE instead of 0.
17211 (expand_builtin_nonlocal_goto): Change parameter to be entire
17212 CALL_EXPR instead of an arglist. Use new CALL_EXPR accessors.
17213 (expand_builtin_prefetch): Likewise.
17214 (expand_builtin_classify_type): Likewise.
17215 (mathfn_built_in): Return NULL_TREE instead of 0.
17216 (expand_errno_check): Use new CALL_EXPR accessors.
17217 (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
17218 Return NULL_RTX instead of 0.
17219 (expand_builtin_mathfn_2): Likewise.
17220 (expand_builtin_mathfn_3): Likewise.
17221 (expand_builtin_interclass_mathfn): Likewise.
17222 (expand_builtin_sincos): Likewise.
17223 (expand_builtin_cexpi): Likewise.
17224 (expand_builtin_int_roundingfn): Likewise.
17225 (expand_builtin_int_roundingfn_2): Likewise.
17226 (expand_builtin_pow): Likewise.
17227 (expand_builtin_powi): Likewise.
17228 (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
17229 of arglist, fixing callers appropriately. Use new CALL_EXPR
17230 accessors and constructors. Return NULL_RTX instead of 0.
17231 (expand_builtin_strstr): Likewise.
17232 (expand_builtin_strchr): Likewise.
17233 (expand_builtin_strrchr): Likewise.
17234 (expand_builtin_strpbrk): Likewise.
17235 (expand_builtin_memcpy): Likewise.
17236 (expand_builtin_mempcpy): Likewise.
17237 (expand_builtin_mempcpy_args): New.
17238 (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
17239 (expand_builtin_memmove_args): New.
17240 (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
17241 (expand_movstr): Likewise.
17242 (expand_builtin_strcpy): Likewise.
17243 (expand_builtin_strcpy_args): New.
17244 (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
17245 (expand_builtin_strncpy): Likewise.
17246 (expand_builtin_memset): Likewise.
17247 (expand_builtin_memset_args): New.
17248 (expand_builtin_bzero): Similarly to expand_builtin_memset.
17249 (expand_builtin_memcmp): Likewise.
17250 (expand_builtin_strcmp): Likewise.
17251 (expand_builtin_strncmp): Likewise.
17252 (expand_builtin_strcat): Likewise.
17253 (expand_builtin_strncat): Likewise.
17254 (expand_builtin_strspn): Likewise.
17255 (expand_builtin_strcspn): Likewise.
17256 (expand_builtin_args_info): Likewise.
17257 (expand_builtin_va_start): Likewise.
17258 (gimplify_va_arg_expr): Likewise.
17259 (expand_builtin_va_end): Likewise.
17260 (expand_builtin_va_copy): Likewise.
17261 (expand_builtin_frame_address): Likewise.
17262 (expand_builtin_alloca): Likewise.
17263 (expand_builtin_bswap): Likewise.
17264 (expand_builtin_unop): Likewise.
17265 (expand_builtin_fputs): Likewise.
17266 (expand_builtin_expect): Likewise.
17267 (expand_builtin_fabs): Likewise.
17268 (expand_builtin_copysign): Likewise.
17269 (expand_builtin_printf): Likewise.
17270 (expand_builtin_fprintf): Likewise.
17271 (expand_builtin_sprintf): Likewise.
17272 (expand_builtin_init_trampoline): Likewise.
17273 (expand_builtin_signbit): Likewise.
17274 (expand_builtin_fork_or_exec): Likewise.
17275 (expand_builtin_sync_operation): Likewise.
17276 (expand_builtin_compare_and_swap): Likewise.
17277 (expand_builtin_lock_test_and_set): Likewise.
17278 (expand_builtin_lock_release): Likewise.
17279 (expand_builtin): Likewise.
17280 (builtin_mathfn_code): Likewise.
17281
17282 (fold_builtin_constant_p): Pass call arguments individually instead
17283 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
17284 accessors and constructors. Return NULL_TREE instead of 0.
17285 (fold_builtin_expect): Likewise.
17286 (fold_builtin_classify_type): Likewise.
17287 (fold_builtin_strlen): Likewise.
17288 (fold_builtin_nan): Likewise.
17289 (integer_valued_real_p): Likewise.
17290 (fold_trunc_transparent_mathfn): Likewise.
17291 (fold_fixed_mathfn): Likewise.
17292 (fold_builtin_cabs): Likewise.
17293 (fold_builtin_sqrt): Likewise.
17294 (fold_builtin_cbrt): Likewise.
17295 (fold_builtin_cos): Likewise.
17296 (fold_builtin_cosh): Likewise.
17297 (fold_builtin_tan): Likewise.
17298 (fold_builtin_sincos): Likewise.
17299 (fold_builtin_cexp): Likewise.
17300 (fold_builtin_trunc): Likewise.
17301 (fold_builtin_floor): Likewise.
17302 (fold_builtin_ceil): Likewise.
17303 (fold_builtin_round): Likewise.
17304 (fold_builtin_int_roundingfn): Likewise.
17305 (fold_builtin_bitop): Likewise.
17306 (fold_builtin_bswap): Likewise.
17307 (fold_builtin_logarithm): Likewise.
17308 (fold_builtin_hypot): Likewise.
17309 (fold_builtin_pow): Likewise.
17310 (fold_builtin_powi): Likewise.
17311 (fold_builtin_exponent): Likewise.
17312 (fold_builtin_memset): Likewise.
17313 (fold_builtin_bzero): Likewise.
17314 (fold_builtin_memory_op): Likewise.
17315 (fold_builtin_bcopy): Deleted; call site changed to invoke
17316 fold_builtin_memory_op directly.
17317 (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
17318 (fold_builtin_strncpy): Likewise.
17319 (fold_builtin_memcmp): Likewise.
17320 (fold_builtin_strcmp): Likewise.
17321 (fold_builtin_strncmp): Likewise.
17322 (fold_builtin_signbit): Likewise.
17323 (fold_builtin_copysign): Likewise.
17324 (fold_builtin_isascii): Likewise.
17325 (fold_builtin_toascii): Likewise.
17326 (fold_builtin_isdigit): Likewise.
17327 (fold_builtin_fabs): Likewise.
17328 (fold_builtin_abs): Likewise.
17329 (fold_builtin_fmin_fmax): Likewise.
17330 (fold_builtin_carg): Likewise.
17331 (fold_builtin_classify): Likewise.
17332 (fold_builtin_unordered_cmp): Likewise.
17333
17334 (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
17335 New functions split out from fold_builtin_1.
17336 (fold_builtin_n): New.
17337 (fold_builtin_varargs): New.
17338 (fold_builtin): Deleted. Most callers changed to use fold_call_expr
17339 instead.
17340 (fold_call_expr): New.
17341 (build_function_call_expr): Rewrite to use new helper function.
17342 (fold_builtin_call_list): New.
17343 (build_call_expr): New.
17344 (fold_builtin_call_valist): New.
17345 (rewrite_call_expr): New.
17346 (validate_arg): New.
17347 (validate_arglist): Change parameter to be entire CALL_EXPR instead
17348 of an arglist. Change return type to bool. Use new CALL_EXPR
17349 accessors.
17350
17351 (fold_builtin_strstr): Pass call arguments individually instead
17352 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
17353 accessors and constructors. Return NULL_TREE instead of 0.
17354 (fold_builtin_strchr): Likewise.
17355 (fold_builtin_strrchr): Likewise.
17356 (fold_builtin_strpbrk): Likewise.
17357 (fold_builtin_strcat): Likewise.
17358 (fold_builtin_strncat): Likewise.
17359 (fold_builtin_strspn): Likewise.
17360 (fold_builtin_strcspn): Likewise.
17361 (fold_builtin_fputs): Likewise.
17362 (fold_builtin_next_arg): Likewise.
17363 (fold_builtin_sprintf): Likewise.
17364
17365 (expand_builtin_object_size): Use new CALL_EXPR accessors. Use
17366 NULL_RTX instead of 0.
17367 (expand_builtin_memory_chk): Likewise.
17368 (maybe_emit_chk_warning): Likewise.
17369 (maybe_emit_sprintf_chk_warning): Likewise.
17370
17371 (fold_builtin_object_size): Pass call arguments individually instead
17372 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
17373 accessors and constructors. Return NULL_TREE instead of 0.
17374 (fold_builtin_memory_chk): Likewise.
17375 (fold_builtin_stxcpy_chk): Likewise.
17376 (fold_builtin_strncpy_chk): Likewise.
17377 (fold_builtin_strcat_chk): Likewise.
17378 (fold_builtin_strcat_chk): Likewise.
17379 (fold_builtin_strncat_chk): Likewise.
17380 (fold_builtin_sprintf_chk): Likewise.
17381 (fold_builtin_snprintf_chk): Likewise.
17382 (fold_builtin_printf): Likewise.
17383 (fold_builtin_vprintf): Likewise.
17384
17385 * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
17386 constructors.
17387 (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
17388 (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17389 (extract_muldiv_1): Add VL_EXP_CLASS_P case.
17390 (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
17391 (fold_unary): Likewise.
17392 (fold_binary): Likewise.
17393 (fold_ternary): Remove CALL_EXPR case, since they are no longer
17394 ternary expressions.
17395 (fold): Add logic for tcc_vl_exp.
17396 (fold_checksum_tree): Make it know about tcc_vl_exp. Use
17397 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17398 (fold_build3_stat): Add assertion to flag broken interface for
17399 constructing CALL_EXPRs.
17400 (fold_build_call_list): New.
17401 (fold_build_call_list_initializer): New.
17402 (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
17403 constructors.
17404 (fold_strip_sign_ops): Likewise.
17405
17406 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
17407 Brooks Moses <brooks.moses@codesourcery.com>
17408 Lee Millward <lee.millward@codesourcery.com>
17409
17410 * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
17411 accessors and dump arguments explicitly.
17412
17413 * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
17414 TREE_CODE_LENGTH.
17415 (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
17416 explicitly.
17417 (print_call_name): Use new CALL_EXPR accessors.
17418
17419 * print-tree.c (print_node): Add case tcc_vl_exp. Print
17420 CALL_EXPR arguments explicitly instead of as a list. Use
17421 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17422
17423 * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
17424 (vrp_visit_stmt): Likewise.
17425
17426 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
17427 know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of
17428 TREE_CODE_LENGTH.
17429 (force_move_till_expr): Likewise.
17430
17431 * targhooks.c (default_external_stack_protect_fail): Use
17432 build_call_expr instead of build_function_call_expr.
17433 (default_hidden_stack_protect_fail): Likewise.
17434
17435 * tree-complex.c (expand_complex_libcall): Use build_call_expr to
17436 build the call.
17437
17438 * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
17439 and walk arguments explicitly.
17440
17441 * tree-ssa-loop-niter.c (simplify_replace_tree): Use
17442 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17443 (expand_simple_operations): Likewise.
17444 (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
17445
17446 * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
17447 of TREE_CODE_LENGTH.
17448 (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
17449
17450 * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
17451 instead of TREE_CODE_LENGTH.
17452
17453 * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
17454 (tree_ic_transform): Likewise.
17455 (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
17456 parameter instead of arglist. Fix callers.
17457 (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
17458 (tree_stringops_transform): Likewise.
17459 (tree_indirect_call_to_profile): Likewise.
17460 (tree_stringops_values_to_profile): Likewise.
17461
17462 * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
17463 (eliminate_tail_call): Likewise.
17464
17465 * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
17466
17467 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
17468 Use TREE_OPERAND_LENGTH and generalize to handle any number of
17469 operands.
17470 (instantiate_parameters_1): Can't handle tcc_vl_exp here.
17471
17472 * omp-low.c (build_omp_barrier): Use build_call_expr.
17473 (lower_rec_input_clauses): Likewise.
17474 (lower_reduction_clauses): Likewise.
17475 (expand_parallel_call): Likewise.
17476 (maybe_catch_exception): Likewise.
17477 (expand_omp_for_generic): Likewise.
17478 (expand_omp_for_static_nochunk): Likewise.
17479 (expand_omp_sections): Likewise.
17480 (lower_omp_single_simple): Likewise.
17481 (lower_omp_single_copy): Likewise.
17482 (lower_omp_master): Likewise.
17483 (lower_omp_ordered): Likewise.
17484 (lower_omp_critical): Likewise.
17485
17486 * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
17487 (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
17488
17489 * tree-gimple.c (is_gimple_call_addr): Fix doc.
17490 (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
17491 TREE_CODE_LENGTH. Add tcc_vl_exp case.
17492
17493 * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
17494 and generalize to handle any number of operands.
17495 (chrec_contains_undetermined): Likewise.
17496 (tree_contains_chrecs): Likewise.
17497 (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
17498
17499 * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
17500
17501 * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors. Use
17502 fold_call_expr instead of fold_builtin.
17503 (ccp_fold_builtin): Likewise. Update calls into builtins.c to
17504 match declarations there.
17505 (fold_stmt): Use new CALL_EXPR constructor and accessors. Doc
17506 updates.
17507
17508 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
17509 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17510
17511 * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
17512 (scan_function): Add case tcc_vl_exp for CALL_EXPR.
17513
17514 * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
17515 accessors.
17516
17517 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
17518 (execute_cse_sincos): Use new CALL_EXPR accessors.
17519
17520 * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
17521
17522 * gimple-low.c (lower_function_body): Use build_call_expr.
17523 (lower_builtin_setjmp): Likewise.
17524
17525 * expr.c (emit_block_move_via_libcall): Use build_call_expr.
17526 (set_storage_via_libcall): Likewise.
17527 (safe_from_p): Add tcc_vl_exp case. Use TREE_OPERAND_LENGTH
17528 instead of TREE_CODE_LENGTH.
17529 (expand_expr_real_1): Use new CALL_EXPR accessors.
17530
17531 * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
17532 generalize to handle any number of operands.
17533 (TB_parent_eq): Likewise.
17534
17535 * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
17536 (strip_builtin_expect): Likewise.
17537
17538 * function.c (gimplify_parameters): Use build_call_expr.
17539
17540 * tree-vectorizer.c (vect_is_simple_reduction): Use
17541 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17542
17543 * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
17544 (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
17545
17546 * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
17547 iterators.
17548
17549 * gimplify.c (build_stack_save_restore): Use build_call_expr.
17550 (gimplify_decl_expr): Likewise.
17551 (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
17552 Use new CALL_EXPR iterators.
17553 (gimplify_modify_expr_to_memcpy): Use build_call_expr.
17554 (gimplify_modify_expr_to_memset): Likewise.
17555 (gimplify_variable_sized_compare): Likewise.
17556 (gimplify_omp_atomic_fetch_op): Likewise.
17557 (gimplify_omp_atomic_pipeline): Likewise.
17558 (gimplify_omp_atomic_mutex): Likewise.
17559 (gimplify_function_tree): Likewise.
17560
17561 * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
17562 (call_expr_flags): Likewise.
17563 (expand_call): Likewise.
17564
17565 * except.c (expand_builtin_eh_return_data_regno): Pass entire
17566 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
17567 accessors.
17568
17569 * coverage.c (create_coverage): Use build_call_expr.
17570
17571 * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
17572 (temp_call_expr_obstack): New.
17573 (pool_copy_list): Delete.
17574 (temp_copy_call_expr): New.
17575 (phi_translate): Add case tcc_vl_exp for CALL_EXPR. Use new
17576 CALL_EXPR accessors. Get rid of special goo for copying argument
17577 lists and use temp_copy_call_expr instead.
17578 (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR. Use new
17579 CALL_EXPR accessors.
17580 (create_expression_by_pieces): Likewise. Use build_call_array
17581 to construct the result instead of fold_build3.
17582 (create_value_expr_from): Add tcc_vl_exp. Delete special goo for
17583 dealing with argument lists.
17584 (init_pre): Remove references to expression_node_pool and
17585 list_node_pool. Init temp_call_expr_obstack instead.
17586 (fini_pre): Remove references to expression_node_pool and
17587 list_node_pool.
17588
17589 * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
17590 and walk arguments explicitly instead of as a list.
17591
17592 * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
17593 (mx_register_decls): Likewise.
17594 (mudflap_register_call): Likewise.
17595 (mudflap_finish_file): Likewise.
17596
17597 * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
17598 (ipa_callsite_compute_param): Likewise.
17599
17600 * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
17601 accessors and constructor.
17602
17603 * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
17604 accessors and constructor.
17605 (convert_tramp_reference): Likewise.
17606 (convert_call_expr): Likewise.
17607 (finalize_nesting_tree_1): Likewise.
17608
17609 * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
17610 accessors.
17611
17612 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
17613
17614 * tree-inline.c (initialize_inlined_parameters): Pass entire
17615 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
17616 accessors.
17617 (estimate_num_insns_1): Use new CALL_EXPR accessors.
17618 (expand_call_inline): Tidy up call to initialize_inlined_parameters.
17619
17620 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
17621 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17622 (vectorizable_reduction): Likewise.
17623 (vectorizable_call): Use new CALL_EXPR iterators.
17624 (vectorizable_conversion): Use build_call_expr.
17625 (vectorizable_operation): Use TREE_OPERAND_LENGTH.
17626 (vect_gen_widened_results_half): Use build_call_expr.
17627 (vect_setup_realignment): Likewise.
17628 (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
17629
17630 * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
17631 (pass_through_call): Likewise.
17632 (compute_object_sizes): Likewise. Use fold_call_expr instead of
17633 fold_builtin.
17634
17635 * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
17636 (tree_gen_pow2_profiler): Likewise.
17637 (tree_gen_one_value_profiler): Likewise.
17638 (tree_gen_ic_func_profiler): Likewise.
17639 (tree_gen_average_profiler): Likewise.
17640 (tree_gen_ior_profiler): Likewise.
17641
17642 * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
17643 (find_func_aliases): Use new CALL_EXPR accessors. Add case
17644 tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17645
17646 * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
17647 of TREE_CODE_LENGTH.
17648
17649 * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
17650 of TREE_CODE_LENGTH.
17651
17652 * convert.c (convert_to_real): Use new CALL_EXPR accessors and
17653 constructor.
17654 (convert_to_integer): Likewise.
17655
17656 * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
17657 accessors.
17658
17659 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
17660 Brooks Moses <brooks.moses@codesourcery.com>
17661 Lee Millward <lee.millward@codesourcery.com>
17662
17663 * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
17664 accessors.
17665 * config/frv/frv.c (frv_expand_builtin): Likewise.
17666 * config/s390/s390.c (s390_expand_builtin): Likewise.
17667
17668 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
17669 (sparc_expand_builtin): Use new CALL_EXPR accessors.
17670
17671 * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
17672 (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
17673 instead of arglist. Use new CALL_EXPR accessors on it. Fix callers.
17674 (ix86_expand_store_builtin): Likewise.
17675 (ix86_expand_unop_builtin): Likewise.
17676 (ix86_expand_unop1_builtin): Likewise.
17677 (ix86_expand_sse_compare): Likewise.
17678 (ix86_expand_sse_comi): Likewise.
17679 (ix86_expand_vec_init_builtin): Likewise.
17680 (ix86_expand_vec_ext_builtin): Likewise.
17681 (ix86_expand_vec_set_builtin): Likewise.
17682 (ix86_expand_builtin): Use new CALL_EXPR accessors.
17683
17684 * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
17685 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
17686
17687 * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
17688 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
17689 (iq2000_expand_builtin): Use new CALL_EXPR accessors.
17690
17691 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
17692 build_call_expr.
17693 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
17694 (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
17695 arglist. Use new CALL_EXPR accessors. Fix callers.
17696 (altivec_expand_abs_builtin): Likewise.
17697 (rs6000_expand_binop_builtin): Likewise.
17698 (altivec_expand_predicate_builtin): Likewise.
17699 (altivec_expand_lv_builtin): Likewise.
17700 (spe_expand_stv_builtin): Likewise.
17701 (altivec_expand_stv_builtin): Likewise.
17702 (rs6000_expand_ternop_builtin): Likewise.
17703 (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
17704 (altivec_expand_st_builtin): Likewise.
17705 (altivec_expand_dst_builtin): Likewise.
17706 (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
17707 arglist. Use new CALL_EXPR accessors. Fix callers.
17708 (altivec_expand_vec_set_builtin): Likewise.
17709 (altivec_expand_vec_ext_builtin): Likewise.
17710 (altivec_expand_builtin): Use new CALL_EXPR accessors.
17711 (spe_expand_builtin): Likewise.
17712 (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
17713 arglist. Use new CALL_EXPR accessors. Fix callers.
17714 (spe_expand_evsel_builtin): Likewise.
17715 (rs6000_expand_builtin): Use new CALL_EXPR accessors. VCFUX and
17716 FCFSX cases must construct whole new CALL_EXPR, not just arglist.
17717
17718 * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
17719 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
17720 (arm_expand_unop_builtin): Likewise.
17721 (arm_expand_builtin): Use new CALL_EXPR accessors.
17722
17723 * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
17724 accessors.
17725
17726 * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
17727 CALL_EXPR instead of arglist. Use new CALL_EXPR accessors.
17728 Fix callers.
17729 (bfin_expand_unop_builtin): Likewise.
17730 (bfin_expand_builtin): Use new CALL_EXPR accessors.
17731
17732 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
17733 Brooks Moses <brooks.moses@codesourcery.com>
17734 Lee Millward <lee.millward@codesourcery.com>
17735
17736 * c-semantics.c (build_stmt): Add internal diagnostic check.
17737
17738 * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
17739 accessors. Print arguments explicitly instead of as a list.
17740
17741 * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
17742
17743 * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
17744 (c_finish_omp_flish): Likewise.
17745
17746 * c-common.c (verify_tree): Use new CALL_EXPR accessors. Traverse
17747 arguments explicitly instead of as a list. Use TREE_OPERAND_LENGTH
17748 instead of TREE_CODE_LENGTH.
17749 (check_function_arguments_recurse): Use new CALL_EXPR accessors.
17750 (c_warn_unused_result): Likewise.
17751
17752 2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17753
17754 PR c/26494
17755 * doc/invoke.texi (Warning Options): Remove
17756 -Werror-implicit-function-declaration.
17757 (Wimplicit-function-declaration): Update description.
17758 * opts.c (common_handle_option): Move handling of -Werror=* to...
17759 (enable_warning_as_error): ...here.
17760 * opts.h (enable_warning_as_error): Declare.
17761 * c-decl.c (implicit_decl_warning): Unless
17762 -Wno-implicit-function-declaration is given, emit a pedwarn if
17763 -std=c99 or emit a warning if -Wimplicit-function-declaration.
17764 * c.opt (Wimplicit-function-declaration): Replace
17765 mesg_implicit_function_declaration with
17766 warn_implicit_function_declaration.
17767 * c-opts.c (c_common_handle_option):
17768 -Werror-implicit-function-declaration is exactly equal as
17769 -Werror=implicit-function-declaration.
17770 (set_Wimplicit): Replace mesg_implicit_function_declaration with
17771 warn_implicit_function_declaration.
17772 (c_common_post_options): -Wimplict-function-declaration is enabled
17773 by default by -std=c99, otherwise is disabled by default.
17774 * c-objc-common.c (c_objc_common_init): Remove flawed logic.
17775
17776 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
17777
17778 * gimplify.c (gimplify_modify_expr): During gimplification, attach a
17779 DECL on the rhs to a DECL on the lhs for debug info purposes if the
17780 former is ignored but not the latter.
17781
17782 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
17783
17784 * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
17785 is made and the reference doesn't use the alias set of its type,
17786 do not create the temporary using that type.
17787
17788 2007-02-15 Aldy Hernandez <aldyh@redhat.com>
17789
17790 * jump.c: Remove prototypes for delete_computation and
17791 delete_prior_computation.
17792
17793 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
17794
17795 * jump.c (get_label_after): Delete.
17796 (get_label_before, delete_computation, delete_jump,
17797 delete_prior_computation, follow_jumps): Move...
17798 * reorg.c (delete_computation, delete_prior_computation): ... here...
17799 (get_label_before, delete_jump): ... making these static ...
17800 (follow_jumps): ... and simplifying this since it only runs after
17801 reload.
17802 * rtl.h (get_label_after, get_label_before, delete_jump,
17803 follow_jumps): Delete prototypes.
17804
17805 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
17806
17807 * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
17808
17809 2007-02-15 Nick Clifton <nickc@redhat.com>
17810
17811 * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
17812 order to prevent it from being munged by the target.
17813
17814 2007-02-15 Uros Bizjak <ubizjak@gmail.com>
17815
17816 * config/i386/i386.md: Remove misleading comment.
17817
17818 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
17819
17820 * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
17821 reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
17822 invalid patterns.
17823
17824 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
17825
17826 * tree-sra.c (instantiate_missing_elements): Canonicalize
17827 bit-field types.
17828 (sra_build_assignment): New.
17829 (generate_copy_inout, generate_element_copy,
17830 generate_element_zero, generate_one_element_init): Use it.
17831
17832 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
17833
17834 * tree-sra.c (instantiate_missing_elements): Canonicalize
17835 bit-field types.
17836 (sra_build_assignment): New.
17837 (generate_copy_inout, generate_element_copy,
17838 generate_element_zero, generate_one_element_init): Use it.
17839
17840 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
17841
17842 * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
17843 limbo die nodes.
17844
17845 2007-02-14 Joseph Myers <joseph@codesourcery.com>
17846
17847 * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
17848 types as aggregates not scalars.
17849 * function.c (assign_stack_temp_for_type): Likewise.
17850
17851 2007-02-14 Roger Sayle <roger@eyesopen.com>
17852 Zdenek Dvorak <dvorakz@suse.cz>
17853
17854 * tree-dump.c (dump_switch_p_1): Require exact match of the option
17855 name.
17856
17857 2007-02-14 Zdenek Dvorak <dvorakz@suse.cz>
17858
17859 * passes.c (next_pass_1): Clear the next field of the copied
17860 pass structure.
17861
17862 2007-02-14 Richard Henderson <rth@redhat.com>
17863
17864 * tree-sra.c (early_sra): New.
17865 (decl_can_be_decomposed_p): Deny va_list if early_sra.
17866 (tree_sra_early, pass_sra_early): New.
17867 * tree-pass.h (pass_sra_early): Declare.
17868 * passes.c (init_optimization_passes): Use it.
17869
17870 2007-02-14 Richard Guenther <rguenther@suse.de>
17871
17872 * flags.h (issue_strict_overflow_warning): Convert to a macro.
17873
17874 2007-02-14 Dorit Nuzman <dorit@il.ibm.com>
17875
17876 PR tree-optimization/30771
17877 * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
17878 also phi nodes.
17879 (vect_analyze_operations): Induction phis can now be marked as
17880 used_in_loop.
17881 (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
17882 Update documentation accordingly.
17883
17884 2007-02-14 Nick Clifton <nickc@redhat.com>
17885
17886 * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
17887 most 3 arguments are supported.
17888 (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
17889
17890 2007-02-13 Seongbae Park <seongbae.park@gmail.com>
17891
17892 * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
17893 Ensure dst->current is valid.
17894
17895 2007-02-13 Paul Brook <paul@codesourcery.com>
17896
17897 * config.gcc: Add arm*-*-uclinux-*eabi.
17898 * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
17899 (SUBTARGET_EXTRA_LINK_SPEC): Define.
17900 (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
17901 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
17902 (LINK_SPEC): Define.
17903 (LIB_SPEC): Define.
17904 * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
17905 register.
17906 * config/arm/uclinux-eabi.h: New file.
17907 * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
17908 * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
17909 based targets.
17910
17911 2007-02-13 Ian Lance Taylor <iant@google.com>
17912
17913 * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
17914 * flags.h (warn_strict_overflow): Declare.
17915 (enum warn_strict_overflow_code): Define.
17916 (issue_strict_overflow_warning): New static inline function.
17917 * opts.c (warn_strict_overflow): New variable.
17918 (common_handle_option): Handle OPT_Wstrict_overflow and
17919 OPT_Wstrict_overflow_.
17920 * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
17921 OPT_Wall.
17922 * fold-const.c: Include intl.h.
17923 (fold_deferring_overflow_warnings): New static variable.
17924 (fold_deferred_overflow_warning): New static variable.
17925 (fold_deferred_overflow_code): New static variable.
17926 (fold_defer_overflow_warnings): New function.
17927 (fold_undefer_overflow_warnings): New function.
17928 (fold_undefer_and_ignore_overflow_warnings): New function.
17929 (fold_deferring_overflow_warnings_p): New function.
17930 (fold_overflow_warning): New static function.
17931 (make_range): Add strict_overflow_p parameter. Change all
17932 callers.
17933 (extract_muldiv, extract_muldiv_1): Likewise.
17934 (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
17935 tree_expr_nonnegative_p.
17936 (fold_negate_expr): Call fold_overflow_warning.
17937 (fold_range_test): Likewise.
17938 (fold_comparison): Likewise.
17939 (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p
17940 instead of tree_expr_nonnegative_p.
17941 (tree_expr_nonnegative_warnv_p): Rename from
17942 tree_expr_nonnegative_p, add strict_overflow_p parameter.
17943 (tree_expr_nonnegative_p): New function.
17944 (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
17945 strict_overflow_p parameter.
17946 (tree_expr_nonzero_p): New function.
17947 * passes.c (verify_interpass_invariants): New static function.
17948 (execute_one_pass): Call it.
17949 * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
17950 warnings.
17951 (number_of_iterations_exit, loop_niter_by_eval): Likewise.
17952 (estimate_numbers_of_iterations): Likewise.
17953 (scev_probably_wraps_p): Likewise.
17954 * tree-ssa-ccp.c: Include "toplev.h".
17955 (evaluate_stmt): Defer fold overflow warnings until we know we are
17956 going to optimize.
17957 (struct fold_stmt_r_data): Add stmt field.
17958 (fold_stmt_r): Defer fold overflow warnings until we know we
17959 optimized.
17960 (fold_stmt): Initialize stmt field of fold_stmt_r_data.
17961 (fold_stmt_inplace): Likewise.
17962 * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
17963 (cleanup_control_expr_graph): Defer fold overflow warnings until
17964 we know we are going to optimize.
17965 * tree-cfg.c (fold_cond_expr_cond): Likewise.
17966 * tree-ssa-threadedge.c (simplify_control_stmt_condition):
17967 Likewise.
17968 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
17969 tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
17970 * tree-ssa-loop-manip.c (create_iv): Likewise.
17971 * c-typeck.c (build_conditional_expr): Likewise.
17972 (build_binary_op): Likewise.
17973 * tree-vrp.c (vrp_expr_computes_nonzero): Call
17974 tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
17975 (extract_range_from_unary_expr): Likewise.
17976 * simplify-rtx.c (simplify_const_relational_operation): Warn when
17977 assuming that signed overflow does not occur.
17978 * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
17979 * tree.h (tree_expr_nonnegative_warnv_p): Declare.
17980 (fold_defer_overflow_warnings): Declare.
17981 (fold_undefer_overflow_warnings): Declare.
17982 (fold_undefer_and_ignore_overflow_warnings): Declare.
17983 (fold_deferring_overflow_warnings_p): Declare.
17984 (tree_expr_nonzero_warnv_p): Declare.
17985 * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
17986 of warning options.
17987 (Warning Options): Document -Wstrict-overflow.
17988 * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
17989 (tree-ssa-ccp.o): Likewise.
17990 (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
17991 (fold-const.o): Depend on intl.h.
17992
17993 2007-02-13 Ian Lance Taylor <iant@google.com>
17994
17995 PR middle-end/30751
17996 * lower-subreg.c (resolve_simple_move): Decompose subregs in
17997 addresses.
17998
17999 2007-02-13 Stuart Hastings <stuart@apple.com>
18000
18001 * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
18002
18003 2007-02-13 Richard Henderson <rth@redhat.com>
18004
18005 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
18006 handled_component_p before looking for the indirect_ref.
18007
18008 2007-02-13 Richard Henderson <rth@redhat.com>
18009
18010 * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
18011 remove flags clobber.
18012 (bswapsi2): New expander, emit code for !TARGET_BSWAP.
18013 (bswaphi_lowpart): New.
18014 (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
18015 remove TARGET_BSWAP test. Delete expander of the same name.
18016
18017 * optabs.c (widen_bswap, expand_doubleword_bswap): New.
18018 (expand_unop): Use them.
18019
18020 2007-02-13 Uros Bizjak <ubizjak@gmail.com>
18021
18022 * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
18023 *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
18024 *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
18025 *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
18026 *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
18027 *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
18028 *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
18029 assembler dialect choice from asm templates.
18030
18031 2007-02-12 Richard Henderson <rth@redhat.com>
18032
18033 * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
18034 (fixuns_trunc<SSEMODEF>si2): Use it.
18035 * config/i386/sse.md (vec_setv4sf_0): Export.
18036 * config/i386/i386.c (ix86_build_const_vector): Export.
18037 (ix86_split_convert_uns_si_sse): Rename from
18038 ix86_expand_convert_uns_si_sse and rewrite as a splitter.
18039 * config/i386/i386-protos.h: Update.
18040
18041 2007-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18042
18043 PR c/29521
18044 * c-typeck.c (c_finish_return): Improve warning message.
18045
18046 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18047
18048 * alias.c (find_symbolic_term): Delete unused function.
18049
18050 2007-02-12 Uros Bizjak <ubizjak@gmail.com>
18051
18052 * config/i386/i386.md (paritydi2, paritysi2): New expanders.
18053 (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
18054 (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
18055
18056 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
18057
18058 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
18059 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
18060 the function, temporarily point the debug interface to the null one.
18061
18062 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
18063
18064 * dwarf2out.c (round_up_to_align): New static function.
18065 (field_byte_offset): Use it to round the offset.
18066
18067 2007-02-12 Richard Henderson <rth@redhat.com>
18068
18069 * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
18070 (inswl_const): Export.
18071
18072 2007-02-12 Richard Henderson <rth@redhat.com>
18073
18074 * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
18075 result mode of the libcall, convert back to outmode.
18076
18077 2007-02-12 Roger Sayle <roger@eyesopen.com>
18078
18079 * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
18080 (bswapdi2): New define_expand to implement 32-bit implementation.
18081
18082 2007-02-12 Nick Clifton <nickc@redhat.com>
18083
18084 * doc/invoke.texi (Overall Options): Document --help=.
18085 * gcc.c (target_help_flag): Rename to print_subprocess_flag.
18086 (cc1_options): Pass --help= on to cc1.
18087 (display_help): Add description of --help=.
18088 (process_command): Add code to handle --help=. Allow translated
18089 --help and --target-help switches to be passed on to compiler
18090 sub-process.
18091 (main): Remove unused if statement.
18092 * opts.c (columns): Remove.
18093 (LEFT_COLUMN): Define.
18094 (wrap_help): Add columns argument.
18095 (print_filtered_help): Change parameters to be an include bitmask,
18096 an exclude bitmask, an any bitmask and the column width. Move the
18097 code to display the params list here. Add code to display the
18098 status of options rather than their descriptions if the quiet flag
18099 is not active.
18100 (print_specific_help): Change parameters to be an include bitmask,
18101 an exclude bitmask and an any bitmask. Move code to look up the
18102 column width here. Decide upon the title for an options listing.
18103 (common_handle_options): Add code to handle --help=. Adapt code
18104 for --help and --target-help to use the revised form of the
18105 print_specific_help function.
18106 (print_help): Delete.
18107 (print_param_help): Delete.
18108 (print_switch): Delete.
18109 * opts.h (cl_lang_count): Add prototype.
18110 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
18111 CL_MAX_OPTION_CLASS): New defines.
18112 * optc-gen.awk: Add construction of cl_lang_count.
18113 * c.opt: Add Warning attribute to warning options and Optimization
18114 attribute to optimization options.
18115 * common.opt: Likewise.
18116 Add --help=.
18117 Add -fhelp and -ftarget-help as aliases for the transformed --help
18118 and --target-help options.
18119 * opt-functions.awk: Add code to handle Warning and Optimization
18120 attributes.
18121
18122 2007-02-12 Richard Henderson <rth@redhat.com>
18123
18124 * config/alpha/constraints.md: New file.
18125 * config/alpha/alpha.c: Include tm-constrs.h.
18126 (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
18127 alpha_extra_constraint): Remove.
18128 (alpha_emit_conditional_branch): Use satisfies_constraint_*.
18129 * config/alpha/alpha-protos.h: Update.
18130 * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
18131 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
18132 (EXTRA_CONSTRAINT): Remove.
18133 * config/alpha/alpha.md: Include constraints.md.
18134 (adddi splitter): Use satisfies_constraint_*.
18135 * config/alpha/predicates.md (add_operand): Likewise.
18136 (sext_add_operand, addition_operation): Likewise.
18137
18138 2007-02-12 Dorit Nuzman <dorit@il.ibm.com>
18139
18140 PR tree-optimization/29145
18141 * tree-data-ref.c (base_addr_differ_p): Make us more conservative
18142 in our handling of restrict qualified pointers.
18143
18144 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18145
18146 PR middle-end/7651
18147 * doc/invoke.texi (Wunused-value): Update description.
18148 (Wextra): Delete item.
18149 * opts.c (set_Wextra): Don't use the value of Wextra to set the
18150 value of Wunused-value.
18151 * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
18152 (c_finish_stmt_expr): Don't check extra_warnings.
18153 (emit_side_effect_warnings): The caller is responsible to check
18154 warn_unused_value.
18155
18156 2007-02-11 Roger Sayle <roger@eyesopen.com>
18157 Matt Thomas <matt@3am-software.com>
18158
18159 * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
18160
18161 2007-02-11 Roger Sayle <roger@eyesopen.com>
18162
18163 * simplify-rtx.c (simplify_relational_operation_1): Optimize
18164 comparisons of POPCOUNT against zero.
18165 (simplify_const_relational_operation): Likewise.
18166
18167 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18168
18169 * doc/invoke.texi (Wextra): Delete outdated paragraph.
18170
18171 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18172
18173 * dwarf2out.c (root_type): Delete unused function.
18174
18175 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18176
18177 * genattrtab.c (contained_in_p): Delete unused function.
18178 (write_expr_attr_cache): Likewise.
18179
18180 2007-02-11 Jan Hubicka <jh@suse.cz>
18181
18182 * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
18183 previous patch.
18184
18185 2007-02-11 Steven Bosscher <steven@gcc.gnu.org>
18186
18187 * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
18188 to add the REG_EQ* note.
18189 * see.c (see_merge_one_use_extension): Likewise.
18190 * local-alloc.c (update_equiv_regs): Likewise. Also don't
18191 turn REG_EQUAL notes into REG_EQUIV notes if the target
18192 register may have more than one set.
18193 * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
18194 * gcse.c (try_replace_reg): Likewise.
18195 * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
18196 * calls.c (fixup_tail_calls): Likewise. Abort if there is
18197 more than one REG_EQUIV note.
18198 * reload1.c (gen_reload): Use set_unique_reg_note.
18199
18200 2007-02-11 Uros Bizjak <ubizjak@gmail.com>
18201
18202 * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
18203 (ix86_builtin_conversion): New function.
18204
18205 2007-02-06 Mark Mitchell <mark@codesourcery.com>
18206
18207 PR target/29487
18208 * tree.h (DECL_REPLACEABLE_P): New macro.
18209 * except.c (set_nothrow_function_flags): Likewise.
18210
18211 2007-02-11 Tehila Meyzels <tehila@il.ibm.com>
18212 Ira Rosen <irar@il.ibm.com>
18213 Dorit Nuzman <dorit@il.ibm.com>
18214
18215 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
18216 * targhooks.c (default_builtin_vectorized_conversion): New.
18217 * targhooks.h (default_builtin_vectorized_function): New declaration.
18218 * target.h (struct vectorize): Add builtin_conversion field.
18219 * tree-vectorizer.h (type_conversion_vec_info_type): New enum
18220 stmt_vec_info_type value.
18221 (vectorizable_conversion): New declaration.
18222 * tree-vect-analyze.c (vect_analyze_operations): Add
18223 vectorizable_conversion call.
18224 * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
18225 * tree-vect-transform.c (vectorizable_conversion): New function.
18226 (vect_transform_stmt): Add case for type_conversion_vec_info_type.
18227 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
18228 mode.
18229 * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
18230 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
18231 (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
18232 or ALTIVEC_BUILTIN_VCFSX.
18233
18234 2007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18235
18236 PR target/30634
18237 * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
18238 CONST_DOUBLE and operand 0 is a hard register.
18239 (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
18240 memory. Fail if operand 1 is a non-zero CONST_INT and operand 0
18241 is a hard floating-point register.
18242
18243 2007-02-10 Richard Henderson <rth@redhat.com>
18244 Jakub Jelinek <jakub@redhat.com>
18245 Alexandre Oliva <aoliva@redhat.com>
18246
18247 * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
18248 * builtin-types.def (BT_WORD): Make unsigned.
18249 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
18250 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
18251 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
18252 * c-decl.c (grokdeclarator): Don't error if !have_tls.
18253 * c-parser.c (c_parser_omp_threadprivate): Likewise.
18254 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
18255 emulated tls.
18256 * expr.c (emutls_var_address): New.
18257 (expand_expr_real_1): Expand emulated tls.
18258 (expand_expr_addr_expr_1): Likewise.
18259 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
18260 * output.h (emutls_finish): Declare.
18261 * toplev.c (compile_file): Call it.
18262 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
18263 address before wrapping in CONST.
18264 * varasm.c (emutls_htab, emutls_object_type): New.
18265 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
18266 (get_emutls_object_name, get_emutls_object_type): New.
18267 (get_emutls_init_templ_addr, emutls_decl): New.
18268 (emutls_common_1, emutls_finish): New.
18269 (assemble_variable): When emulating tls, swap decls; generate
18270 constructor for the emutls objects.
18271 (do_assemble_alias): When emulating tls, swap decl and target name.
18272 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
18273 for emulated tls.
18274 * varpool.c (decide_is_variable_needed): Look at force_output.
18275 Recurse for emulated tls.
18276 (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
18277 with decide_is_variable_needed.
18278 * emutls.c: New file.
18279 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
18280 tls_object for real tls.
18281
18282 2007-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
18283
18284 PR rtl-optimization/29599
18285 * reload1.c (eliminate_regs_in_insn): Take the destination
18286 mode into account when computing the offset.
18287
18288 2007-02-09 Stuart Hastings <stuart@apple.com>
18289 Richard Henderson <rth@redhat.com>
18290
18291 * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
18292 * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
18293 * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
18294 fixuns_truncdfhi2): New.
18295 (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
18296 (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
18297 (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
18298 (floatunssidf2): Allow nonimmediate source.
18299 * config/i386/sse.md (movdi_to_sse): New.
18300 (vec_concatv2di): Drop '*'.
18301 * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
18302 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
18303 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
18304 New.
18305 * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
18306 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
18307 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
18308 ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
18309 (ix86_build_signbit_mask): Fix decl of v, refactor to call
18310 ix86_build_const_vector.
18311 (x86_emit_floatuns): Rewrite.
18312
18313 2007-02-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18314
18315 * genautomata.c (longest_path_length): Delete unused function.
18316 (struct state): Delete unused longest_path_length.
18317 (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
18318 (get_free_state): Delete unused.
18319
18320 2007-02-09 Jan Hubicka <jh@suse.cz>
18321
18322 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
18323 * doc/invoke.texi (inline-unit-growth): Update default value.
18324
18325 * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
18326 * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
18327 (rebuild_cgraph_edges): Likewise.
18328 * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
18329 (dump_cgraph_node): Dump frequencies.
18330 (cgraph_clone_edge): Add frequency scales.
18331 (cgraph_clone_node): Add freuqnecy.
18332 * cgraph.h (cgraph_edge): Add freuqnecy argument.
18333 (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
18334 (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
18335 * tree-pass.h (TODO_rebuild_frequencies): New constant.
18336 * cgraphunit.c (verify_cgraph_node): Verify frequencies.
18337 (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
18338 (save_inline_function_body): Likewise.
18339 * ipa-inline.c: inluce rtl.h
18340 (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
18341 (cgraph_edge_badness): Use frequencies.
18342 (cgraph_decide_recursive_inlining): Update clonning.
18343 (cgraph_decide_inlining_of_small_function): Dump frequency.
18344 * predict.c (estimate_bb_frequencies): Export.
18345 * predict.h (estimate_bb_frequencies): Declare.
18346 * tree-inline.c (copy_bb): Watch overflows.
18347 (expand_call_inline): Update call of cgraph_create_edge.
18348 (optimize_inline_calls): Use TODO flags to update frequnecies.
18349 * passes.h: Include predict.h
18350 (init_optimization_passes): Move profile ahead.
18351 (execute_function_todo): Handle TODO_rebuild_frequencies.
18352
18353 2007-02-09 Roger Sayle <roger@eyesopen.com>
18354
18355 * config/alpha/alpha.c (emit_insxl): Force the first operand of
18356 the insbl or inswl pattern into a register.
18357
18358 2007-02-09 Roger Sayle <roger@eyesopen.com>
18359
18360 * config/ia64/ia64.md (bswapdi2): New define_insn.
18361
18362 2007-02-09 Richard Henderson <rth@redhat.com>
18363
18364 * config/i386/constraints.md (Ym): New constraint.
18365 * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
18366 (movdi_1_rex64): Split sse and xmm general register moves from
18367 memory move alternatives. Use conditional register constraints.
18368 (movsf_1, movdf_integer): Likewise.
18369 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
18370 (movdf_integer_rex64): New.
18371 (pushsf_rex64): Fix output constraints.
18372 * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
18373 (sse2_stored): Likewise.
18374 (sse2_storeq_rex64): New.
18375 * config/i386/i386.c (x86_inter_unit_moves): Enable for not
18376 amd and not generic.
18377 (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
18378 for optimize_size. Remove SF/DFmode hack.
18379
18380 2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
18381
18382 * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
18383 (bit_SSE4a): New.
18384
18385 2007-02-09 Nathan Sidwell <nathan@codesourcery.com>
18386 Richard Sandiford <richard@codesourcery.com>
18387
18388 * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
18389 (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
18390 (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
18391 m68k/t-mlib to tmake_file.
18392 (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well.
18393 (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
18394 (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
18395 Allow it to be cf or m68k. Set m68k_arch_family. If that
18396 variable is not empty, add t-$m68k_arch_family to tmake_file.
18397 Add t-mlibs to tmake_file.
18398 * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
18399 * config/m68k/t-cf: New file.
18400 * config/m68k/t-m68k: Likewise.
18401 * config/m68k/t-mlibs: Likewise.
18402 * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
18403 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
18404 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
18405 * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
18406 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
18407 Delete.
18408 * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
18409 (INSTALL_LIBGCC): Delete.
18410 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
18411 * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
18412 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
18413 (M68K_MLIB_CPU): Define.
18414 * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
18415 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
18416 (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
18417
18418 2007-02-09 Zdenek Dvorak <dvorakz@suse.cz>
18419 Richard Guenther <rguenther@suse.de>
18420
18421 PR middle-end/23361
18422 * fold-const.c (fold_comparison): Handle obfuscated comparisons
18423 against INT_MIN/INT_MAX.
18424 * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
18425 file if a loop is removed.
18426
18427 2007-02-09 Joseph Myers <joseph@codesourcery.com>
18428
18429 * calls.c (store_one_arg): Pass correct alignment to
18430 emit_push_insn for non-BLKmode values.
18431 * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
18432 unaligned stack slot via a suitably aligned slot.
18433
18434 2007-02-08 DJ Delorie <dj@redhat.com>
18435
18436 * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
18437 warnings.
18438 (legal_subregs): Use unsigned char, make const.
18439 (m32c_illegal_subreg_p): Use ARRAY_SIZE. Delete unused variables.
18440
18441 2007-02-08 Paul Brook <paul@codesourcery.com>
18442
18443 * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
18444 special interworking needed.
18445
18446 2007-02-08 Harsha Jagasia <harsha.jagasia@amd.com>
18447
18448 * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
18449 conditional to __SSE2__.
18450 (Entries below should have been added to first ChangeLog
18451 entry for amdfam10 dated 2007-02-05)
18452 * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
18453 defined.
18454 * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
18455 defined.
18456 * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
18457 defined.
18458
18459 2007-02-08 DJ Delorie <dj@redhat.com>
18460
18461 * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
18462 * config/m32c/m32c.c (legal_subregs): New.
18463 (m32c_illegal_subreg_p): New.
18464 * config/m32c/predicates.md (m32c_any_operand): Use it to reject
18465 unsupported subregs of hard regs.
18466
18467 2007-02-08 Jan Hubicka <jh@suse.cz>
18468
18469 * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
18470 the same one; always update histograms.
18471
18472 2007-02-08 Diego Novillo <dnovillo@redhat.com>
18473
18474 * passes.c (init_optimization_passes): Tidy comment.
18475
18476 2007-02-08 Roger Sayle <roger@eyesopen.com>
18477
18478 * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
18479 strip zero_extend, bswap and rotates from POCOUNT's argument.
18480 <PARITY>: Likewise, we can strip not, bswap, sign_extend,
18481 zero_extend and rotates from PARITY's argument.
18482 <BSWAP>: A byte-swap followed by a byte-swap is an identity.
18483 (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
18484 of an integer constant at compile-time.
18485
18486 2007-02-08 Diego Novillo <dnovillo@redhat.com>
18487
18488 PR 30562
18489 * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
18490 Update all users.
18491 * tree-ssa-alias.c (compute_is_aliased): Remove. Update all
18492 users.
18493 (init_alias_info):
18494 * tree-ssa-live.c (remove_unused_locals): Do not remove
18495 TREE_ADDRESSABLE variables.
18496 * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
18497 * tree-ssa-operands.c (add_virtual_operand): Remove argument
18498 FOR_CLOBBER. Update all users.
18499 If VAR has an associated alias set, add a virtual operand for
18500 it if no alias is found to conflict with the memory reference.
18501
18502 2007-02-07 Jan Hubicka <jh@suse.cz>
18503 Robert Kidd <rkidd@crhc.uiuc.edu>
18504
18505 * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
18506
18507 2007-02-07 Ian Lance Taylor <iant@google.com>
18508
18509 * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
18510
18511 2007-02-07 Roger Sayle <roger@eyesopen.com>
18512
18513 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
18514 parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
18515 tablejumpdi, movsi_to_cr_one): Remove constraints from
18516 define_expand's match_operands.
18517
18518 2007-02-07 Roger Sayle <roger@eyesopen.com>
18519
18520 * global.c (compute_regsets): Move declatation of "i" inside of
18521 #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
18522
18523 2007-02-07 Jakub Jelinek <jakub@redhat.com>
18524
18525 PR c++/30703
18526 * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
18527 of INDIRECT_REF <RESULT_DECL>.
18528
18529 * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
18530
18531 2007-02-06 J"orn Rennecke <joern.rennecke@arc.com>
18532 Kaz Kojima <kkojima@gcc.gnu.org>
18533
18534 PR target/29746
18535 * config/sh/sh.c (expand_cbranchdi4): Use scratch register
18536 properly.
18537 (sh_initialize_trampoline): Add parentheses to avoid a warning.
18538
18539 2007-02-06 Zdenek Dvorak <dvorakz@suse.cz>
18540
18541 * doc/loop.texi: Document possibility not to perform disambiguation
18542 of loops with multiple latches.
18543 * cfgloopmanip.c (alp_enum_p): Removed.
18544 (add_loop): Handle subloops. Use get_loop_body_with_size.
18545 (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
18546 * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
18547 the new forwarder block.
18548 (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
18549 Handle the case latch is NULL.
18550 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
18551 modifications when marking loop exits.
18552 * ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot
18553 be modified.
18554 * loop-init.c (loop_optimizer_init): Do not modify cfg. Call
18555 disambiguate_loops_with_multiple_latches.
18556 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
18557 before fix_loop_structure.
18558 * cfgloop.c: Include pointer-set.h and output.h.
18559 (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
18560 update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
18561 (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
18562 find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
18563 mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
18564 disambiguate_multiple_latches, get_loop_body_with_size,
18565 disambiguate_loops_with_multiple_latches): New functions.
18566 (flow_loop_dump): Dump multiple latch edges.
18567 (flow_loop_nodes_find): Handle loops with multiple latches.
18568 (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
18569 (glb_enum_p): Modified.
18570 (get_loop_body): Use get_loop_body_with_size.
18571 * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
18572 (AVOID_CFG_MODIFICATIONS): New constant.
18573 (disambiguate_loops_with_multiple_latches, add_loop,
18574 get_loop_body_with_size): Declare.
18575 * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
18576
18577 2007-02-06 Seongbae Park <seongbae.park@gmail.com>
18578
18579 PR inline-asm/28686
18580 * global.c (compute_regsets): New function.
18581 (global_alloc): Refactored ELIMINABLE_REGSET
18582 and NO_GLOBAL_ALLOC_REGS computation out.
18583 (rest_of_handle_global_alloc): Call compute_regsets()
18584 for non-optimizing case.
18585
18586 2007-02-06 Richard Henderson <rth@redhat.com>
18587
18588 * config/i386/constraints.md (Y2): Rename from Y.
18589 (Yi): New constraint.
18590 * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
18591 pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
18592 zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
18593 (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
18594 truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
18595 fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
18596 floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
18597 absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
18598 fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
18599 * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
18600 mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
18601 vec_extractv2si_1): Change Y constraints to Y2.
18602 * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
18603 vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
18604 Change Y constraints to Y2.
18605 (sse2_loadld): Change Y constraints to x.
18606
18607 2007-02-06 Roger Sayle <roger@eyesopen.com>
18608
18609 * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
18610 (parity<mode>2): New define_expand using rs6000_emit_parity.
18611 * config/rs6000/rs6000.c (rs6000_emit_popcount,
18612 rs6000_emit_parity): New functions.
18613 * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
18614 rs6000_emit_parity): Prototype here.
18615
18616 2007-02-06 Ian Lance Taylor <iant@google.com>
18617
18618 * lower-subreg.c (simple_move_operand): Reject CONST.
18619 (resolve_clobber): Call validate_change rather than directly
18620 assigning to XEXP (pat, 0).
18621
18622 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
18623
18624 * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
18625 (tree-ssa-reassoc.o): Add pointer-set.h dependency.
18626 (tree-cfg.o): Remove hashtab.h dependency.
18627
18628 * tree-ssa-loop-ivopts.c: Include pointer-set.h.
18629 (struct ivopts_data): Change niters to pointer_map_t.
18630 (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
18631 (niter_for_exit): Create pointer_map on demand. Change for
18632 pointer_map API.
18633 (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
18634 (free_loop_data): Destroy data->niters if created and reset field.
18635 (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
18636 (tree_ssa_iv_optimize_loop): Check for presence of stale data.
18637
18638 * tree-ssa-reassoc.c: Include pointer-set.h.
18639 (bb_rank): Change to long *.
18640 (operand_rank): Change to pointer_map_t.
18641 (find_operand_rank): Return long, -1 if not found. Declare as inline.
18642 (insert_operand_rank): Accept long.
18643 (operand_entry_hash, operand_entry_eq): Remove.
18644 (get_rank): Return long. Adjust for changes above.
18645 (init_reassoc): Change rank type to long. Adjust creation of bb_rank
18646 and operand_rank.
18647 (fini_reassoc): Delete operand_rank with pointer_map_destroy.
18648
18649 * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
18650 (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
18651 (insert_vi_for_tree): Rewrite for pointer_map API. Assert argument
18652 is not NULL.
18653 (lookup_vi_for_tree): Rewrite for pointer_map API. Return varinfo_t
18654 directly since it cannot be NULL.
18655 (get_vi_for_tree): Rewrite for pointer_map API.
18656 (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
18657 (init_alias_vars): Create vi_for_tree as pointer_map.
18658 (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
18659
18660 * tree-cfg.c: Don't include hashtab.h.
18661 (edge_to_cases): Declare as pointer_map.
18662 (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
18663 Delete.
18664 (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
18665 (start_recording_case_labels): Create edge_to_cases as pointer_map.
18666 (end_recoding_case_labels): Cleanup edge_to_cases manually before
18667 destroying it.
18668 (record_switch_edge): Delete.
18669 (get_cases_for_edge): Adjust for pointer_map API, inline
18670 record_switch_edge (rewritten for new API), remove goto.
18671
18672 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
18673
18674 * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
18675 * tree-nested.c: Include pointer-set.h.
18676 (var_map_elt, var_map_eq, var_map_hash): Delete.
18677 (struct nesting_info): Remove GTY marker. Change the two htab_t's
18678 to pointer_map_t's.
18679 (nesting_info_bitmap_obstack): New.
18680 (lookup_field_for_decl): Adjust for pointer_map API.
18681 (lookup_tramp_for_decl): Adjust for pointer_map API.
18682 (get_nonlocal_debug_decl): Adjust for pointer_map API.
18683 (get_local_debug_decl): Adjust for pointer_map API.
18684 (convert_nl_goto_reference): Adjust for pointer_map API.
18685 (convert_nl_goto_receiver): Adjust for pointer_map API.
18686 (create_nesting_tree): Create outside GGC space. Create bitmap on
18687 the new obstack. Create field_map and var_map as pointer_maps.
18688 (free_nesting_tree): Adjust for changes to create_nesting_tree.
18689 (root): Delete.
18690 (lower_nested_functions): Move root here, no need to NULL it.
18691 Initialize and release the obstack.
18692
18693 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
18694
18695 * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
18696 Remove prototypes and make them non-static.
18697 (struct tree_int_map): Remove.
18698 * tree.h (struct tree_int_map): Move here, turning TO into an
18699 unsigned int.
18700 (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
18701
18702 * tree.h (TREE_COMPLEXITY): Remove.
18703 (struct tree_exp): Remove complexity field.
18704 * tree.c (build1_stat): Don't set it.
18705
18706 2007-02-06 Dorit Nuzman <dorit@il.ibm.com>
18707 Victor Kaplansky <victork@il.ibm.com>
18708
18709 * tree-vectorizer.c (vect_is_simple_use): Support induction.
18710 (vect_is_simple_reduction): Support reduction with induction as
18711 one of the operands.
18712 (vect_is_simple_iv_evolution): Fix formatting.
18713 * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
18714 formatting. Don't mark induction phis for vectorization.
18715 (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
18716 * tree-vect-transform.c (get_initial_def_for_induction): New function.
18717 (vect_get_vec_def_for_operand): Support induction.
18718 (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
18719 induction case.
18720 (vectorizable_reduction): Support reduction with induction as one of
18721 the operands.
18722 (vectorizable_type_demotion): Use def-type of stmt argument rather
18723 than dummy def-type.
18724
18725 * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
18726 flag_tree_scev_cprop.
18727 * common.opt (tree-scev-cprop): New flag.
18728
18729 * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
18730 call to vect_get_new_vect_var.
18731
18732 2007-02-06 Ira Rosen <irar@il.ibm.com>
18733
18734 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
18735 vectype is not NULL.
18736 (vect_pattern_recog_1): Likewise.
18737
18738 2007-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18739
18740 * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
18741 (fold_negate_expr): Likewise.
18742
18743 2007-02-05 Alexandre Oliva <aoliva@redhat.com>
18744
18745 PR debug/30189
18746 * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
18747 even if cv-qualification is the same.
18748
18749 2007-02-05 Geoffrey Keating <geoffk@apple.com>
18750
18751 * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
18752 __enable_execute_stack on completion.
18753
18754 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18755
18756 * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
18757 athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
18758 athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
18759 athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
18760 athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
18761 athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
18762 athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
18763 athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
18764
18765 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18766
18767 * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
18768 cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
18769 swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
18770 fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
18771 x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
18772 floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
18773 floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
18774 mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
18775 umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
18776 umuldi3_highpart_rex64, umulsi3_highpart_insn,
18777 umulsi3_highpart_zext, smuldi3_highpart_rex64,
18778 smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
18779 x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
18780 sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
18781 sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
18782 sqrtextenddfxf2_i387): Added amdfam10_decode.
18783
18784 * config/i386/athlon.md (athlon_idirect_amdfam10,
18785 athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
18786 athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
18787 athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
18788 athlon_ivector_store_amdfam10): New define_insn_reservation.
18789 (athlon_idirect_loadmov, athlon_idirect_movstore): Added
18790 amdfam10.
18791
18792 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18793
18794 * config/i386/athlon.md (athlon_call_amdfam10,
18795 athlon_pop_amdfam10, athlon_lea_amdfam10): New
18796 define_insn_reservation.
18797 (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
18798 athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
18799 athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
18800
18801 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18802
18803 * config/i386/athlon.md (athlon_sseld_amdfam10,
18804 athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
18805 athlon_mmxssest_short_amdfam10): New define_insn_reservation.
18806
18807 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18808
18809 * config/i386/athlon.md (athlon_sseins_amdfam10): New
18810 define_insn_reservation.
18811 * config/i386/i386.md (sseins): Added sseins to define_attr type
18812 and define_attr unit.
18813 * config/i386/sse.md: Set type attribute to sseins for insertq
18814 and insertqi.
18815
18816 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18817
18818 * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
18819 ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
18820 ssecomi_load_amdfam10, ssecomi_amdfam10,
18821 sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
18822 define_insn_reservation.
18823 (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
18824
18825 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18826
18827 * config/i386/athlon.md (cvtss2sd_load_amdfam10,
18828 cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
18829 cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
18830 cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
18831 cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
18832 cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
18833 define_insn_reservation.
18834
18835 * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
18836 cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
18837 cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
18838 cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
18839 cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
18840
18841 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18842
18843 * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
18844 athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
18845 athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
18846 (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
18847 athlon_ssemul_load_k8): Added amdfam10.
18848
18849 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18850
18851 * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
18852 (x86_sse_unaligned_move_optimal): New variable.
18853
18854 * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
18855 m_AMDFAM10.
18856 (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
18857 for unaligned vector SSE double/single precision loads for AMDFAM10.
18858
18859 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18860
18861 * config/i386/i386.h (TARGET_AMDFAM10): New macro.
18862 (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
18863 Define TARGET_CPU_DEFAULT_amdfam10.
18864 (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
18865 (processor_type): Add PROCESSOR_AMDFAM10.
18866
18867 * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
18868 processor_type in config/i386/i386.h.
18869 Enable imul peepholes for TARGET_AMDFAM10.
18870
18871 * config.gcc: Add support for --with-cpu option for amdfam10.
18872
18873 * config/i386/i386.c (amdfam10_cost): New variable.
18874 (m_AMDFAM10): New macro.
18875 (m_ATHLON_K8_AMDFAM10): New macro.
18876 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
18877 x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
18878 x86_promote_QImode, x86_integer_DFmode_moves,
18879 x86_partial_reg_dependency, x86_memory_mismatch_stall,
18880 x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
18881 x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
18882 x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
18883 x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
18884 Enable/disable for amdfam10.
18885 (override_options): Add amdfam10_cost to processor_target_table.
18886 Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
18887 processor_alias_table.
18888 (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
18889 (ix86_adjust_cost): Add code for amdfam10.
18890
18891 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
18892
18893 * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
18894 instruction set feature flag. Add new (-mpopcnt) flag for popcnt
18895 instruction. Add new SSE4A (-msse4a) instruction set feature flag.
18896 * config/i386/i386.h: Add builtin definition for SSE4A.
18897 * config/i386/i386.md: Add support for ABM instructions
18898 (popcnt and lzcnt).
18899 * config/i386/sse.md: Add support for SSE4A instructions
18900 (movntss, movntsd, extrq, insertq).
18901 * config/i386/i386.c: Add support for ABM and SSE4A builtins.
18902 Add -march=amdfam10 flag.
18903 * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
18904 * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
18905 and amdfam10.
18906 * doc/extend.texi: Add documentation for SSE4A builtins.
18907
18908 2007-02-05 Bob Wilson <bob.wilson@acm.org>
18909
18910 * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
18911
18912 2007-02-05 Richard Guenther <rguenther@suse.de>
18913
18914 * tree-vectorizer.h (vectorizable_function): Add argument type
18915 argument, change return type.
18916 * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
18917 * tree-vect-transform.c (vectorizable_function): Handle extra
18918 argument, return vectorized function decl.
18919 (build_vectorized_function_call): Remove.
18920 (vectorizable_call): Handle calls with result and argument types
18921 differing. Handle loop vectorization factor correctly.
18922 * targhooks.c (default_builtin_vectorized_function): Adjust for
18923 extra argument.
18924 * targhooks.h (default_builtin_vectorized_function): Likewise.
18925 * target.h (builtin_vectorized_function): Add argument type
18926 argument.
18927 * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
18928 extra argument, allow vectorizing of lrintf.
18929 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
18930 documentation of target hook.
18931
18932 2007-02-05 Hans-Peter Nilsson <hp@axis.com>
18933
18934 PR target/30665
18935 * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
18936 ("*andhi_clear", andu (casesi+45)): For size-changed operand where
18937 memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
18938
18939 2007-02-05 Roger Sayle <roger@eyesopen.com>
18940
18941 * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
18942 BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
18943 <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
18944 * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
18945 before canonicalizing sincos to cexpi.
18946 (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
18947
18948 2007-02-05 Roger Sayle <roger@eyesopen.com>
18949
18950 * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
18951 Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
18952 (alpha_init_builtins): Use alpha_add_builtins to process tables.
18953
18954 2007-02-05 Roger Sayle <roger@eyesopen.com>
18955
18956 * mips-tfile.c (initialize_init_file): Correct endianness test.
18957
18958 2007-02-05 Kazu Hirata <kazu@codesourcery.com>
18959
18960 * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
18961 the 'y' constraint.
18962
18963 2007-02-05 Richard Sandiford <richard@codesourcery.com>
18964
18965 * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
18966 saves in a PARALLEL before the register assignments.
18967
18968 2007-02-05 Richard Sandiford <richard@codesourcery.com>
18969
18970 * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
18971 DWARF_FRAME_RETURN_COLUMN to be a general register.
18972 * dwarf2out.c (init_return_column_size): New function, split from...
18973 (expand_builtin_init_dwarf_reg_sizes): ...here. Allow both
18974 DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
18975 to be nongeneral registers.
18976 * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
18977 integer registers.
18978 (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
18979 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
18980
18981 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
18982
18983 * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
18984
18985 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
18986
18987 * cfgloopmanip.c (loop_delete_branch_edge): Removed.
18988 (remove_path): Use can_remove_branch_p and remove_branch instead
18989 of loop_delete_branch_edge.
18990 * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
18991 (tree_transform_and_unroll_loop): Remove dead branches immediately.
18992 Update profile using scale_dominated_blocks_in_loop.
18993 * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
18994 * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
18995 (can_remove_branch_p, remove_branch): Declare.
18996 * tree-cfg.c (tree_can_remove_branch_p): New function.
18997 (tree_cfg_hooks): Add tree_can_remove_branch_p.
18998 * cfgrtl.c (rtl_can_remove_branch_p): New function.
18999 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
19000
19001 2007-02-05 Jan Hubicka <jh@suse.cz>
19002
19003 PR middle-end/30696
19004 * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
19005 nodes in cgraph, don't remove offline copy of the function.
19006
19007 2007-02-04 Jan Hubicka <jh@suse.cz>
19008
19009 * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
19010 vectors might cause maybe_lookup_element_for_expr to be called
19011 on non-sra-candidate.
19012
19013 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
19014
19015 * config/bfin/bfin-modes.def, config/bfin/bfin.c,
19016 config/bfin/bfin.md, config/bfin/predicates.md: Follow
19017 spelling conventions.
19018
19019 2007-02-04 Richard Guenther <rguenther@suse.de>
19020
19021 PR middle-end/30636
19022 * fold-const.c (try_move_mult_to_index): Make sure to not
19023 overflow one dimension of a multi-dimensional array access.
19024
19025 2007-02-04 Jan Hubicka <jh@suse.cz>
19026
19027 * passes.c (init_optimization_passes): Reindent.
19028
19029 2007-02-04 Jan Hubicka <jh@suse.cz>
19030 Eric Botcazou <ebotcazou@adacore.com>
19031
19032 * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
19033 (execute_fixup_cfg): Break out the abnormal goto code.
19034 * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
19035 (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
19036 (optimize_inline_calls): Call make_nonlocal_label_edges.
19037
19038 2007-02-04 Jan Hubicka <jh@suse.cz>
19039
19040 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
19041 true when something was changed.
19042 (rename_ssa_copies): When something was changed, do
19043 TODO_remove_unused_locals.
19044 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
19045 add TODO_remove_unused_locals when instruction was removed.
19046
19047 2007-02-04 Jan Hubicka <jh@suse.cz>
19048
19049 * ipa-inline.c (try_inline): Improve debug output; work on already
19050 inline edges too.
19051 (cgraph_decide_inlining_incrementally): Indent; improve debug output;
19052 call try_inline for already inlined edges too when flattening;
19053 inline also functions that make callee growth but overall unit size
19054 reduce.
19055
19056 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
19057
19058 * config/m32c/bitops.md, config/m32c/jump.md,
19059 config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
19060 config/m32r/m32r.h, config/m32r/m32r.md,
19061 config/m32r/predicates.md, config/m68hc11/larith.asm,
19062 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
19063 config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
19064 config/mips/mips-protos.h, config/mips/mips.c,
19065 config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
19066 config/mn10300/mn10300.h, config/mn10300/predicates.md,
19067 config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
19068 spelling conventions.
19069
19070 * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
19071 Follow spelling conventions.
19072
19073 2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
19074
19075 * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
19076 warn about C++0x compatibility.
19077
19078 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
19079
19080 * config/h8300/h8300.c, config/h8300/h8300.h,
19081 config/h8300/h8300.md: Follow spelling conventions.
19082
19083 2007-02-03 Uros Bizjak <ubizjak@gmail.com>
19084
19085 PR middle-end/30667
19086 * combine.c (try_combine): Do not substitute source operand
19087 with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
19088
19089 2007-02-03 Jan Hubicka <jh@suse.cz>
19090
19091 PR gcov-profile/30650
19092 * value-prof.c (stringop_block_profile): Fix handling of size counter;
19093 do not divide by zero for never executed counters.
19094 (tree_find_values_to_profile): Fix counters.
19095 * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
19096
19097 2007-02-03 Ian Lance Taylor <iant@google.com>
19098
19099 * lower-subreg.c (simple_move_operand): New static function,
19100 broken out of simple_move. Reject LABEL_REF, SYMBOL_REF, and HIGH
19101 operands.
19102 (simple_move): Call simple_move_operand.
19103 (find_decomposable_subregs): Add special handling of MEMs.
19104 (can_decompose_p): Rename from cannot_decompose_p. Reverse
19105 meaning of return value. If we see a hard register, test whether
19106 it can store a word_mode value. Change all callers.
19107
19108 2007-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19109
19110 * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
19111 ftrapv insns and expanders.
19112 (subdi3): Change define_expand operand 1 to arith11_operand, and
19113 operand 2 to reg_or_0_operand. Change constraints of 64-bit insn
19114 pattern to handle reg_or_0 operands. Revise 32-bit insn pattern to
19115 handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
19116 respectively.
19117
19118 PR middle-end/30174
19119 * varasm.c (notice_global_symbol): Treat global objects as weak when
19120 flag_shlib is true.
19121
19122 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19123
19124 * emit-rtl.c (dconstpi): Delete.
19125 (dconstsqrt2): New.
19126 (init_emit_once): Delete dconstpi and init dconstsqrt2.
19127 * real.h (dconstpi): Delete.
19128 (dconstsqrt2): New.
19129 * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
19130 (fold_builtin_hypot): Likewise.
19131
19132 2007-02-03 Tom Tromey <tromey@redhat.com>
19133
19134 PR driver/30246
19135 * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
19136 -gcoff3, -gxcoff3, -gvms3 implies -dD.
19137
19138 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
19139
19140 * c-decl.c, config/avr/avr.c, config/avr/avr.h,
19141 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
19142 config/mn10300/mn10300.c, config/pdp11/pdp11.h,
19143 config/rs6000/cell.md, config/rs6000/darwin.h,
19144 config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
19145 config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
19146 jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
19147 tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
19148 typos. Follow spelling conventions.
19149 * doc/invoke.texi: Follow spelling conventions.
19150
19151 2007-02-03 Roger Sayle <roger@eyesopen.com>
19152
19153 * simplify-rtx.c (simplify_relational_operation_1): Implement some
19154 canonicalization transformations that attempt to simplify integer
19155 constant comparisons to become comparisons against zero.
19156
19157 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19158
19159 * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
19160 fabs(x)*sqrt(2).
19161 * fold-const.c (fold_binary): Fix comment typos. Fold complex
19162 (x,0)-(0,y) into (x,-y). Likewise (0,y)-(x,0) into (-x,y).
19163
19164 2007-02-02 Mike Stump <mrs@apple.com>
19165
19166 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
19167 * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
19168 (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
19169 generate a branch island.
19170
19171 2007-02-02 Bob Wilson <bob.wilson@acm.org>
19172
19173 * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
19174 (xtensa_legitimate_address_p): New.
19175 (xtensa_legitimize_address): New.
19176 (xtensa_output_addr_const_extra): New.
19177 * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
19178 (BASE_REG_P): New.
19179 (REG_OK_FOR_BASE_P): Use BASE_REG_P.
19180 (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
19181 (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
19182 (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
19183 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
19184 (xtensa_legitimize_address): New.
19185 (xtensa_output_addr_const_extra): New.
19186
19187 2007-02-02 Steve Ellcey <sje@cup.hp.com>
19188
19189 * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
19190
19191 2007-02-02 Ian Lance Taylor <iant@google.com>
19192
19193 * expmed.c (expand_divmod): Add comment.
19194
19195 2007-02-02 Kazu Hirata <kazu@codesourcery.com>
19196
19197 * emit-rtl.c (renumber_insns): Remove.
19198 * flags.h: Remove the extern for flag_renumber_insns.
19199 * rtl.h: Remove the prototype for renumber_insns.
19200 * toplev.c (flag_renumber_insns): Remove.
19201
19202 2007-02-02 Hui-May Chang <hm.chang@apple.com>
19203
19204 Revert for x86 darwin:
19205 2005-06-19 Uros Bizjak <uros@kss-loka.si>
19206
19207 * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
19208 code before the following patch under TARGET_MACHO.
19209 (ix86_function_value_regno_p): Likewise.
19210
19211 2007-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19212
19213 * fold-const.c (negate_expr_p, fold_negate_expr): Handle
19214 COMPLEX_EXPR.
19215
19216 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
19217
19218 PR target/29682
19219 * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
19220 loads to general or fp registers. Add comments.
19221 * config/ia64/ia64.md (reg_pred_prefix): Add comment.
19222
19223 2007-02-02 Paolo Bonzini <bonzini@gnu.org>
19224
19225 * pointer-set.c (insert_aux): Only return insertion slot.
19226 (pointer_set_insert): Adjust.
19227 (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
19228 pointer_map_destroy, pointer_map_insert, pointer_map_contains,
19229 pointer_map_traverse): New.
19230 * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
19231 pointer_map_create, pointer_map_destroy, pointer_map_insert,
19232 pointer_map_contains, pointer_map_traverse): Declare.
19233
19234 2007-02-02 Jakub Jelinek <jakub@redhat.com>
19235
19236 PR middle-end/30473
19237 * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
19238 sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
19239
19240 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
19241
19242 * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
19243
19244 (struct _dep): New type.
19245 (dep_t): New typedef.
19246 (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
19247 (DEP_STATUS): New access macro. The macro with the same name was
19248 renamed to DEP_LINK_STATUS.
19249 (dep_init): Declare function
19250
19251 (struct _dep_link): New type.
19252 (dep_link_t): New typedef.
19253 (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
19254 (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
19255 (DEP_LINK_STATUS): New macro.
19256 (debug_dep_links): New debug function.
19257
19258 (struct _deps_list): New type.
19259 (deps_list_t): New typedef.
19260 (DEPS_LIST_FIRST): New access macro.
19261 (FOR_EACH_DEP_LINK): New cycle macro.
19262 (create_deps_list, free_deps_list, delete_deps_list): Declare
19263 functions.
19264 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
19265 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
19266 (copy_deps_list_change_con): Ditto.
19267
19268 (move_dep_link): Declare function.
19269
19270 (struct _dep_node): New type.
19271 (dep_node_t): New typedef.
19272 (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
19273
19274 (struct haifa_insn_data.back_deps): New field to hold backward
19275 dependencies of the insn.
19276 (struct haifa_insn_data.depend): Rename to forw_deps. Change its type
19277 to deps_list_t.
19278 (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
19279 Change its type to deps_list_t.
19280 (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
19281 (INSN_DEPEND): Rename to INSN_FORW_DEPS.
19282 (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
19283
19284 (INSN_COST): Move to haifa-sched.c. Use insn_cost () instead.
19285
19286 (DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment.
19287
19288 (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
19289 and all callers.
19290 (dep_cost): Declare.
19291
19292 * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
19293 (ds_to_dk, dk_to_ds): New functions.
19294
19295 (init_dep_1): New static function.
19296 (init_dep): New function.
19297 (copy_dep): New static function.
19298
19299 (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
19300 functions.
19301 (detach_dep_link): New static function.
19302 (move_dep_link): New function.
19303
19304 (dep_links_consistent_p, dump_dep_links): New static functions.
19305 (debug_dep_links): New debugging function.
19306
19307 (deps_obstack, dl_obstack, dn_obstack): New static variables.
19308
19309 (alloc_deps_list, init_deps_list): New static functions.
19310 (create_deps_list): New function.
19311 (clear_deps_list): New static function.
19312 (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
19313 (deps_list_consistent_p, dump_deps_list): New static functions.
19314 (debug_deps_list): New function.
19315 (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
19316 functions.
19317 (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
19318
19319 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
19320 use new scheduler dependencies lists.
19321 (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
19322 (sched_analyze): Ditto. Initialize dependencies lists.
19323 (add_forw_dep, compute_forward_dependences): Update to use new
19324 scheduler dependencies lists.
19325
19326 (init_dependency_caches): Init deps_obstack.
19327 (free_dependency_caches): Free deps_obstack.
19328
19329 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
19330 new scheduler dependencies lists.
19331 (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
19332 (add_back_forw_dep, delete_back_forw_dep): Ditto.
19333
19334 * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
19335 Update to use new scheduler dependencies lists.
19336 (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
19337 (debug_dependencies): Ditto.
19338 (schedule_region): Update comments.
19339
19340 * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
19341 scheduler dependencies lists.
19342 (schedule_ebb): Update comments.
19343
19344 * rtl.def (DEPS_LIST): Remove.
19345
19346 * lists.c (unused_deps_list): Remove.
19347 (free_list): Update assertions.
19348
19349 (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
19350 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
19351
19352 * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
19353 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
19354
19355 * haifa-sched.c (comments): Update.
19356 (insn_cost1): Remove. Inline the code into insn_cost ().
19357 (insn_cost): Update to use new scheduler dependencies lists. Move
19358 processing of the dependency cost to dep_cost ().
19359 (dep_cost): New function. Use it instead of insn_cost () when
19360 evaluating cost of the dependency. Use compatible interface to
19361 interact with the target.
19362 (priority): Update to use new scheduler dependencies lists.
19363 (rank_for_schedule): Ditto. Optimize heuristic that prefers the insn
19364 with greater number of insns that depend on the insn.
19365 (schedule_insn): Update to use new scheduler dependencies lists. Add
19366 code to free backward dependencies lists. Inline and optimize code
19367 from resolve_dep () - see PR28071.
19368 (ok_for_early_queue_removal): Update to use new scheduler dependencies
19369 lists. Update call to targetm.sched.is_costly_dependence hook.
19370
19371 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
19372 scheduler dependencies lists.
19373
19374 (resolve_dep): Remove. Move the logic to schedule_insn ().
19375 (init_h_i_d): Initialize dependencies lists.
19376
19377 (process_insn_depend_be_in_spec): Rename to
19378 process_insn_forw_deps_be_in_spec. Update to use new scheduler
19379 dependencies lists.
19380 (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
19381 Update to use new scheduler dependencies lists.
19382 (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
19383
19384 * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
19385 new scheduler dependencies lists.
19386 (build_intra_loop_deps): Ditto.
19387
19388 * target.h (struct _dep): Declare to use in
19389 gcc_target.sched.is_costly_dependence.
19390 (struct gcc_target.sched.adjust_cost): Fix typo.
19391 (struct gcc_target.sched.is_costly_dependence): Change signature to
19392 use single dep_t parameter instead of an equivalent triad.
19393 (struct gcc_target.sched.adjust_cost_2): Remove.
19394
19395 * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
19396
19397 * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
19398
19399 * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
19400 documentation.
19401 (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
19402
19403 * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
19404 (REG_DEP_TRUE): Document.
19405
19406 * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
19407 Change signature to correspond to the targetm.sched.adjust_cost hook.
19408 Update use in TARGET_SCHED_ADJUST_COST_2.
19409 (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
19410 (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
19411 new scheduler dependencies lists.
19412 (ia64_gen_check): Ditto.
19413
19414 * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
19415 scheduler dependencies lists.
19416
19417 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
19418 signature to correspond to the targetm.sched.is_costly_dependence hook.
19419 (is_costly_group): Update to use new scheduler dependencies lists.
19420
19421 * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
19422 instead of INSN_COST () macro.
19423
19424 2007-02-01 Ian Lance Taylor <iant@google.com>
19425
19426 * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
19427
19428 2007-02-01 Guy Martin <gmsoft@gentoo.org>
19429
19430 * pa.md (tp_load): Correct mfctl instruction syntax.
19431
19432 2007-02-01 Geoffrey Keating <geoffk@apple.com>
19433
19434 * config/rs6000/rs6000.c (rs6000_stack_info): Correct
19435 altivec_padding_size calculation on AIX. Improve comment, add
19436 assert to verify that it's right.
19437
19438 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
19439 64-bit.
19440
19441 2007-2-01 Seongbae Park <seongbae.park@gmail.com>
19442
19443 PR inline-asm/28686
19444 * global.c (global_alloc): Add mising initialization of
19445 ELIMINABLE_REGSET.
19446
19447 2007-02-01 Roger Sayle <roger@eyesopen.com>
19448
19449 * alias.c (init_alias_analysis): Correct whitespace.
19450 * bb-reorder.c (fix_edges_for_rarely_executed_code,
19451 partition_hot_cold_basic_blocks): Likewise.
19452 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
19453 expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
19454 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
19455 fold_builtin_snprintf_chk, fold_builtin_printf,
19456 fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
19457 do_mpfr_arg3, do_mpfr_sincos): Likewise.
19458 * cfgcleanup.c (cleanup_cfg): Likewise.
19459 * cfgexpand.c (tree_expand_cfg): Likewise.
19460 * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
19461 * function.c (get_next_funcdef_no): Likewise.
19462 * gengtype.c (main): Likewise.
19463 * genmodes.c (main): Likewise.
19464 * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
19465 * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
19466 * ifcvt.c (noce_emit_move_insn): Likewise.
19467 * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
19468 Likewise.
19469 * stor-layout.c (get_best_mode): Likewise.
19470 * tree-ssa-loop-niter.c (get_val_for): Likewise.
19471 * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
19472 scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
19473 perform_var_substitution, solve_graph): Likewise.
19474 * tree-vrp.c (vrp_finalize): Likewise.
19475
19476 2007-02-01 Ian Lance Taylor <iant@google.com>
19477
19478 * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
19479 high part of a paradoxical subreg, return a constant zero.
19480
19481 2007-02-01 Zdenek Dvorak <dvorakz@suse.cz>
19482
19483 * toplev.c (lang_dependent_init): Call init_set_costs.
19484 * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
19485
19486 2007-02-01 Richard Guenther <rguenther@suse.de>
19487
19488 PR middle-end/30656
19489 * fold-const.c (fold_negate_expr): Allow negating a
19490 constant if overflow does not change.
19491
19492 2007-02-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19493
19494 * doc/c-tree.texi (Expression trees): Improve markup.
19495 * doc/tm.texi (Register Classes, Addressing Modes)
19496 (Floating Point): Fix spacing after abbreviations. Fix some
19497 typos.
19498
19499 2007-02-01 Ben Elliston <bje@au.ibm.com>
19500
19501 * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
19502 * doc/contrib.texi: Likewise.
19503 * doc/install.texi: Likewise.
19504
19505 2007-01-31 Richard Henderson <rth@redhat.com>
19506 Ian Lance Taylor <iant@google.com>
19507
19508 * lower-subreg.c: New file.
19509 * rtl.def (CONCATN): Define.
19510 * passes.c (init_optimization_passes): Add pass_lower_subreg and
19511 pass_lower_subreg2.
19512 * emit-rtl.c (update_reg_offset): New static function, broken out
19513 of gen_rtx_REG_offset.
19514 (gen_rtx_REG_offset): Call update_reg_offset.
19515 (gen_reg_rtx_offset): New function.
19516 * regclass.c: Revert patch of 2006-03-05, restoring
19517 reg_scan_update.
19518 (clear_reg_info_regno): New function.
19519 * dwarf2out.c (concatn_loc_descriptor): New static function.
19520 (loc_descriptor): Handle CONCATN.
19521 * common.opt (fsplit_wide_types): New option.
19522 * opts.c (decode_options): Set flag_split_wide_types when
19523 optimizing.
19524 * timevar.def (TV_LOWER_SUBREG): Define.
19525 * rtl.h (gen_reg_rtx_offset): Declare.
19526 (reg_scan_update): Declare.
19527 * regs.h (clear_reg_info_regno): Declare.
19528 * tree-pass.h (pass_lower_subreg): Declare.
19529 (pass_lower_subreg2): Declare.
19530 * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
19531 (Optimize Options): Add -fsplit-wide-types to -O1 list. Document
19532 -fsplit-wide-types.
19533 * doc/rtl.texi (Regs and Memory): Document concat and concatn.
19534 * Makefile.in (OBJS-common): Add lower-subreg.o.
19535 (lower-subreg.o): New target.
19536
19537 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
19538
19539 * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
19540
19541 2007-01-31 Anatoly Sokolov <aesok@post.ru>
19542
19543 PR target/19087
19544 * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
19545
19546 2007-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19547
19548 PR middle-end/29335
19549 * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
19550
19551 2007-01-31 Zdenek Dvorak <dvorakz@suse.cz>
19552
19553 * cfgloop.h: Include vec-prim.h.
19554 (enum li_flags): Remove LI_ONLY_OLD.
19555 (loop_iterator): Changed.
19556 (fel_next, fel_init): Iterate over loop tree.
19557 (FOR_EACH_LOOP_BREAK): New macro.
19558 * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
19559 FOR_EACH_LOOP.
19560 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
19561 * modulo-sched.c (sms_schedule): Ditto.
19562 * tree-vectorizer.c (vectorize_loops): Ditto.
19563 * doc/loop.texi: Update information on loop numbering and behavior of
19564 FOR_EACH_LOOP wrto new loops.
19565 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
19566 add_to_evolution_1): Test nestedness of loops instead of comparing
19567 their numbers.
19568 * tree-chrec.c (chrec_fold_plus_poly_poly,
19569 chrec_fold_multiply_poly_poly, chrec_evaluate,
19570 hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
19571 reset_evolution_in_loop): Ditto.
19572 * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
19573
19574 2007-01-31 Dirk Mueller <dmueller@suse.de>
19575
19576 * c-common.c (warn_about_parentheses): Separate warning about
19577 un-parenthized sequence of comparison operators from the one
19578 which is supposed to warn about x <= y <= z.
19579
19580 2007-01-31 Uros Bizjak <ubizjak@gmail.com>
19581
19582 * optabs.h (enum optab_index): Add new OTI_isinf.
19583 (isinf_optab): Define corresponding macro.
19584 * optabs.c (init_optabs): Initialize isinf_optab.
19585 * genopinit.c (optabs): Implement isinf_optab using isinf?f2
19586 patterns.
19587 * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
19588 (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
19589 using isinf_optab.
19590 (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
19591 expand_builtin_interclass_mathfn.
19592 * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
19593 * config/i386/i386.md (UNSPEC_FXAM): New constant.
19594 (fxam<mode>2_i387): New insn pattern.
19595 (isinf<mode>2) New expander to implement isinf, isinff and isinfl
19596 built-in functions as x87 inline asm.
19597
19598 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
19599
19600 * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
19601
19602 2007-01-30 Eric Christopher <echristo@apple.com>
19603
19604 * config.gcc: Add geode.
19605
19606 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
19607
19608 * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
19609 ipa-inline.c, tree-profile.c, tree-ssa-live.c,
19610 tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
19611 value-prof.c: Fix comment typos.
19612
19613 2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19614
19615 PR c++/24745
19616 * doc/invoke.texi (Wpointer-arith): Document warning.
19617
19618 2007-01-30 Janis Johnson <janis187@us.ibm.com>
19619
19620 * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
19621 the list of discrepancies from the draft TR.
19622
19623 2007-01-30 Dirk Mueller <dmueller@suse.de>
19624
19625 PR c++/30601
19626 * doc/invoke.texi (-Wreturn-type): Update description to
19627 match new behavior.
19628
19629 2007-01-30 Richard Sandiford <richard@codesourcery.com>
19630
19631 * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
19632
19633 2007-01-30 Uros Bizjak <ubizjak@gmail.com>
19634
19635 * builtins.c (expand_builtin_int_interclass_roundingfn): New function
19636 to handle optabs that operate on floating point input argument and
19637 output to integer output.
19638 (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
19639 (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
19640 (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
19641 expand_builtin_interclass_mathfn ().
19642 * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
19643 (ilogbsi2): Remove.
19644 (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
19645 ilogbl built-in functions as x87 intrinsics.
19646
19647 2007-01-30 Richard Guenther <rguenther@suse.de>
19648
19649 PR middle-end/27657
19650 * dwarf2out.c (reference_to_unused): Query varpool if the
19651 variable was output.
19652
19653 2007-01-30 Richard Guenther <rguenther@suse.de>
19654
19655 PR middle-end/30313
19656 * passes.c (execute_one_pass): Reset in_gimple_form to not
19657 confuse non-unit-at-a-time mode.
19658
19659 2007-01-29 Roger Sayle <roger@eyesopen.com>
19660 Richard Guenther <rguenther@suse.de>
19661
19662 * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
19663 avoid undefined behaviour on overflow. Use force_fit_type_double
19664 to construct the constant with the specified TREE_OVERFLOW.
19665
19666 2007-01-29 Janis Johnson <janis187@us.ibm.com>
19667
19668 * config/dfp-bit.c: Add parameterized support for fp exceptions.
19669 * config/dfp-bit.h: Ditto.
19670
19671 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19672
19673 * c-decl.c (pop_scope): Replace warnings with call to
19674 warn_for_unused_label.
19675 * c-common.h (warn_for_unused_label): Declare.
19676 * c-common.c (warn_for_unused_label): Define.
19677
19678 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19679
19680 * tree-optimize.c (update_inlined_to_pointers): Delete unused
19681 function.
19682
19683 2007-01-29 Janis Johnson <janis187@us.ibm.com>
19684
19685 * Makefile.in (USER_H): Remove decfloat.h.
19686 * ginclude/decfloat.h: Delete, moving contents to ...
19687 * ginclude/float.h: Add support for decimal floating point,
19688 guarded by __STDC_WANT_DEC_FP__.
19689
19690 2007-01-29 Mike Stump <mrs@apple.com>
19691
19692 * doc/gccint.texi (Top): Rename Loop Representation to Loop
19693 Analysis and Representation to resolve case insensitive conflict.
19694 * doc/loop.texi (Loop Analysis and Representation): Likewise.
19695
19696 2007-01-28 Daniel Berlin <dberlin@dberlin.org>
19697
19698 * tree.h (struct tree_memory_tag): Add aliases member.
19699 (MTAG_ALIASES): New macro.
19700 * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
19701 (add_may_alias): Remove pointer-set. Update for may_aliases being
19702 a bitmap.
19703 (mark_aliases_call_clobbered): Update for may_aliases being a
19704 bitmap.
19705 (compute_tag_properties): Ditto.
19706 (create_partition_for): Ditto.
19707 (compute_memory_partitions): Ditto.
19708 (dump_may_aliases_for): Ditto.
19709 (is_aliased_with): Ditto.
19710 (add_may_alias_for_new_tag): Ditto.
19711 (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
19712 (compute_is_aliased): New function.
19713 (compute_may_aliases): Call compute_is_aliased).
19714 (init_alias_info): Initialize alias_bitmap_obstack.
19715 (union_alias_set_into): New function.
19716 (compute_flow_sensitive_aliasing): Use union_aliases_into.
19717 (have_common_aliases_p): Rewrite to take two bitmaps and use
19718 intersection.
19719 (compute_flow_insensitive_aliasing): Stop using pointer-sets.
19720 Update for bitmaps.
19721 (finalize_ref_all_pointers): Update for add_may_alias changes.
19722 (new_type_alias): Ditto.
19723 * tree-flow-inline.h (may_aliases): Return a bitmap.
19724 * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
19725 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
19726 may_aliases being a bitmap.
19727 * tree-flow.h (struct var_ann_d): Remove may_aliases member.
19728 may_aliases now returns a bitmap.
19729 * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
19730 being a bitmap.
19731 * tree-ssa-operands.c (add_virtual_operand): Update for
19732 may_aliases being a bitmap.
19733
19734 2007-01-29 Daniel Berlin <dberlin@dberlin.org>
19735
19736 PR tree-optimization/30630
19737 * tree-ssa-structalias.c (do_complex_constraint): Mark correct
19738 variable as changed.
19739
19740 2007-01-29 Simon Martin <simartin@users.sourceforge.net>
19741
19742 PR c++/28266
19743 * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
19744 expanded only once even if an error occurs.
19745
19746 2007-01-29 Ben Elliston <bje@au.ibm.com>
19747
19748 * gcov-io.h (__gcov_indirect_call_profiler): Declare.
19749 (__gcov_average_profiler): Likewise.
19750 (__gcov_ior_profiler): Likewise.
19751 (__gcov_merge_ior): Likewise.
19752
19753 2007-01-28 Jan Hubicka <jh@suse.cz>
19754
19755 * builtins.c (expand_builtin_memset): Fix typo in my last patch.
19756 * value-prof.c (stringop_block_profile): Likewise.
19757
19758 2007-01-28 Jan Hubicka <jh@suse.cz>
19759
19760 * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
19761 Add variant handling histograms; add wrapper.
19762 (clear_storage_via_libcall): Export.
19763 (emit_block_move_hints): Break out from ...; add histograms.
19764 (emit_block_move): ... this one.
19765 (clear_storage_hints): Break out from ...; add histograms.
19766 (clear_storage): ... this one.
19767 (set_storage_via_memset): Handle histogram.
19768 * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
19769 (clear_storage_hints, clear_storage_via_libcall): Declare.
19770 (set_storage_via_setmem): Update prototype.
19771 * doc/md.texi (movmem, setmem): Document new arguments.
19772
19773 * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
19774 Add new histograms.
19775 (stringop_block_profile): New global function.
19776 (tree_stringops_values_to_profile): Profile block size and alignment.
19777 * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
19778 HIST_TYPE_IOR.
19779 (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
19780 (stringop_block_profile): Declare.
19781 * builtins.c: Include value-prof.h.
19782 (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
19783 * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
19784 (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
19785 (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
19786 * profile.c (instrument_values): Add new counters.
19787 * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
19788 calls.
19789 * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
19790 (tree_init_edge_profiler): Build new profilers.
19791 (tree_gen_average_profiler, tree_gen_ior_profiler): New.
19792 (pass_tree_profile): Add dump.
19793 (tree_profile_hooks): Update.
19794 * Makefile.in (LIBGCOV): Add new constants.
19795 * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
19796 __gcov_ior_profiler): New.
19797 * i386.md (movmem/setmem expanders): Add new optional arguments.
19798
19799 2007-01-28 David Edelsohn <edelsohn@gnu.org>
19800
19801 * doc/md.texi (Standard Pattern Names): Document blockage pattern.
19802
19803 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
19804
19805 * tree-ssa-loop-unswitch.c: Include tree-inline.h.
19806 (tree_unswitch_single_loop): Pass eni_size_weights to
19807 tree_num_loop_insns.
19808 * tree-ssa-loop-manip.c: Include tree-inline.h.
19809 (can_unroll_loop_p): Pass eni_size_weights to
19810 tree_num_loop_insns.
19811 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
19812 Pass eni_size_weights to estimate_num_insns.
19813 * tree.h (init_inline_once): Export.
19814 * toplev.c (backend_init): Call init_inline_once.
19815 * cgraphunit.c (cgraph_process_new_functions,
19816 cgraph_analyze_function): Pass eni_inlining_weights to
19817 estimate_num_insns.
19818 * ipa-inline.c (compute_inline_parameters): Ditto.
19819 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
19820 to estimate_num_insns.
19821 (try_unroll_loop_completely): Pass eni_size_weights to
19822 tree_num_loop_insns.
19823 * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
19824 ot estimate_num_insns.
19825 * tree-ssa-loop-prefetch.c: Include tree-inline.h.
19826 (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
19827 * tree-inline.c (eni_inlining_weights, eni_size_weights,
19828 eni_time_weights): New variables.
19829 (init_inline_once): Initialize them.
19830 (struct eni_data): Mew.
19831 (estimate_num_insns_1, estimate_num_insns): Use weights.
19832 * tree-inline.h (struct eni_weights_d): New.
19833 (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
19834 (estimate_num_insns): Declaration changed.
19835 * cfgloop.h (tree_num_loop_insns): Declaration changed.
19836 * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
19837 tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
19838
19839 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
19840
19841 * tree-data-ref.c (conflict_fn): Assert that the number of affine
19842 relations in the conflict function is valid.
19843
19844 2007-01-27 Ian Lance Taylor <iant@google.com>
19845
19846 * common.opt: Add fstrict-overflow.
19847 * opts.c (decode_options): Set flag_strict_overflow if -O2.
19848 * flags.h (TYPE_OVERFLOW_WRAPS): Define.
19849 (TYPE_OVERFLOW_UNDEFINED): Define.
19850 (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
19851 Replace all uses.
19852 * tree.h (TYPE_TRAP_SIGNED): Don't define.
19853 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
19854 (fold_negate_expr): Likewise.
19855 (make_range): Likewise.
19856 (extract_muldiv_1): Likewise.
19857 (maybe_canonicalize_comparison): Likewise.
19858 (fold_comparison): Likewise.
19859 (fold_binary): Likewise.
19860 (tree_expr_nonnegative_p): Likewise.
19861 (tree_expr_nonzero_p): Likewise.
19862 * tree-vrp.c (compare_values): Likewise.
19863 (extract_range_from_binary_expr): Likewise.
19864 (extract_range_from_unary_expr): Likewise.
19865 * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
19866 Likewise.
19867 (nowrap_type_p): Likewise.
19868 * tree-scalar-evolution.c (simple_iv): Likewise.
19869 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
19870 (build_range_check): Likewise.
19871 (extract_muldiv_1): Likewise.
19872 (fold_comparison): Likewise.
19873 * tree-vrp.c (vrp_int_const_binop): Likewise.
19874 (extract_range_from_unary_expr): Likewise.
19875 * convert.c (convert_to_integer): Likewise.
19876 * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
19877 (fold_comparison): Likewise.
19878 (fold_binary): Likewise.
19879 * optabs.c (optab_for_tree_code): Likewise.
19880 * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
19881 * simplify-rtx.c (simplify_const_relational_operation): Check
19882 flag_strict_overflow and flag_trapv.
19883 (simplify_const_relational_operation): Likewise.
19884 * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
19885 (Optimize Options): Add -fstrict-overflow to -O2 list. Document
19886 -fstrict-overflow.
19887
19888 2007-01-27 Roger Sayle <roger@eyesopen.com>
19889
19890 * tree.c (tree_fold_gcd): Delete.
19891 * tree.h (tree_fold_gcd): Remove prototype.
19892 * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
19893 test whether one constant integer is a multiple of another. Instead
19894 call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
19895 * fold-const.c (multiple_of_p): We've determined both TOP and
19896 BOTTOM are integer constants so we can call int_const_binop directly
19897 instead of the more generic const_binop.
19898
19899 2007-01-27 Roger Sayle <roger@eyesopen.com>
19900
19901 * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
19902 1*X check that the constant hasn't overflowed, to preserve the
19903 TREE_OVERFLOW bit.
19904 (round_up): Provide an efficient implementation when rouding-up an
19905 INTEGER_CST to a power-of-two.
19906
19907 2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19908
19909 * doc/sourcebuild.texi: Add comma for clarity.
19910 * doc/extend.texi: Fix some typos.
19911 * doc/passes.texi: Likewise.
19912 * doc/cppinternals.texi: Likewise.
19913 * doc/c-tree.texi: Likewise.
19914 * doc/tree-ssa.texi: Likewise.
19915 * doc/install.texi: Likewise.
19916
19917 2007-01-27 Jan Hubicka <jh@suse.cz>
19918
19919 * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
19920 (pass_sra): Do not require alias information.
19921 * passes.c (init_optimization_passes): Add SRA
19922
19923 2007-01-27 Steven Bosscher <steven@gcc.gnu.org>
19924
19925 * tracer.c (rest_of_handle_tracer): We already cleaned
19926 up the CFG in tracer() so don't do it here again.
19927 * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
19928 cleanup_cfg here, either. And don't call renumber_insns.
19929
19930 * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
19931 and BB_HEAD are in the insn stream here. Instead make sure
19932 that BB_INSN is valid on all insns. Also, do check here that
19933 there are no pending branch predictions...
19934 (rtl_verify_flow_info): ...instead of doing it here. Checks
19935 for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
19936 here.
19937
19938 2007-01-26 Roger Sayle <roger@eyesopen.com>
19939
19940 * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
19941 function to simplify/factorize operand order canonicalization.
19942 (ix86_fixup_binary_operands): Reorganize using the above function.
19943 (ix86_binary_operator_ok): Likewise.
19944
19945 2007-01-27 Jakub Jelinek <jakub@redhat.com>
19946
19947 * genattrtab.c (struct attr_value_list, insn_code_values): Move to
19948 file scope from optimize_attrs.
19949 (simplify_test_exp): If insn_code_values is not NULL, use it to speed
19950 up search.
19951 (optimize_attrs): Clear insn_code_values after freeing it.
19952
19953 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
19954
19955 * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
19956 a parts.base assignment.
19957
19958 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
19959
19960 * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
19961 (compute_subscript_distance, initialize_data_dependence_relation,
19962 finalize_ddr_dependent, analyze_ziv_subscript,
19963 analyze_siv_subscript_cst_affine,
19964 compute_overlap_steps_for_affine_univar,
19965 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
19966 analyze_siv_subscript, analyze_miv_subscript,
19967 analyze_overlapping_iterations, subscript_dependence_tester_1,
19968 compute_self_dependence, free_dependence_relation): Work
19969 with affine_fn instead of chrecs.
19970 (dump_affine_function, dump_conflict_function, affine_function_equal_p,
19971 common_affine_function, affine_function_base,
19972 affine_function_constant_p, affine_fn_op, affine_fn_plus,
19973 affine_fn_minus, affine_fn_free, conflict_fn_not_known,
19974 conflict_fn_no_dependence, free_conflict_function, free_subscripts,
19975 conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
19976 (all_chrecs_equal_p): Removed.
19977 * tree-data-ref.h (affine_fn, conflict_function): New types.
19978 (struct subscript): Change type of conflicting_iterations_in_a
19979 and conflicting_iterations_in_b.
19980
19981 2007-01-26 Steve Ellcey <sje@cup.hp.com>
19982
19983 PR other/30182
19984 * config/pa/pa.h (TARGET_HPUX_11): New.
19985 * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
19986 * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
19987
19988 2007-01-26 Daniel Berlin <dberlin@dberlin.org>
19989 Richard Guenther <rguenther@suse.de>
19990
19991 * tree-ssa-structalias.c (solve_graph): Handle case
19992 we merged the variable to another.
19993
19994 2007-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19995
19996 * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
19997 functions.
19998
19999 * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
20000 catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
20001
20002 2007-01-25 DJ Delorie <dj@redhat.com>
20003
20004 * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
20005 allow changes to modes which don't fit in those registers.
20006
20007 * reload1.c (choose_reload_regs): Check for invalid subregs before
20008 computing their locations, not after.
20009
20010 2007-01-25 Geoffrey Keating <geoffk@apple.com>
20011
20012 PR 25127
20013 * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
20014 save Altivec registers in an eh_return function.
20015 (compute_vrsave_mask): Likewise.
20016 (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
20017 for saving Altivec registers.
20018 (rs6000_emit_prologue): Don't allocate stack twice in
20019 eh_return function. Correct expected value of altivec_save_offset
20020 when using save_world. Describe save of R0 to stack when using
20021 save_world. Describe stack pointer adjustment when using
20022 save_world. Remove duplicated eh_return parameter register saving.
20023 Update sp_offset variable after save_world.
20024 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
20025 darwin-world.asm.
20026 (LIB2FUNCS_EXTRA): Add darwin-world.asm.
20027 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
20028 implies Altivec.
20029
20030 2007-01-25 Steve Ellcey <sje@cup.hp.com>
20031
20032 * config.gcc (ia64*-*-hpux*): Make posix threads the default.
20033
20034 2007-01-25 Steve Ellcey <sje@cup.hp.com>
20035
20036 PR other/30182
20037 * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
20038 * config/ia64/ia64.c (ia64_init_builtins): Ditto.
20039
20040 2007-01-25 Richard Guenther <rguenther@suse.de>
20041
20042 * doc/invoke.texi (-Wcoverage-mismatch): Document.
20043 * common.opt (-Wcoverage-mismatch): New warning option.
20044 * coverage.c (get_coverage_counts): Ignore coverage mismatch
20045 if -Wcoverage-mismatch is given.
20046
20047 2007-01-25 Razya Ladelsky <razya@il.ibm.com>
20048
20049 * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
20050 (ipcp_driver): Change to static definition.
20051 Add dumping of the ifunctions.
20052 (constant_val_insert): Remove unused parameter. Support for SSA.
20053 (ipcp_propagate_const): Support for SSA.
20054 (ipcp_profile_bb_print): Print only analyzed nodes.
20055 (ipcp_replace_map_create): Remove support for Fortran constant
20056 for now.
20057 * ipa-prop.c (ipa_method_modify_stmt,
20058 ipa_callsite_compute_param): Support for SSA.
20059 * ipa-prop.h (ipcp_driver): Remove declaration.
20060 (IS_VALID_TREE_MAP_INDEX): Add define.
20061
20062 2007-01-24 Geoffrey Keating <geoffk@apple.com>
20063
20064 * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
20065
20066 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20067
20068 PR middle-end/30447
20069 * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
20070 constant argument to cabs and do it without checking for
20071 -funsafe-math-optimizations.
20072
20073 2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
20074
20075 * c-common.h (RID_FIRST_CXX0X): New.
20076 (RID_LAST_CXX0X): New.
20077 * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
20078 by -Wall.
20079 * c.opt (Wc++0x-compat): New.
20080 * doc/invoke.texi (-Wc++0x-compat): Document.
20081
20082 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20083
20084 * builtins.c (fold_builtin_carg): New.
20085 (fold_builtin_1): Use it.
20086
20087 2007-01-24 Jan Hubicka <jh@suse.cz>
20088
20089 * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
20090
20091 * ipa-inline.c (initial_insns, max_insns): Delete.
20092 (compute_max_insns): New function.
20093 (cgraph_decide_inlining_of_small_function): Use it; take minimal
20094 amount of insns as base for code growth.
20095 (cgraph_decide_inlining): Make initial_insns local; do not compute
20096 max_insns.
20097 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
20098 * doc/invoke.texi (inline-unit-growth): Update docs.
20099
20100 2007-01-24 Jakub Jelinek <jakub@redhat.com>
20101
20102 * config/i386/i386.h (x86_cmpxchg16b): Remove const.
20103 (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
20104 * config/i386/i386.c (x86_cmpxchg16b): Remove const.
20105 (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b
20106 for CPUs that have PTA_CX16 set.
20107
20108 PR middle-end/27416
20109 * gimplify.c (omp_check_private): New function.
20110 (gimplify_scan_omp_clauses): Use it for
20111 firstprivate/lastprivate/reduction.
20112
20113 PR middle-end/30494
20114 * gimplify.c (omp_add_variable): Don't call omp_notice_variable
20115 on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
20116
20117 PR middle-end/30421
20118 * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
20119 If lower_lastprivate_clauses emits some statements, append them
20120 to dlist rather than body_p and to body_p append an initializer.
20121 (lower_omp_for): Adjust caller.
20122
20123 2007-01-24 Steve Ellcey <sje@cup.hp.com>
20124
20125 * target.h (globalize_decl_name): New.
20126 * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
20127 * output.h (default_globalize_decl_name): New.
20128 * varasm.c (asm_output_bss): Use globalize_decl_name instead of
20129 globalize_label.
20130 (globalize_decl): Ditto.
20131 (default_globalize_decl_name): New.
20132 * config/ia64/ia64.c (ia64_globalize_decl_name): New.
20133 (ia64_handle_version_id_attribute): New.
20134 (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
20135 (ia64_asm_output_external): Use globalize_decl_name instead
20136 of globalize_label.
20137 * doc/extend.texi (version_id): New pragma.
20138 * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
20139
20140 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
20141
20142 * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
20143 _uleb128_t and _Unwind_SWord with _sleb128_t.
20144 * unwind-dw2.c (extract_cie_info, execute_stack_op,
20145 execute_cfa_program, uw_frame_state_for, uw_update_context_1):
20146 Likewise.
20147 * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
20148 * unwind-pe.h (read_uleb128, read_sleb128,
20149 read_encoded_value_with_base): Likewise.
20150 * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
20151
20152 2007-01-24 Richard Guenther <rguenther@suse.de>
20153
20154 * builtins.c (expand_builtin_cexpi): Get the fndecl
20155 for cexp in the correct way.
20156
20157 2007-01-24 Jan Hubicka <jh@suse.cz>
20158
20159 * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
20160 of calls.
20161
20162 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
20163
20164 * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
20165 (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
20166 __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
20167 __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
20168 __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
20169 __SIZEOF_PTRDIFF_T__.
20170 * doc/cpp.texi: Documentation for the new builtin macros added.
20171
20172 2007-01-24 Uros Bizjak <ubizjak@gmail.com>
20173
20174 * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
20175 log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
20176 instead of operands[2] to avoid access past the end of array.
20177
20178 2007-01-24 Richard Sandiford <richard@codesourcery.com>
20179
20180 * reload1.c (emit_reload_insns): Pass the reload register
20181 for a non-spill output reload through forget_old_reloads_1.
20182
20183 2007-01-23 Joseph Myers <joseph@codesourcery.com>
20184
20185 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
20186 _SOFT_DOUBLE if doubles use software floating-point.
20187 * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
20188 double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
20189 * config/rs6000/darwin-ldouble.c: Also compile functions for
20190 hard-float without FPRs. Use fmsub function for all __NO_FPRS__
20191 cases. Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
20192 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
20193 commented-out long double override.
20194 (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
20195 * config/rs6000/eabispe.h: Likewise.
20196 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
20197 long double for non-SPE.
20198 (rs6000_handle_option): Likewise.
20199 (invalid_e500_subreg): Disallow more subregs involding DImode,
20200 DFmode, TImode or TFmode.
20201 (rs6000_legitimate_offset_address_p): Check TFmode offsets for
20202 E500 double.
20203 (legitimate_lo_sum_address_p): Also check for TFmode for E500
20204 double.
20205 (rs6000_legitimize_address): Also handle TFmode for E500 double.
20206 (rs6000_legitimize_reload_address): Also handle TFmode for E500
20207 double.
20208 (rs6000_legitimate_address): Also check for TFmode for E500
20209 double.
20210 (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
20211 (spe_build_register_parallel): Handle TFmode and TCmode.
20212 (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
20213 double.
20214 (function_arg): Handle TFmode and TCmode for E500 double.
20215 (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
20216 in general.
20217 (print_operand): Handle TFmode and TImode for %y.
20218 (rs6000_generate_compare): Handle TFmode comparisons for E500
20219 double.
20220 (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
20221 (rs6000_function_value): Handle TFmode and TCmode for E500 double.
20222 (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
20223 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
20224 TFmode for E500 double.
20225 * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
20226 (floatsidf2): Enable for E500 double.
20227 (movtf_softfloat): Use rs6000_nonimmediate_operand.
20228 (extenddftf2): Change to extenddftf2_fprs.
20229 (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
20230 depending on TARGET_E500_DOUBLE.
20231 (extendsftf2): Enable for E500 double.
20232 (trunctfdf2): Enable for E500 double.
20233 (trunctfsf2): Change to trunctfsf2_fprs.
20234 (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
20235 depending on TARGET_E500_DOUBLE.
20236 (floatsitf2): Enable for E500 double.
20237 (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
20238 (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
20239 gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
20240 (negtf2): Change to negtf2_internal.
20241 (negtf2): New expander.
20242 (abstf2): Enable for E500 double. Call gen_spe_abstf2_tst,
20243 gen_spe_abstf2_cmp or gen_abstf2_internal depending on
20244 TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
20245 (movdi_internal32): Use rs6000_nonimmediate_operand.
20246 (unnamed splitter): Likewise.
20247 * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
20248 TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
20249 (SPE64TF, DITI): New mode macros.
20250 (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
20251 modes.
20252 (frob_tf_ti): New.
20253 (frob_<mode>_di_2): New.
20254 (frob_tf_di_8_2): New.
20255 (frob_di_df): Change to frob_di_<mode>; allow more modes.
20256 (frob_ti_tf): New.
20257 (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
20258 more modes.
20259 (frob_ti_<mode>_8_2): New.
20260 (frob_ti_tf_2): New.
20261 (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
20262 mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
20263 TFmode.
20264 (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
20265 mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
20266 (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
20267 spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
20268 spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
20269 (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
20270 tsttflt_gp): New.
20271
20272 2007-01-23 Ian Lance Taylor <iant@google.com>
20273
20274 * Makefile.in (OBJS-common): Reformat, alphabetize, but put
20275 insn-*.o first.
20276 (OBJS-archive): Reformat, alphabetize.
20277 (OBJS): Change out_object_file to OBJS-md.
20278
20279 2007-01-23 Uros Bizjak <ubizjak@gmail.com>
20280
20281 * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
20282 JUMP_P and CALL_P predicates where applicable.
20283 * config/i386/i386.c: Ditto.
20284 * config/i386/i386.md: Ditto.
20285 * config/i386/mmx.md: Ditto.
20286 * config/i386/predicates.md: Ditto.
20287
20288 2007-01-22 Andreas Schwab <schwab@suse.de>
20289
20290 * config/m68k/m68k.h: Fix comment.
20291
20292 2007-01-22 Jan Hubicka <jh@suse.cz>
20293
20294 * passes.c (init_optimization_passes): Do not rerun
20295 pass_early_warn_uninitialized.
20296
20297 2007-01-22 Richard Guenther <rguenther@suse.de>
20298
20299 PR tree-optimization/30038
20300 * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
20301 function.
20302 (execute_cse_sincos_1): Likewise.
20303 (execute_cse_sincos): Likewise.
20304 (gate_cse_sincos): Likewise.
20305 (pass_cse_sincos): New pass CSEing sin() and cos() calls using
20306 the cexpi() canonicalization of sincos().
20307 * tree-pass.h (pass_cse_sincos): Declare.
20308 * passes.c (init_optimization_passes): New pass pas_cse_sincos.
20309
20310 2007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
20311
20312 PR rtl-optimization/29329
20313 * combine.c (replaced_rhs_insn): Rename to i2mod.
20314 (replaced_rhs_value): Rename to i2mod_new_rhs.
20315 (i2mod_old_rhs): New global variable.
20316 (combine_instructions): Adjust for above change. Save a copy of
20317 the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
20318 note are substituted in the second instruction.
20319 (distribute_notes) <REG_DEAD>: Adjust for above change. Do not
20320 ditch the note if it pertains to the second eliminated register
20321 and this register is mentioned in i2mod_old_rhs.
20322
20323 Revert:
20324 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
20325
20326 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
20327 the insn to which the note was originally attached.
20328
20329 2007-01-21 Jan Hubicka <jh@suse.cz>
20330
20331 * ipa-inline.c (inlining_mode): Comment, move up.
20332 (cgraph_decide_inlining_incrementally): Do not perform inlining
20333 itself; fix handling of flattening of self recursive functions.
20334 (cgraph_find_cycles): Remove.
20335 (cgraph_flatten_node): Remove.
20336 (cgraph_decide_inlining): Use incremental inliner to handle flattening.
20337 (try_inline): New function.
20338 (cgraph_early_inlining): Update call of
20339 cgraph_decide_inlining_incrementally. Apply inlining here.
20340 (apply_inline): Update call of cgraph_decide_inlining_incrementally.
20341
20342 2007-01-21 Dirk Mueller <dmueller@suse.de>
20343
20344 PR bootstrap/30511
20345 * tree-vrp.c (check_array_bounds): do not warn
20346 about ADDR_EXPR's of ARRAY_REF's which are immediately
20347 used in binary expressions.
20348
20349 2007-01-21 Ira Rosen <irar@il.ibm.com>
20350
20351 * tree-vectorizer.h (struct _stmt_vec_info): Add new field
20352 read_write_dep and macros for its access.
20353 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
20354 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
20355 argument, call vect_check_interleaving for every independent pair of
20356 data-refs. Mark loads that access the same memory location as a store
20357 in the loop.
20358 (vect_check_dependences): Remove.
20359 (vect_analyze_data_ref_dependences): Remove vect_check_dependences
20360 call, fix the call to vect_analyze_data_ref_dependence.
20361 (vect_analyze_data_ref_access): For statements that access the same
20362 data-ref, check that they are not stores; for loads, check that there
20363 is no store that access the same location.
20364
20365 2007-01-20 Roger Sayle <roger@eyesopen.com>
20366 Joseph Myers <joseph@codesourcery.com>
20367
20368 * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
20369 (-fdump-rtl-stack): Likewise.
20370 (-fno-signed-zeros): Use @minus{} for a minus sign. Correct typo.
20371 (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
20372 (-mpt-fixed): Use @minus{} for minus sign.
20373 (Using Precompiled Headers): Fix under/overfull hbox.
20374
20375 2007-01-20 Jan Hubicka <jh@suse.cz>
20376
20377 * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
20378 place within annotation.
20379
20380 2007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20381
20382 * pa.c (output_move_double): Change array size of xoperands to 4.
20383
20384 2007-01-20 Jan Hubicka <jh@suse.cz>
20385
20386 * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
20387 as temporary.
20388
20389 2007-01-19 Ian Lance Taylor <iant@google.com>
20390
20391 * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
20392 constant to unsigned HOST_WIDE_INT before negating.
20393
20394 2007-01-19 Ian Lance Taylor <iant@google.com>
20395
20396 * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
20397 to unsigned.
20398 (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
20399 (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
20400 (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
20401 (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
20402 (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
20403 (realloc_vdef, realloc_vuse): Change second parameter to
20404 unsigned.
20405 (ssa_operand_iterator_d): Change vuse_index and mayuse_index
20406 fields to unsigned.
20407 * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
20408 unsigned. Change x and lim locals to unsigned.
20409 (realloc_vdef, realloc_vuse): Change num_elem parameter to
20410 unsigned.
20411 (finalize_ssa_vuse_ops): Change old_i local to unsigned.
20412 (copy_virtual_operands): Change i and n locals to unsigned.
20413
20414 2007-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20415
20416 PR middle-end/29335
20417 * builtins.c (fold_builtin_1): Handle builtin fdim.
20418
20419 2007-01-20 Jan Hubicka <jh@suse.cz>
20420
20421 * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
20422 * tree-ssa-structalias.c (compute_points_to_sets): Do call
20423 init_alias_heapvars.
20424 (init_alias_heapvars): Initialize only when not already initialized.
20425 (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
20426
20427 2007-01-19 Roger Sayle <roger@eyesopen.com>
20428
20429 * common.opt (fsigned-zeros): New command line option.
20430 * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
20431 of flag_unsafe_math_optimizations.
20432 * opts.c (set_fast_math_flags): The -ffast-math command line option
20433 implies -fno-signed-zeros.
20434 (fast_math_flags_set_p): Likewise.
20435
20436 * doc/invoke.texi: Document new -fno-signed-zeros option, and update
20437 the documentation of -ffast-math appropriately. Wrap long lines.
20438
20439 2007-01-19 Steve Ellcey <sje@cup.hp.com>
20440
20441 * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
20442 * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
20443
20444 2007-01-19 Tomas Bily <tbily@suse.cz>
20445
20446 * cgraphunit.c (cgraph_finalize_function): Updating of pid
20447 * tree-profile.c:
20448 (tree_init_ic_make_global_vars): New function
20449 (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
20450 (tree_gen_ic_profiler): New function
20451 (tree_gen_ic_func_profiler): New function
20452 (tree_profiling): Added calling of tree_gen_ic_func_profiler
20453 (tree_profile_hooks): Added hook for indirec/virtual calls
20454 * value-prof.c (tree_find_values_to_profile): New case for
20455 indirect calls
20456 (tree_values_to_profile): Call for determining indirect/virtual
20457 counters
20458 (tree_indirect_call_to_profile): New function
20459 (tree_ic_transform): New function
20460 (tree_ic): New function
20461 (find_func_by_pid): New function
20462 (init_pid_map): New function
20463 (tree_value_profile_transformations): Added check for
20464 indirect/virtual call transformation
20465 * value-prof.h (enum hist_type): New counter type for
20466 indirect/virtual calls
20467 (profile_hooks): Added new hook for profiling indirect/virtual
20468 calls
20469 * profile.c (instrument_values): New case for indirect/virtual
20470 call added
20471 * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
20472 (GCOV_COUNTER_V_INDIR): New counter type
20473 (GCOV_COUNTER_NAMES): New name of counter "indirect" added
20474 (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
20475 call added
20476 * cgraph.c: Definition of cgraph_max_pid
20477 (cgraph_create_node): Default init of pid attribute
20478 * cgraph.h: Declaration of cgraph_max_pid
20479 (struct cgraph_node): Added pid attribute
20480 * libgcov.c (__gcov_indirect_call_profiler): New function
20481 (__gcov_one_value_profiler_body): New function
20482 (__gcov_one_value_profiler): Body was moved to
20483 __gcov_one_value_profiler_body and calls it
20484
20485 2007-01-19 Basile Starynkevitch <basile@starynkevitch.net>
20486
20487 * doc/gty.texi (Options): Document the mark_hook option to GTY.
20488 * gengtype.c (write_types_data, write_func_for_structure,
20489 write_types, ggc_wtd, pch_wtd): Add skip_hooks to
20490 write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
20491 (walk_type, write_func_for_structure): Generate the mark_hook if
20492 needed.
20493
20494 2007-01-19 Jan Hubicka <jh@suse.cz>
20495
20496 * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
20497 'early' argument take inlining mode argument specifying whether to
20498 inline for size/speeed or all functions; add support for flattening;
20499 improve dumpting.
20500 (cgraph_early_inlining): Update call of decide_inlining_incrementally.
20501
20502 2007-01-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20503
20504 PR c++/17947
20505 * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
20506 the name of the declared identifier.
20507
20508 2007-01-19 Dirk Mueller <dmueller@suse.de>
20509
20510 * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
20511 result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
20512 duplicate evaluation.
20513
20514 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
20515
20516 * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
20517 Macroize expander using X87MODEF12 mode macro. Extend operand 1
20518 to XFMode, use acosxf2 and truncate result to requested mode.
20519 Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
20520 (asin<mode>2): Similarly, with asin expanders.
20521 (*fscalexf4_i387): Rename from *fscalexf4.
20522 (expNcorexf3): New expander.
20523 (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
20524 (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
20525 X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and
20526 truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
20527 patterns for SSE math.
20528 (exp10<mode>2): Similarly, with exp10 expanders.
20529 (exp2<mode>2): Similarly, with exp2 expanders.
20530 (expm1<mode>2): Similarly, with expm1 expanders.
20531 (ldexp<mode>3): Similarly, with ldexp expanders.
20532 (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
20533 Use gen_truncxf<mode>2_i387_noop to truncate result.
20534
20535 2007-01-19 Richard Sandiford <richard@codesourcery.com>
20536
20537 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
20538 for ColdFire targets.
20539
20540 2007-01-19 Nathan Sidwell <nathan@codesourcery.com>
20541 Richard Sandiford <richard@codesourcery.com>
20542
20543 * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
20544 (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
20545 (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
20546 * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
20547 (M68K_STATIC_CHAIN_REG_NAME): Likewise.
20548 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
20549
20550 2007-01-19 Richard Sandiford <richard@codesourcery.com>
20551
20552 * config/m68k/m68k.md (adddi_dilshr32): Rename to...
20553 (*adddi_dilshr32): ...this. Fix formatting. Remove commented-out
20554 non-canonical pattern. Restrict to !TARGET_COLDFIRE.
20555 (*adddi_dilshr32_cf): New pattern.
20556 (adddi3, subdi3): Remove first alternatives.
20557
20558 2007-01-19 Richard Sandiford <richard@codesourcery.com>
20559
20560 * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
20561 implemented using move.l, do not use its cc result for floating-point
20562 comparisons.
20563
20564 2007-01-19 Richard Sandiford <richard@codesourcery.com>
20565
20566 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
20567 from accepting 's' constraints if flag_pic.
20568
20569 2007-01-19 Richard Sandiford <richard@codesourcery.com>
20570
20571 * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
20572 (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
20573 (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
20574 condition from TARGET_68881 to TARGET_HARD_FLOAT.
20575
20576 2007-01-19 Sandra Loosemore <sandra@codesourcery.com>
20577
20578 * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
20579 ColdFire alternatives.
20580 * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
20581 * config/m68k/m68k.md (clzsi2): Define for ColdFire
20582 architectures that support ff1 instruction.
20583
20584 2007-01-19 Richard Sandiford <richard@codesourcery.com>
20585 Julian Brown <julian@codesourcery.com>
20586
20587 * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
20588 * config/m68k/m68k.md (*movsi_cfv4): Fold into...
20589 (*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'.
20590 Add commentary.
20591
20592 2007-01-19 Richard Sandiford <richard@codesourcery.com>
20593
20594 * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
20595 and return a bool.
20596 (output_move_const_into_data_reg, output_move_simode_const): Delete.
20597 * config/m68k/m68k.c (const_method, const_int_cost): Take a
20598 HOST_WIDE_INT instead of an rtx.
20599 (m68k_rtx_costs): Update call accordingly.
20600 (output_move_const_into_data_reg): Likewise. Fix formatting.
20601 (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
20602 Return a bool.
20603 (output_move_simode_const): Update calls after above changes.
20604 Rework to use automatic variables and predicates like MEM_P.
20605 * config/m68k/m68k.md (pushexthisi_const): Update call to
20606 valid_mov3q_const.
20607
20608 2007-01-19 Dirk Mueller <dmueller@suse.de>
20609
20610 * tree-ssa-alias.c (perform_var_substitution): Fix typo
20611 in dump_flags test.
20612
20613 2007-01-19 Richard Guenther <rguenther@suse.de>
20614
20615 * builtins.c (expand_builtin_cexpi): Fall back to expanding
20616 via cexp in case sincos is not available.
20617
20618 2007-01-19 Richard Guenther <rguenther@suse.de>
20619
20620 * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
20621 * defaults.h (TARGET_HAS_SINCOS): Default to off.
20622 * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
20623 * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
20624 * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
20625 * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
20626 * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
20627 * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
20628
20629 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
20630
20631 * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
20632 New insn patterns.
20633 (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
20634 (atan2xf3): Directly generate RTL pattern.
20635 (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
20636 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
20637 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
20638 disable patterns for SSE math.
20639 (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
20640 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
20641 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
20642 disable patterns for SSE math.
20643
20644 2007-01-19 Alexandre Oliva <aoliva@redhat.com>
20645
20646 * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
20647
20648 2007-01-18 Roger Sayle <roger@eyesopen.com>
20649
20650 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
20651 VIEW_CONVERT_EXPR to the same type as it's operand.
20652
20653 2007-01-18 David Edelsohn <edelsohn@gnu.org>
20654
20655 * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
20656 configured for long double 128.
20657
20658 2007-01-18 Mike Stump <mrs@apple.com>
20659
20660 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
20661 error.
20662
20663 2007-01-18 Michael Meissner <michael.meissner@amd.com>
20664
20665 * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
20666 type correct.
20667
20668 2007-01-18 Jan Hubicka <jh@suse.cz>
20669
20670 * tree-ssa-operands.c (vop_free_bucket_size): Never return value
20671 greater than NUM_VOP_FREE_BUCKETS.
20672
20673 2007-01-18 Daniel Berlin <dberlin@dberlin.org>
20674
20675 * tree-ssa-structalias.c: Update comments.
20676 (ptabitmap_obstack): Removed.
20677 (pta_obstack): New.
20678 (oldpta_obstack): Ditto.
20679 (stats): Add a few members.
20680 (struct variable_info): Remove node, complex, address_taken, and
20681 indirect_target members. Add oldsolution member.
20682 (new_var_info): Do not initialize removed members.
20683 (constraint_expr_type): Remove INCLUDES.
20684 (constraint_graph): Add size, implicit_preds, rep,
20685 indirect_cycles, eq_rep, label, direct_nodes, and complex members.
20686 (FIRST_REF_NODE): New macro.
20687 (LAST_REF_NODE): Ditto.
20688 (FIRST_ADDR_NODE): Ditto.
20689 (find): New function.
20690 (unite): Ditto.
20691 (dump_constraint): Do not handle INCLUDES.
20692 (insert_into_complex): Do not insert duplicate constraints.
20693 (condense_varmap_nodes): Renamed and rewritten into ...
20694 (merge_node_constraints): This. Also fix bug in handling of
20695 offseted copy constraints.
20696 (clear_edges_for_node): No longer need to deal with preds at all,
20697 or removing associated preds/succs.
20698 (merge_graph_nodes): Deal with indirect_cycles.
20699 Don't deal with predecessors.
20700 (add_implicit_graph_edge): New function.
20701 (add_pred_graph_edge): Ditto.
20702 (add_graph_edge): Don't deal with predecessors.
20703 (build_constraint_graph): Removed.
20704 (build_pred_graph): New function.
20705 (build_succ_graph): Ditto.
20706 (struct scc_info): Removed in_component. Added roots, dfs, and
20707 node_mapping. Remove visited_index, unification_queue.
20708 (scc_visit): Deal with union-find we do now.
20709 Deal with cycles with REF nodes.
20710 (collapse_nodes): Renamed and rewritten to ...
20711 (unify_nodes): This.
20712 (process_unification_queue): Removed.
20713 (topo_visit): Cleanup
20714 (do_da_constraint): Use find.
20715 (do_sd_constraint): Ditto.
20716 (do_ds_constraint): Ditto.
20717 (do_complex_constraint): Ditto.
20718 (init_scc_info): Update for removed and added members.
20719 (find_and_collapse_graph_cycles): Renamed and rewritten into ...
20720 (find_indirect_cycles): This.
20721 (equivalence_class): New variable.
20722 (label_visit): New function.
20723 (perform_variable_substitution): Rewritten.
20724 (free_var_substitution_info): New function.
20725 (find_equivalent_node): Ditto.
20726 (move_complex_constraints): Ditto.
20727 (eliminate_indirect_cycles): Ditto.
20728 (solve_graph): Only propagate changed bits.
20729 Use indirect cycle elimination.
20730 Use find.
20731 (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
20732 (tree_id_eq): Renamed to ...
20733 (tree_vi_eq): This. Update for member change
20734 (insert_id_for_tree): Renamed and rewritten to ...
20735 (insert_vi_for_tree): This.
20736 (lookup_id_for_tree): Renamed and rewritten to ...
20737 (lookup_vi_for_tree): This.
20738 (get_id_for_tree): Renamed and rewritten to ...
20739 (get_vi_for_tree): Ditto.
20740 (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
20741 (process_constraint): Don't handle INCLUDES.
20742 Remove special ADDRESSOF case.
20743 (find_func_aliases): Rewrite to use vi functions instead of id
20744 ones.
20745 (create_function_info_for): Ditto.
20746 (create_variable_info_for): Ditto.
20747 (intra_create_variable_infos): Ditto.
20748 (merge_smts_into): Ditto.
20749 (find_what_p_points_to): Ditto.
20750 (init_base_vars): Ditto.
20751 (init_alias_vars): Ditto.
20752 (remove_preds_and_fake_succs): New function.
20753 (dump_sa_points_to_info): Dump new stats.
20754 (dump_solution_for_var): Use find.
20755 (set_used_smts): Fix formatting.
20756 (compute_points_to_sets): Updated for new functions.
20757 (ipa_pta_execute): Ditto.
20758
20759 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
20760 Richard Sandiford <richard@codesourcery.com>
20761
20762 * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
20763 parallels.
20764 * calls.c (expand_call): If the return value is a PARALLEL,
20765 extract its first member.
20766 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
20767 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
20768 use FUNCTION_EXTRA_EPILOGUE.
20769 (m68k_function_value): Return a PARALLEL if the return value
20770 is of a pointer type.
20771 * config/m68k/netbsd-elf.h (current_function_returns_pointer)
20772 (FUNCTION_EXTRA_EPILOGUE): Remove.
20773 * config/m68k/m68k.md (D0_REG): New constant.
20774
20775 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
20776
20777 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
20778 output a NOP for empty epilogues.
20779
20780 2007-01-18 Richard Sandiford <richard@codesourcery.com>
20781
20782 * config/m68k/m68k.c (m68k_use_return_insn): Update comments
20783 before function. Extend register save check to include all
20784 registers, not just integer ones.
20785
20786 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
20787
20788 * config/m68k/m68k-protos.h (use_return_insn): Rename to...
20789 (m68k_use_return_insn): ...this.
20790 * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
20791 * config/m68k/m68k.c (use_return_insn): Rename to...
20792 (m68k_use_return_insn): ...this.
20793 * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
20794 of USE_RETURN_INSN.
20795
20796 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
20797
20798 * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
20799 nearest even, fix denormal rounding overflow.
20800
20801 2007-01-18 Richard Sandiford <richard@codesourcery.com>
20802
20803 * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
20804 f%$smove and f%$move.
20805 (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
20806 (extendsfdf2_cf): Use fdmove instead of f%&move.
20807 (truncdfsf2_cf): Use fsmove instead of f%$smove.
20808 (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
20809
20810 2007-01-18 Richard Sandiford <richard@codesourcery.com>
20811
20812 * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
20813 GPR<-GPR moves.
20814
20815 2007-01-18 Richard Sandiford <richard@codesourcery.com>
20816
20817 * real.h (real_format): Add a canonical_nan_lsbs_set field.
20818 (coldfire_single_format): Declare.
20819 (coldfire_double_format): Likewise.
20820 * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
20821 of qnan_msb_set to determine the lower bits of a canonical
20822 NaN significand.
20823 (encode_ieee_double): Likewise.
20824 (encode_ieee_quad): Likewise.
20825 (ieee_single_format): Initialize canonical_nan_lsbs_set.
20826 (mips_single_format): Likewise.
20827 (ieee_double_format): Likewise.
20828 (mips_double_format): Likewise.
20829 (ieee_extended_motorola_format): Likewise.
20830 (ieee_extended_intel_96_format): Likewise.
20831 (ieee_extended_intel_128_format): Likewise.
20832 (ieee_extended_intel_96_round_53_format): Likewise.
20833 (ibm_extended_format): Likewise.
20834 (mips_extended_format): Likewise.
20835 (ieee_quad_format): Likewise.
20836 (mips_quad_format): Likewise.
20837 (vax_f_format): Likewise.
20838 (vax_d_format): Likewise.
20839 (vax_g_format): Likewise.
20840 (i370_single_format): Likewise.
20841 (i370_double_format): Likewise.
20842 (decimal_single_format): Likewise.
20843 (decimal_double_format): Likewise.
20844 (decimal_quad_format): Likewise.
20845 (c4x_single_format): Likewise.
20846 (c4x_extended_format): Likewise.
20847 (real_internal_format): Likewise.
20848 (coldfire_single_format): New real_format.
20849 (coldfire_double_format): Likewise.
20850 * config/pdp11/pdp11.c (pdp11_f_format): Initialize
20851 canonical_nan_lsbs_set.
20852 (pdp11_d_format): Likewise.
20853 * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
20854 if TARGET_COLDFIRE_CPU.
20855
20856 2007-01-18 Richard Sandiford <richard@codesourcery.com>
20857
20858 * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
20859 (output_call, m68k_legitimize_call_address): Declare.
20860 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
20861 parenthesees. Add support for a 'W' constraint.
20862 (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
20863 (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
20864 (m68k_symbolic_call, m68k_symbolic_jump): Declare.
20865 * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
20866 variables.
20867 (override_options): Initialize them. Do not set flag_no_function_cse
20868 for TARGET_ID_SHARED_LIBRARY.
20869 (m68k_output_pic_call): Delete.
20870 (m68k_legitimize_call_address): New function.
20871 (print_operand): Remove the %o prefix. Handle the %p prefix.
20872 (output_call): New function.
20873 (m68k_output_mi_thunk): Use m68k_symbolic_jump. Always load the
20874 target address from the GOT if symbolic jumps are not allowed.
20875 * config/m68k/m68k.md (call, general_operand): Do not set
20876 SYMBOL_REF_FLAG. Use m68k_legitimize_call_address instead.
20877 Merge separate flag_pic and !flag_pic define_insns into...
20878 (*call, *call_value): ...these new patterns. Match the address
20879 rather than the containing MEM and require it to be a call_operand.
20880 Use output_call to generate the asm template.
20881 * config/m68k/predicates.md (const_call_operand): New predicate.
20882 (call_operand): Likewise.
20883
20884 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
20885
20886 * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
20887 (STACK_GROWS_DOWNWARD): Define to 1.
20888 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
20889 comments, emphasizing that these values are only defaults.
20890 * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
20891 * config/m68k/m68k.c (const_method): Remove trailing whitespace.
20892
20893 2007-01-18 Richard Sandiford <richard@codesourcery.com>
20894
20895 * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
20896
20897 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
20898 Richard Sandiford <richard@codesourcery.com>
20899
20900 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
20901 (FP_REGNO_P): New macros.
20902 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
20903 (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
20904 (EH_RETURN_STACKADJ_RTX): Use A0_REG.
20905 * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
20906
20907 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
20908
20909 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
20910 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
20911 to $tmake_file.
20912 * config/m68k/t-floatlib: New file, extracting common code from...
20913 * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
20914 * config/m68k/t-uclinux: Here.
20915 * config/m68k/fpgnulib.c: Do not compile extendeed precision
20916 routines on ColdFire targets.
20917
20918 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
20919
20920 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
20921 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
20922 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
20923 (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
20924 explicitly set MOTOROLA to 1.
20925 * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
20926
20927 2007-01-18 Richard Sandiford <richard@codesourcery.com>
20928 Nathan Sidwell <nathan@codesourcery.com>
20929
20930 * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
20931 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
20932 * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
20933 * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
20934 * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
20935 * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
20936 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
20937 (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
20938 (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
20939 * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
20940 * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
20941 (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
20942 (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
20943 (DBX_REGISTER_NUMBER): Delete.
20944 * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
20945 (PCC_STATIC_STRUCT_RETURN): Don't undefine.
20946 * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
20947
20948 2007-01-18 Richard Sandiford <richard@codesourcery.com>
20949
20950 * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
20951 * config/flat.h: New file.
20952 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
20953 OBJECT_FORMAT_FLAT.
20954 * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
20955 indirect references for -msep-data or -mid-shared-library.
20956 Do not use PC-relative code addresses either.
20957 * config/m68k/m68k.c (override_options): Restrict -fPIC error
20958 to -mpcrel.
20959 * config/m68k/uclinux.h (STARTFILE_SPEC): Define. Use Scrt1.o
20960 for shared libraries and crt1.o for executables. Use crti.o and
20961 crtbegin.o.
20962 (ENDFILE_SPEC): Use crtend.o and crtn.o.
20963 (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
20964 Do not add -elf2flt or -shared-lib-id options here.
20965 (LINK_SPEC): Define. Pass -elf2flt if no -elf2flt option is given.
20966 Pass -shared-lib-id if -mid-shared-library, taking the library
20967 identifier from -mshared-library-id if given, otherwise
20968 defaulting to 0.
20969 (EH_FRAME_IN_DATA_SECTION): Do not undefine.
20970 (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
20971 (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
20972 and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
20973 (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
20974 * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
20975 and crtend.o.
20976 * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
20977 jump sequence for ISA A and ISA A+.
20978 (PICJUMP): Likewise.
20979
20980 2007-01-18 Richard Sandiford <richard@codesourcery.com>
20981
20982 * config.gcc (m68k-*-uclinux*): Base the port on the common
20983 and m68k GNU/Linux files rather than on the generic ELF ones.
20984 * config/m68k/uclinux.h (TARGET_VERSION): Override.
20985 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
20986
20987 2007-01-18 Julian Brown <julian@codesourcery.com>
20988 Richard Sandiford <richard@codesourcery.com>
20989
20990 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
20991 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
20992 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
20993 before redefining.
20994 * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
20995 80 unconditionally.
20996 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
20997
20998 2007-01-18 Richard Sandiford <richard@codesourcery.com>
20999
21000 * doc/install.texi: Document m68k-uclinuxoldabi.
21001 * config.gcc (m68k-*-uclinuxoldabi): New configuration.
21002 * config/m68k/uclinux-oldabi.h: New file, copied from
21003 config/m68k/uclinux.h.
21004
21005 2007-01-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
21006
21007 * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
21008 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
21009 (m32r_compute_frame_size): Use unsigned for regno.
21010 (m32r_reload_lr): Use gen_frame_mem.
21011 (pop): New.
21012 (m32r_output_function_epilogue): Don't output the function epilogue
21013 textually here.
21014 (m32r_expand_epilogue): New.
21015 (direct_return): Return false if the function has the interrupt
21016 attribute.
21017 (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
21018 * config/m32r/m32r.md (epilogue): New expander.
21019 (return_lr, return_rte): New insns.
21020 (return): Make it expander.
21021 (return_normal): New expander.
21022
21023 2007-01-18 Josh Conner <jconner@apple.com>
21024
21025 PR target/30485
21026 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
21027 support for UNLE, UNLT, UNGE, and UNGT.
21028
21029 2007-01-18 Jan Hubicka <jh@suse.cz>
21030
21031 * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
21032 * tree-tailcall (add_virtual_phis): Likewise.
21033 (optimize_tail_call): Return TODOs.
21034 (execute_tail_calls): Return TODOs.
21035 * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
21036 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
21037 changed.
21038 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
21039 Cleanup cfg using TODO.
21040 * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
21041 * passes.c (execute_function_todo): When cleanup did something, remove
21042 unused locals.
21043 * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
21044 (make_edges): Don't cleanup_cfg.
21045
21046 2007-01-18 Uros Bizjak <ubizjak@gmail.com>
21047
21048 * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
21049 UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
21050 operate on the top of stack.
21051 [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
21052 register handling of instructions that output to the second
21053 stack slot.
21054 [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
21055 (move_for_stack_reg): Special-case check for dead destination
21056 stack slot for constant load of 1.0 inside UNSPEC_TAN.
21057
21058 * config/i386/i386.md (UNSPEC_TAN): New constant.
21059 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
21060 (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
21061 to correctly model move of constant 1.0 to top stack slot.
21062 (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
21063 (unnamed peephole2 pattern): Remove corresponding peephole2
21064 pattern that optimizes tan insn and loading of constant 1.0.
21065 (tanxf2): Use fptanxf4_i387.
21066 (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
21067 patterns using X87MODEF12 mode macro. Use fptan_extend<mode>xf4_i387
21068 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
21069 disable patterns for SSE math.
21070 (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
21071 (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
21072
21073 2007-01-18 Dirk Mueller <dmueller@suse.de>
21074 Richard Guenther <rguenther@suse.de>
21075
21076 PR diagnostic/8268
21077 * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
21078 * common.opt (Warray-bounds): Add new warning option.
21079 * c-opts.c (c_common_handle_option): Define -Warray-bounds
21080 if -Wall is given.
21081 * Makefile.in: make tree-vrp.o depend on toplev.h
21082 * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
21083 is enabled.
21084 (check_array_refs, check_array_bounds, check_array_ref): New.
21085
21086 2007-01-18 Jan Hubicka <jh@suse.cz>
21087
21088 * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
21089 (execute_ssa_ccp): Return flags conditionally.
21090 * tree-ssa-propagate.c (substitue_and_fold): Return if something was
21091 changed.
21092 * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
21093
21094 2007-01-18 Steven Bosscher <steven@gcc.gnu.org>
21095
21096 * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
21097 the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
21098
21099 * Makefile.c (GTFILES): Add cfglayout.h.
21100 * gengtype.c (open_base_files): Likewise.
21101 * cfglayout.c (cfg_layout_function_footer,
21102 cfg_layout_function_header) Reindent to make gengtype happy.
21103 * cfglayout.h (cfg_layout_function_footer,
21104 cfg_layout_function_header): Add GTY(()) marker.
21105
21106 * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
21107
21108 2007-01-18 Ben Elliston <bje@au.ibm.com>
21109
21110 * genautomata.c (write_automata): Include xstrerror output in the
21111 error message if writing the DFA description file fails.
21112
21113 2007-01-17 H.J. Lu <hongjiu.lu@intel.com>
21114
21115 * config/mips/mips-protos.h (mips_output_external): Make it
21116 return void.
21117 * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
21118 * config/mips/mips.c (irix_output_external_libcall): Likewise.
21119 (extern_list): Likewise.
21120 (extern_head): Likewise.
21121 (TARGET_ASM_FILE_END): Likewise.
21122 (mips_file_end): Likewise.
21123 (mips_output_external): Rewritten.
21124
21125 2007-01-18 Ben Elliston <bje@au.ibm.com>
21126
21127 * genpreds.c (write_insn_preds_c): Only write out the function
21128 body for regclass_for_constraint if we have register constraints.
21129
21130 2007-01-17 Tom Tromey <tromey@redhat.com>
21131
21132 * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
21133 * doc/install.texi (Testing): Use sourceware.org.
21134 (Binaries): Likewise.
21135 (Specific): Likewise.
21136 * doc/contrib.texi (Contributors): Use sourceware.org.
21137
21138 2007-01-17 Anatoly Sokolov <aesok@post.ru>
21139
21140 * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
21141 (AVR_ENHANCED): Rename to ...
21142 (AVR_HAVE_MUL): ... new.
21143 (avr_enhanced_p): Rename to ...
21144 (avr_have_mul_p): ... new.
21145 (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
21146 'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
21147 * config/avr/avr.c (avr_enhanced_p): Rename to ...
21148 (avr_have_mul_p): ... new.
21149 (base_arch_s): Rename 'enhanced' to 'have_mul'.
21150 (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
21151 'avr_enhanced_p' and 'enhanced'.
21152 (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
21153 AVR_HAVE_MUL instead of AVR_ENHANCED.
21154 * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
21155 (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
21156 *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
21157 instead of AVR_ENHANCED.
21158 (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
21159 * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
21160 (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
21161
21162 2007-01-17 Ian Lance Taylor <iant@google.com>
21163
21164 * vec.h (VEC_reserve_exact): Define.
21165 (vec_gc_p_reserve_exact): Declare.
21166 (vec_gc_o_reserve_exact): Declare.
21167 (vec_heap_p_reserve_exact): Declare.
21168 (vec_heap_o_reserve_exact): Declare.
21169 (VEC_OP (T,A,reserve_exact)): New static inline function, three
21170 versions.
21171 (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
21172 negative parameter.
21173 (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
21174 (VEC_OP (T,A,copy)) [all versions]: Likewise.
21175 (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
21176 * vec.c (calculate_allocation): Add exact parameter. Change all
21177 callers.
21178 (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
21179 (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
21180 (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
21181 (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
21182 (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
21183 (vec_heap_p_reserve_exact): New function.
21184 (vec_heap_o_reserve_exact): New function.
21185
21186 2007-01-17 Jan Hubicka <jh@suse.cz>
21187
21188 * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
21189
21190 2007-01-17 Eric Christopher <echristo@apple.com>
21191
21192 * config.gcc: Support core2 processor.
21193
21194 2007-01-16 Jan Hubicka <jh@suse.cz>
21195
21196 * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
21197 the names, just unlink the chain so we don't crash on dangling
21198 pointers
21199 to dead SSA names.
21200
21201 2007-01-16 Jan Hubicka <jh@suse.cz>
21202
21203 * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
21204 * tree-pass.h: Reorder to make IPA passes appear toegher.
21205 (pass_early_inline, pass_inline_parameters, pass_apply_inline):
21206 Declare.
21207 * cgraphunit.c (cgraph_finalize_function): Do not compute inling
21208 parameters, do not call early inliner.
21209 * ipa-inline.c: Update comments. Include tree-flow.h
21210 (cgraph_decide_inlining): Do not compute inlining parameters.
21211 (cgraph_decide_inlining_incrementally): Return TODOs; assume to
21212 be called with function context set up.
21213 (pass_ipa_inline): Remove unreachable functions before pass.
21214 (cgraph_early_inlining): Simplify assuming to be called from the
21215 PM as local pass.
21216 (pass_early_inline): New pass.
21217 (cgraph_gate_ipa_early_inlining): New gate.
21218 (pass_ipa_early_inline): Turn into simple wrapper.
21219 (compute_inline_parameters): New function.
21220 (gate_inline_passes): New gate.
21221 (pass_inline_parameters): New pass.
21222 (apply_inline): Move here from tree-optimize.c
21223 (pass_apply_inline): New pass.
21224 * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
21225 transforming.
21226 * tree-inline.c (optimize_inline_calls): Return TODOs rather than
21227 doing them by hand.
21228 (tree_function_versioning): Do not allocate dummy struct function.
21229 * tree-inline.h (optimize_inline_calls): Update prototype.
21230 * tree-optimize.c (execute_fixup_cfg): Export.
21231 (pass_fixup_cfg): Remove
21232 (tree_rest_of_compilation): Do not apply inlines.
21233 * tree-flow.h (execute_fixup_cfg): Declare.
21234 * Makefile.in (gt-passes.c): New.
21235 * passes.c: Include gt-passes.h
21236 (init_optimization_passes): New passes.
21237 (nnodes, order): New static vars.
21238 (do_per_function_toporder): New function.
21239 (execute_one_pass): Dump current pass here.
21240 (execute_ipa_pass_list): Don't dump current pass here.
21241
21242 2007-01-16 Janis Johnson <janis187@us.ibm.com>
21243
21244 * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
21245 (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
21246
21247 2007-01-16 David Edelsohn <edelsohn@gnu.org>
21248
21249 * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
21250 (strong_alias): Define.
21251 (__gcc_qmul): Provide non-FMA for soft-float.
21252 (__gcc_qdiv): Same.
21253 (__gcc_qneg): New.
21254 (__gcc_qeq): New.
21255 (__gcc_qle): New.
21256 (__gcc_qge): New.
21257 (__gcc_qunord): New.
21258 (__gcc_stoq): New.
21259 (__gcc_dtoq): New.
21260 (__gcc_qtos): New.
21261 (__gcc_qtod): New.
21262 (__gcc_qtoi): New.
21263 (__gcc_qtou): New.
21264 (__gcc_itoq): New.
21265 (__gcc_utoq): New.
21266 (fmsub): New.
21267 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
21268 soft-float functions.
21269 * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
21270 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
21271 about long double soft float.
21272
21273 2007-01-16 Dorit Nuzman <dorit@il.ibm.com>
21274 Tehila Meyzels <tehila@il.ibm.com>
21275
21276 * tree-vectorizer.h (is_pattern_stmt_p): New.
21277 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
21278 formatting (tabs instead of spaces). Cleanup and clarify setting
21279 of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
21280 * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
21281 (vectorizable_type_demotion): Check that types are integral.
21282 (vectorizable_type_promotion): Likewise.
21283 (vectorizable_store): Fix typo. Eliminate new-line at end of
21284 comments.
21285
21286 2007-01-16 Jan Hubicka <jh@suse.cz>
21287
21288 * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
21289 cgraph edges too.
21290
21291 2007-01-15 Eric Christopher <echristo@apple.com>
21292
21293 * ifcvt.c: Include vec.h, vecprim.h.
21294 (check_cond_move_block): New argument regs.
21295 Reorganize. Add registers used to regs.
21296 (cond_move_process_if_block): Use regs set above as
21297 loop bounds.
21298
21299 2007-01-15 Eric Christopher <echristo@apple.com>
21300
21301 * config/darwin.h: Update copyright.
21302 (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
21303 (LINK_COMMAND_SPEC): Add -u.
21304 (LINK_SPEC): Fix umbrella for above.
21305
21306 2007-01-15 Joseph S. Myers <joseph@codesourcery.com>
21307
21308 * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
21309 glibc CVS.
21310
21311 2007-01-15 Tom Tromey <tromey@redhat.com>
21312
21313 * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
21314 * doc/install.texi (Testing): Don't mention jacks.
21315 (Configuration): Document --enable-java-maintainer-mode. Move
21316 --with-java-home to libgcj-specific section. Document
21317 --with-ecj-jar.
21318 (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
21319
21320 2007-01-15 Jan Hubicka <jh@suse.cz>
21321
21322 * tree-ssa-dce.c (DCE_TODOs): New.
21323 (propagate_necessity): Return if something changed.
21324 (eliminate_unnecessary_stmts): Likewise.
21325 (perform_tree_ssa_dce): Return TODO flags when needed.
21326 (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
21327
21328 2007-01-15 Uros Bizjak <ubizjak@gmail.com>
21329
21330 * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
21331 (fyl2x_extend<mode>xf3_i387): New insn pattern.
21332 (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
21333 patterns using X87MODEF12 mode macro. Extend operand 1
21334 to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
21335 (log10<mode>2): Ditto.
21336 (log2<mode>2): Ditto.
21337 (log1p<mode>2): Ditto.
21338 (logb<mode>2): Ditto.
21339 (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
21340 (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
21341 (*fxtractxf3_i387): Rename from *fxtractxf3.
21342 (fxtract_extend<mode>xf3_i387): New insn pattern.
21343 (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
21344 * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
21345 and gen_fyl2xxf3_i387().
21346
21347 2007-01-14 Zdenek Dvorak <dvorakz@suse.cz>
21348
21349 * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
21350 * cfgloopmanip.c (fix_loop_placement): Made static. Use
21351 get_loop_exit_edges. Changed return type to bool.
21352 * cfgloop.h (fix_loop_placement): Declaration removed.
21353
21354 2007-01-14 Dorit Nuzman <dorit@il.ibm.com>
21355
21356 * param.h (MIN_VECT_LOOP_BOUND): New.
21357 * params.def (MIN_VECT_LOOP_BOUND): New.
21358 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
21359 argument - minimum threshold for number of iterations.
21360 * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
21361 argument to declaration.
21362 * tree-vect-analyze.c (vect_analyze_operations): Check value of
21363 MIN_VECT_LOOP_BOUND.
21364 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
21365 slpeel_tree_peel_loop_to_edge with additional argument.
21366 (vect_do_peeling_for_alignment): Likewise.
21367 * doc/invoke.texi (min-vect-loop-bound): Document new param option.
21368
21369 2007-01-14 Uros Bizjak <ubizjak@gmail.com>
21370
21371 PR target/30413
21372 * config/i386/i386.c (print_operand) ['z']: Output 'b' for
21373 operands of size 1.
21374
21375 2007-01-14 Jan Hubicka <jh@suse.cz>
21376
21377 * tree-dfa.c (remove_referenced_var): New function.
21378 * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
21379 prune referenced vars list too.
21380 * tree-flow.h (remove_referenced_var): Declare.
21381
21382 2007-01-14 Jan Hubicka <jh@suse.cz>
21383
21384 * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
21385 separately.
21386 (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
21387 (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
21388 * except.h (verify_eh_throw_table_statements): Kill prototype.
21389 * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
21390 into call exrepssions.
21391 * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
21392 eh trhow verifier.
21393 * tree-cfg.c: Include pointer-set.h.
21394 (verify_node_sharing): Work on pointer set.
21395 (verify_eh_throw_stmt_node): New.
21396 (verify_stmts): Use pointers sets, verify throw_stmt.
21397
21398 2007-01-13 Zdenek Dvorak <dvorakz@suse.cz>
21399
21400 * ipa-reference.c (analyze_function): Consider also addresses taken
21401 in phi nodes.
21402
21403 2007-01-12 Roger Sayle <roger@eyesopen.com>
21404
21405 * c-typeck.c (null_pointer_constant_p): Replace use of
21406 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
21407 (build_c_cast): Likewise.
21408
21409 2007-01-12 Roger Sayle <roger@eyesopen.com>
21410
21411 * tree.h (force_fit_type_double): Remove unused final argument.
21412 * c-common.c (constant_expression_warning): Replace use of
21413 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
21414 (convert_and_check): Likewise.
21415 (shorten_compare): Update call to force_fit_type_double.
21416 (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
21417 * convert.c (convert_to_pointer): Update call to
21418 force_fit_type_double.
21419 * fold-const.c (force_fit_type_double): Remove overflowed_const
21420 argument.
21421 (int_const_binop, fold_convert_const_int_from_int,
21422 fold_convert_const_int_from_real, fold_div_compare,
21423 fold_sign_changed_comparison, fold_unary, fold_negate_const,
21424 fold_abs_const, fold_not_const): Remove the final argument from
21425 calls to force_fit_type_double.
21426
21427 2007-01-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
21428
21429 * configure.ac: Set insn to "nop" for spu-*-* also.
21430 * configure: Regenerate.
21431
21432 2007-01-12 Olga Golovanevsky <olga@il.ibm.com>
21433
21434 * builtins.def : Add BUILT_IN_FREE.
21435
21436 2007-01-12 Jan Hubicka <jh@suse.cz>
21437
21438 PR tree-optimization/30443
21439 * tree-inline.c (tree_function_versioning): Do not optimize when
21440 cloning for inlining.
21441
21442 2007-01-12 Zdenek Dvorak <dvorakz@suse.cz>
21443
21444 * doc/loop.texi: Document recording of loop exits.
21445 * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
21446 (update_single_exits_after_duplication,
21447 update_single_exit_for_duplicated_loop,
21448 update_single_exit_for_duplicated_loops): Removed.
21449 (duplicate_loop_to_header_edge): Do not call
21450 update_single_exits_after_duplication and
21451 update_single_exit_for_duplicated_loops.
21452 (loop_version): Do not update single_exit information.
21453 (fix_loop_structure): Use record_loop_exits instead of
21454 mark_single_exit_loops.
21455 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
21456 the lists of loop exits.
21457 * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
21458 split_edge, merge_blocks): Update the lists of loop exits.
21459 * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
21460 loop_optimizer_init.
21461 * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
21462 of mark_single_exit_loops.
21463 (loop_optimizer_finalize): Call release_recorded_exits.
21464 * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
21465 LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
21466 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
21467 update single exit information.
21468 * lambda-code.c (perfect_nestify): Ditto.
21469 * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
21470 (mark_single_exit_loops): Removed.
21471 (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
21472 get_exit_descriptions, rescan_loop_exit, record_loop_exits,
21473 dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
21474 functions.
21475 (get_loop_exit_edges, single_exit): Use recorded exit lists.
21476 (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
21477 (verify_loop_structure): Verify consistency of the exit lists.
21478 (flow_loops_find): Use alloc_loop. Initialize exits hash.
21479 (set_single_exit): Removed.
21480 * cfgloop.h (struct loop_exit): New function.
21481 (struct loop): single_exit_ field replaced by exits field.
21482 (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
21483 LOOPS_HAVE_RECORDED_EXITS.
21484 (struct loops): Added exits hash.
21485 (mark_single_exit_loops, set_single_exit): Declaration removed.
21486 (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
21487
21488 2007-01-12 Richard Sandiford <richard@codesourcery.com>
21489
21490 * doc/invoke.texi: Avoid use of @headitem.
21491
21492 2007-01-12 Richard Sandiford <richard@codesourcery.com>
21493
21494 * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
21495
21496 2007-01-12 Richard Sandiford <richard@codesourcery.com>
21497
21498 * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
21499 list of targets.
21500
21501 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
21502 Richard Sandiford <richard@codesourcery.com>
21503
21504 * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
21505 * config/m68k/m68k.opt: Resort options.
21506 (mbitfield, mrtd, mshort): Remove RejectNegative properties.
21507
21508 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
21509 Richard Sandiford <richard@codesourcery.com>
21510
21511 * doc/invoke.texi: Document the macros that are defined by
21512 m68k's -mtune and -mhard-float options.
21513 * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
21514 (m68k_cpp_cpu_family): Likewise.
21515 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
21516 of __ucfv*__ macros. Define __mcffpu__ if generating code for
21517 ColdFire FPUs. Define __mcf_cpu_* and __mcf_family_* macros.
21518 * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
21519 (m68k_cpp_cpu_family): Likewise.
21520
21521 2007-01-12 Richard Sandiford <richard@codesourcery.com>
21522
21523 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
21524 macros besides mc68000 as tuning macros. Use a switch statement
21525 to set them and mcpu32.
21526
21527 2007-01-12 Julian Brown <julian@codesourcery.com>
21528
21529 * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
21530 (TARGET_68040_ONLY): Rename to...
21531 (TARGET_68040): ...this.
21532 * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
21533 * config/m68k/m68k.md: Likewise.
21534
21535 2007-01-12 Julian Brown <julian@codesourcery.com>
21536 Nathan Sidwell <nathan@codesourcery.com>
21537 Richard Sandiford <richard@codesourcery.com>
21538
21539 * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
21540 the -mcpu= argument associated with the --with-cpu setting.
21541 Define M68K_DEFAULT_TUNE to the default -mtune= option,
21542 if different from the one implied by the -mcpu setting.
21543 Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
21544 using mcpu=FOO as the default CPU option. Set target_cpu_default2.
21545 * doc/invoke.texi: Mention ColdFire in the introduction to the
21546 m68k options. Document the new -march, -mcpu, -mtune, -mdiv,
21547 -mno-div and -mhard-float options. Make -m68881 a synonym for
21548 -mhard-float. Document the previously-undocumented -m5206e,
21549 -m528x, -m5307 and -m5407 options. Tweak the existing option
21550 documentation for consistency.
21551 * doc/install.texi: Mention new --with-cpu arguments.
21552 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
21553 default CPU if neither -mcpu nor -march are specified.
21554 (ASM_CPU_SPEC): Pass down -mcpu and -march options.
21555 (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
21556 TARGET_ISA*. Set the legacy __mcf*__ cpu macros in the same way,
21557 using m68k_tune to decide between families that implement the
21558 same ISA. Use m68k_tune to set __mcfv4e__.
21559 (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
21560 (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
21561 (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
21562 (FL_ISA_C, FL_ISA_MMU): New macros.
21563 (MASK_COLDFIRE): Delete.
21564 (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
21565 (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
21566 (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
21567 (TARGET_HARD_FLOAT): Do not define here.
21568 (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
21569 (TUNE_68000): New macro.
21570 (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
21571 (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
21572 (TUNE_CFV2): Redefine in terms of m68k_tune.
21573 (uarch_type, target_device, fpu_type): New enums.
21574 (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
21575 * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
21576 (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
21577 (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
21578 (FL_FOR_isa_c): New macros.
21579 (m68k_isa): New enum.
21580 (m68k_target_selection): New structure.
21581 (all_devices, all_isas, all_microarchs): New tables.
21582 (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
21583 (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
21584 (MASK_ALL_CPU_BITS): Delete.
21585 (m68k_find_selection): New function.
21586 (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
21587 Map the legacy target options to a combination of the new ones.
21588 (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
21589 m68k_cpu_flags. Handle M68K_DEFAULT_TUNE. Use m68k_cpu_flags
21590 to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
21591 settings.
21592 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
21593 (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
21594 properties.
21595 (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
21596 (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
21597 * config/m68k/m68k-devices.def: New file.
21598
21599 2007-01-12 Richard Sandiford <richard@codesourcery.com>
21600 Nathan Sidwell <nathan@codesourcery.com>
21601
21602 * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
21603 (SUBTARGET_EXTRA_SPECS): New macros.
21604 * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
21605 use %(asm_cpu_spec) instead.
21606 * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
21607 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
21608 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
21609 (EXTRA_SPECS): Rename to...
21610 (SUBTARGET_EXTRA_SPECS): ...this.
21611
21612 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
21613 Richard Sandiford <richard@codesourcery.com>
21614 Julian Brown <julian@codesourcery.com>
21615
21616 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
21617 (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
21618 to the configuration's default CPU.
21619 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
21620 Remove default masks.
21621 (m680[012]0-*-*): Set the default with_cpu to the first part of
21622 the target name.
21623 (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
21624 (m68k*-*-linux): Extend the --with-cpu handling to...
21625 (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000
21626 and m68010. Don't set target_cpu_default2.
21627 * doc/install.texi: Document --with-cpu for m68k.
21628 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
21629 * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
21630 (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
21631 (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
21632 (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
21633 (ASM_SPEC): Remove use of %(asm_cpu_default).
21634 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
21635 * config/m68k/linux.h (TARGET_DEFAULT): Delete.
21636 (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here.
21637 * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
21638 __HAVE_FPU__ if TARGET_HARD_FLOAT.
21639 (TARGET_DEFAULT): Delete.
21640 (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
21641 cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
21642 (CPP_CPU_SPEC): Delete.
21643 (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
21644 the appropriate string.
21645 (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
21646 (CPP_SPEC): Define to NETBSD_CPP_SPEC.
21647 (ASM_SPEC): Don't use %(asm_default_spec).
21648 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
21649 TARGET_DEFAULT and add MASK_68881.
21650 * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
21651
21652 2007-01-12 Richard Sandiford <richard@codesourcery.com>
21653
21654 * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
21655 (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
21656 MASK_68010 alongside MASK_68020.
21657 * doc/invoke.texi: Document -m68010.
21658 * config/m68k/m68k.opt (m68010): New.
21659 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
21660 if TUNE_68010.
21661 (TUNE_68010): New macro.
21662 * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
21663 (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
21664 (M68K_CPU_m68332): Add MASK_68010.
21665 * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
21666 fallback definition.
21667 * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
21668 defines.
21669 * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
21670 (m68k_handle_option): Handle OPT_m68010. Add MASK_68010
21671 to all entries that use MASK_68020.
21672 (output_move_simode_const, output_move_himode, output_move_qimode)
21673 (output_move_stricthi, output_move_strictqi): Use TARGET_68010
21674 instead of TARGET_68020 to select clr behavior. Remove comment
21675 about there being no TARGET_68010.
21676 * config/m68k/m68k.md: Likewise throughout.
21677
21678 2007-01-12 Julian Brown <julian@codesourcery.com>
21679
21680 * config/m68k/m68k.h (TARGET_ISAB): New macro.
21681 * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
21682 * config/m68k/m68k.md: Likewise.
21683
21684 2007-01-12 Julian Brown <julian@codesourcery.com>
21685
21686 * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
21687 TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
21688
21689 2007-01-12 Julian Brown <julian@codesourcery.com>
21690
21691 * config/m68k/m68k.h (TUNE_68040_60): New macro.
21692 * config/m68k/m68k.c (standard_68881_constant_p): Use it.
21693 * config/m68k/m68k.md: Likewise.
21694
21695 2007-01-12 Julian Brown <julian@codesourcery.com>
21696 Richard Sandiford <richard@codesourcery.com>
21697
21698 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
21699 instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
21700 TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
21701 TARGET_CPU32.
21702 (TARGET_CPU32): Rename to...
21703 (TUNE_CPU32): ...this.
21704 (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
21705 (TUNE_CFV2): New macros.
21706 * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
21707 remove conditions that are implied by TARGET_68020.
21708 * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
21709 instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
21710 (m68k_output_function_epilogue): Likewise.
21711 (m68k_rtx_costs): Likewise. Use TUNE_68060 instead of TARGET_68060
21712 and TUNE_CFV2 instead of TARGET_5200. Use TUNE_68000_10 instead of
21713 "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
21714 non-68000 timings. Refactor multiplication and division costs.
21715 (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
21716 TUNE_CPU32 instead of TARGET_CPU32.
21717 (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
21718 and TUNE_68060 instead of TARGET_68060.
21719 * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
21720 TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
21721 TARGET_CPU32.
21722 (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
21723 && !TARGET_COLDFIRE" to choose between moveq and clr.
21724 Likewise in the unnamed movsf pattern.
21725 (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
21726 "!TARGET_68020 && !TARGET_COLDFIRE". Likewise the unnamed
21727 ashiftrt pattern.
21728
21729 2007-01-12 Richard Sandiford <richard@codesourcery.com>
21730
21731 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
21732 of tabbing before backslashes.
21733
21734 2007-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21735
21736 * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
21737 * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
21738 (ASM_OUTPUT_INTERNAL_LABEL): Define.
21739
21740 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
21741
21742 * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
21743 find_interesting_uses_cond.
21744 (find_interesting_uses_cond): Use extract_cond_operands.
21745 (rewrite_use_compare): Use extract_cond_operands and
21746 force_gimple_operand_bsi. Do not call update_stmt.
21747 (determine_use_iv_cost_condition): Use extract_cond_operands.
21748 Return cheaper of using original bound and changing the exit bound.
21749
21750 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
21751
21752 PR tree-optimization/29516
21753 * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
21754 most_expensive_mult_to_index, addr_to_parts,
21755 create_mem_ref, maybe_fold_tmr): Make the type of
21756 fields of TARGET_MEM_REF sizetype.
21757 (move_fixed_address_to_symbol, move_pointer_to_base):
21758 New functions.
21759 * tree.def (TARGET_MEM_REF): Add comment on types of
21760 the operands.
21761
21762 2007-01-11 Joseph Myers <joseph@codesourcery.com>
21763
21764 * c-common.c (vector_types_convertible_p): Treat opaque types as
21765 always convertible if they have the same size, but not otherwise.
21766
21767 2007-01-11 Steven Bosscher <steven@gcc.gnu.org>
21768
21769 * ifcvt.c (struct noce_if_info): Add comments to the fields.
21770 Remove the b_unconditional field.
21771 (noce_try_sign_mask): Do not look at b_unconditional.
21772 (noce_process_if_block): Do not use merge_if_blocks. Update
21773 the CFG here. Do not set b_unconditional.
21774 (cond_move_process_if_block): Likewise.
21775 (find_cond_trap): Likewise.
21776 (check_cond_move_block): Require simple jump insns at the end
21777 of the basic block.
21778
21779 2007-01-11 Jan Hubicka <jh@suse.cz>
21780
21781 PR tree-optimization/1046
21782 * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
21783 when alias info is not ready.
21784 (pass_tail_recursion): Do not require aliasing.
21785 * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
21786 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
21787 * tree-ssa-copy.c (pass_copy_prop): Likewise.
21788 * tree-ssa-forwprop.c (pass_forwprop): Likewise.
21789 * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
21790 * passes.c (init_optimization_passes): Execute rename_ssa_copies,
21791 ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
21792 before inlining.
21793 * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
21794 When aliasing is not build, mark statement as volatile.
21795
21796 2007-01-11 Tom Tromey <tromey@redhat.com>
21797
21798 PR preprocessor/15185, PR preprocessor/20989:
21799 * doc/cppopts.texi <-MT>: Update description of algorithm for
21800 computing default target.
21801 <-M, -MD>: Reword "basename" text.
21802
21803 2007-01-11 Roger Sayle <roger@eyesopen.com>
21804
21805 * builtins.c (expand_builtin_pow, expand_builtin_powi,
21806 fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
21807 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
21808 fold_builtin_int_int_roundingfn, fold_builtin_bitop,
21809 fold_builtin_bswap, real_constp, fold_builtin_pow,
21810 fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
21811 do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
21812 uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
21813 * convert.c (convert_to_pointer): Likewise.
21814 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
21815 * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
21816 const_binop, fold_convert_const_int_from_int,
21817 fold_convert_const_int_from_real,
21818 fold_convert_const_real_from_real, sign_bit_p,
21819 optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
21820 fold_sign_changed_comparison, fold_unary, fold_comparison,
21821 fold_binary, multiple_of_p, tree_Expr_non_zero_p,
21822 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
21823 * print-tree.c (print_node_brief, print_node): Likewise.
21824 * stor-layout.c (place_field, layout_type): Likewise.
21825 * tree-chrec.c (keep_cast): Likewise.
21826 * tree.c (build_vector, build_real, build_real_from_int_cst,
21827 build_complex): Likewise.
21828
21829 2007-01-11 Roger Sayle <roger@eyesopen.com>
21830
21831 * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete. For the time being,
21832 treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
21833
21834 2007-01-11 Paolo Bonzini <bonzini@gnu.org>
21835
21836 * configure.ac (strict1_warn): Rename to strict_warn.
21837 (WERROR, --enable-werror, symlink hacks, stage1_cflags,
21838 cc_set_by_configure, quoted_cc_set_by_configure,
21839 stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
21840 all_boot_languages, all_stagestuff): Remove.
21841 (target_list): Remove bootstrap targets.
21842 * Makefile.in (quickstrap): Unconditionally make a synonym of all.
21843 (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
21844 REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
21845 SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
21846 VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
21847 STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
21848 stage1_copy, stage2_build, stage2_copy, stageprofile_build,
21849 stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
21850 stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
21851 bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
21852 bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
21853 unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
21854 restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
21855 cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
21856 *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
21857 stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
21858 stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
21859 risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
21860 (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
21861 (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
21862 (mostlyclean): Adjust.
21863 (clean, distclean): Don't mention bootstrap stuff.
21864 * configure: Regenerate.
21865 * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
21866 java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
21867 treelang/config-lang.in (stagestuff): Remove.
21868 * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
21869 stageprofile, stagefeedback, stagestuff): Remove mention.
21870
21871 2007-01-11 Nick Clifton <nickc@redhat.com>
21872
21873 * config/mcore/predicates.md (mcore_general_movesrc_operand):
21874 Accept CONSTs.
21875 (mcore_general_movdst_operand): Do not accept CONST_INTs.
21876 (mcore_arith_K_S_operand): Run the test for the S constraint not
21877 the test for the M constraint.
21878 (mcore_addsub_operand): Do not accept integer values that are
21879 larger than 32 bits.
21880 * config/mcore/mcore.md: Remove unused constraints from split.
21881 (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
21882 (addsi3): Likewise.
21883 (allocate_stack): Likewise.
21884 * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
21885 operands to 32 bits.
21886 (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
21887 INTVAL.
21888 (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
21889 mcore_const_ok_for_inline, mcore_const_trick_uses_not,
21890 try_constant_tricks, mcore_num_ones, mcore_num_zeros,
21891 mcore_output_bclri, mcore_output_andn, output_inline_const,
21892 mcore_output_move, mcore_output_movedouble): Likewise.
21893 (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
21894 (output_inline_const): Likewise.
21895 (output_inline_const): Fix format strings used in sprintf
21896 statements.
21897 * config/mcore/mcore-protos.h: Update prototypes for changed
21898 functions in mcore.c.
21899 * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
21900 HOST_WIDE_INT and not int.
21901 (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
21902 CONST_OK_FOR_N): Likewise.
21903 (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
21904 (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
21905 an INTVAL.
21906
21907 2007-01-10 Jan Hubicka <jh@suse.cz>
21908
21909 * tree-vrp.c (remove_range_assertions): Release defs.
21910 * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
21911 * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
21912
21913 2007-01-10 Paul Brook <paul@codesourcery.com>
21914
21915 * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
21916 * config/arm/arm.md (mulsi3subsi): New insn.
21917
21918 2007-01-10 Zdenek Dvorak <dvorakz@suse.cz>
21919
21920 * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
21921 (tree_transform_and_unroll_loop): New.
21922 * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
21923 Declare.
21924
21925 2007-01-10 Robert Kennedy <jimbob@google.com>
21926
21927 * fold-const.c (fold_comparison): Fold comparisons like (x *
21928 1000 < 0) to (x < 0).
21929
21930 2007-01-10 Ian Lance Taylor <iant@google.com>
21931
21932 * tree-pretty-print.c (dump_generic_node): Print parentheses when
21933 operands have the same priority.
21934
21935 2007-01-10 Tom Tromey <tromey@redhat.com>
21936
21937 * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
21938 (fold_binary): Likewise.
21939 * langhooks.c (lhd_can_use_bit_fields_p): Removed.
21940 * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
21941 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
21942 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
21943 * langhooks.h (struct lang_hooks): Removed field
21944 'can_use_bit_fields_p'.
21945
21946 2007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org>
21947
21948 * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
21949
21950 2007-01-10 Razya Ladelsky <razya@il.ibm.com>
21951
21952 * function.c (get_last_funcdef_no): New function.
21953 * function.h (get_last_funcdef_no): Declare.
21954 * tree-inline.c (initialize_cfun): Add initialization.
21955 (tree_function_versioning): Cleanup.
21956
21957 2007-01-10 Jan Hubicka <jh@suse.cz>
21958
21959 * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
21960 PHIs.
21961
21962 2007-01-10 Sa Liu <saliu@de.ibm.com>
21963 Ben Elliston <bje@au.ibm.com>
21964
21965 * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
21966 for SAVE_NONLOCAL and Pmode for any other save level.
21967 * spu-protos.h (spu_restore_stack_block): Declare.
21968 * spu.md (save_stack_block): Remove.
21969 (restore_stack_block): Call spu_restore_stack_block.
21970 * spu.c (spu_restore_stack_block): New function.
21971 (spu_expand_epilogue): Remove old comment.
21972
21973 2007-01-09 Zdenek Dvorak <dvorakz@suse.cz>
21974
21975 PR tree-optimization/30322
21976 * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
21977 (cand_value_at): Return the value as aff_tree.
21978 (may_eliminate_iv): Convert the bound from aff_tree to tree.
21979 * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
21980 aff_combination_mult): New functions.
21981 (aff_combination_add): Use aff_combination_add_cst.
21982 (aff_combination_convert): Allow conversions to a wider type.
21983 (tree_to_aff_combination): Handle BIT_NOT_EXPR.
21984 * tree-affine.h (aff_combination_mult): Declare.
21985
21986 2007-01-09 Carlos O'Donell <carlos@codesourcery.com>
21987
21988 * doc/tm.texi: Update documentation to reflect reality of exec
21989 and start file search behaviours. Update copyright year.
21990 * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
21991 header file directories.
21992
21993 2007-01-09 Uros Bizjak <ubizjak@gmail.com>
21994
21995 * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
21996 (*cosxf2): Rename to cosxf2_i387.
21997 (*sindf2, *sinsf2): Extend operand 1 to XFmode. Macroize patterns
21998 using X87MODEF12 mode macro. Rename patterns to
21999 *sin_extend<mode>xf2_i387. Use SSE_FLOAT_MODE_P to disable patterns
22000 for SSE math.
22001 (*cosdf2, *cossf2): Ditto.
22002 (sincosdf3, sincossf3): Ditto. Rewrite corresponding splitters
22003 to match extended input operands.
22004 (sincos<mode>3): New expander.
22005 (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
22006 insn patterns and corresponding splitters.
22007
22008 2007-01-09 Kaz Kojima <kkojima@gcc.gnu.org>
22009
22010 * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
22011 (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
22012
22013 2007-01-09 Nicolas Pitre <nico@cam.org>
22014
22015 PR target/30173
22016 * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
22017
22018 2007-01-08 Geoffrey Keating <geoffk@apple.com>
22019
22020 * target.h (struct gcc_target): New field library_rtti_comdat.
22021 * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
22022 (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
22023 * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
22024 * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
22025
22026 2007-01-08 Geoffrey Keating <geoffk@apple.com>
22027
22028 * doc/invoke.texi (Optimize Options): Correct description of -O0.
22029
22030 2007-01-08 Richard Guenther <rguenther@suse.de>
22031
22032 * tree.h (force_fit_type_double): Export.
22033 (force_fit_type): Remove.
22034 * fold-const.c (force_fit_type_double): New function.
22035 (force_fit_type): Remove.
22036 (int_const_binop): Use it.
22037 (fold_convert_const_int_from_int): Likewise.
22038 (fold_convert_const_int_from_real): Likewise.
22039 (fold_div_compare): Likewise.
22040 (fold_sign_changed_comparison): Likewise.
22041 (fold_unary): Likewise.
22042 (fold_negate_const): Likewise.
22043 (fold_abs_const): Likewise.
22044 (fold_not_const): Likewise.
22045 * c-common.c (shorten_compare): Use force_fit_type_double.
22046 * convert.c (convert_to_pointer): Likewise.
22047
22048 2007-01-08 Richard Guenther <rguenther@suse.de>
22049
22050 * tree.h (build_int_cst_wide_type): Export.
22051 * tree.c (build_int_cst_wide_type): New function.
22052 (build_int_cst_wide): Fix comment.
22053 * builtins.c (fold_builtin_object_size): Use build_int_cst
22054 to build -1 or 0 of the correct type. Use fit_double_type
22055 to check for overflow.
22056 * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
22057 to build the mask.
22058 (decode_field_reference): Likewise.
22059 (all_ones_mask_p): Likewise.
22060 (native_interpret_int): Use build_int_cst_wide_type.
22061 (fold_binary): Use build_int_cst_type to build an all-ones
22062 value.
22063 * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
22064
22065 2007-01-08 Daniel Jacobowitz <dan@codesourcery.com>
22066
22067 * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
22068
22069 2007-01-09 Ben Elliston <bje@au.ibm.com>
22070
22071 * genautomata.c (STATS_OPTION): New option.
22072 (stats_flag): New flag.
22073 (gen_automata_option): Handle it.
22074 (initiate_automaton_gen): Ditto.
22075 (write_automata): Output statistics only if stats_flag is
22076 set. Likewise, output time statistics only if time_flag is set.
22077 * doc/md.texi (Processor pipeline description): Document new flag.
22078
22079 2007-01-08 Richard Guenther <rguenther@suse.de>
22080
22081 * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
22082 * tree.c (build_int_cst_type): Likewise.
22083 (size_in_bytes): Don't call force_fit_type on the result.
22084 (int_fits_type_p): Use fit_double_type.
22085 * fold-const.c (fit_double_type): New function.
22086 (force_fit_type): Use it.
22087 * tree.h (fit_double_type): Export.
22088
22089 2007-01-08 Jan Hubicka <jh@suse.cz>
22090
22091 * tree-vectorizer.c (gate_increase_alignment): Fix return type.
22092 * ipa.c (function_and_variable_visibility): Fix return type.
22093
22094 2007-01-08 Richard Guenther <rguenther@suse.de>
22095
22096 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
22097 of offset to build the index.
22098 * tree-pretty-print.c (dump_generic_node): Don't build negated
22099 const just for printing.
22100 * c-pretty-print.c (pp_c_integer_constant): Likewise.
22101 * builtins.c (fold_builtin_int_roundingfn): Check if result
22102 fits the type by using force_fit_type and comparing the result.
22103 * predict.c (predict_loops): Use compare_tree_int for comparison.
22104 * tree.c (build_int_cst): Fall back to integer_type_node for
22105 NULL_TREE type.
22106 (build_int_cst_wide): Assert type is non-null.
22107
22108 2007-01-08 Roberto Costa <roberto.costa@st.com>
22109
22110 * tree-vrp.c (extract_range_from_cond_expr): New.
22111 (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
22112 * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
22113 as expressions.
22114 (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
22115 * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
22116 tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
22117 used as expressions.
22118 * tree-object-size.c (cond_expr_object_size): New.
22119 (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
22120
22121 2007-01-08 Jan Hubicka <jh@suse.cz>
22122
22123 * tree-ssa-forwprop.c (forward_propagate_into_cond,
22124 tree_ssa_forward_propagate_single_use_va): Release defs of propagated
22125 statement.
22126
22127 2007-01-08 Richard Guenther <rguenther@suse.de>
22128
22129 PR tree-optimization/23603
22130 * tree-vrp.c (set_value_range_to_truthvalue): New function.
22131 (extract_range_from_binary): Fall back to truthvalue instead of
22132 varying for TRUTH_*_EXPR.
22133 (extract_range_from_comparison): Fall back to truthvalue instead of
22134 varying.
22135 (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
22136 if all visited PHI values were constant.
22137
22138 2007-01-08 Jan Hubicka <jh@suse.cz>
22139
22140 * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
22141 (cgraph_analyze_function): break out from ...
22142 (cgraph_finalize_compilation_unit): ... here.
22143 (cgraph_expand_function): Remove forgoten commented out line.
22144 (cgraph_optimize): Analyze functions.
22145
22146 2007-01-08 Jan Hubicka <jh@suse.cz>
22147
22148 * tree-pas.h (TODO_remove_function): New flag.
22149 (TODO_update*): Renumber.
22150 (pass_ipa_increase_alignment,
22151 pass_ipa_function_and_variable_visibility): New passes.
22152 * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
22153 (cgraph_function_and_variable_visibility): Move to ipa.c
22154 (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
22155 cgraph_increase_alignment.
22156 * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
22157 (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
22158 calling tree-inline.
22159 (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
22160 (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
22161 * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
22162 (gate_increase_alignment): New function.
22163 (pass_ipa_increase_alignment): New pass.
22164 * ipa.c: Inline tree-pass.h and timevar.h
22165 (function_and_variable_visibility): Move here from cgraphunit.c
22166 * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
22167 * passes.c (init_optimization_passes): Add the two new passes.
22168 (execute_todo): Handle cgraph_remove_functions.
22169
22170 2007-01-08 Nick Clifton <nickc@redhat.com>
22171
22172 * config/frv/predicates.md (reg_or_0_operand): Accept
22173 CONST_DOUBLEs.
22174
22175 2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
22176
22177 * config/bfin/rtems.h, config/bfin/t-rtems: New.
22178 * config.gcc: Add bfin*-rtems*.
22179
22180 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
22181
22182 * c.opt: Add -flax-vector-conversions.
22183 * c-typeck.c (convert_for_assignment): Pass flag to
22184 vector_types_convertible_p to allow emission of note.
22185 (digest_init): Likewise.
22186 * c-opts.c: Handle -flax-vector-conversions.
22187 * c-common.c (flag_lax_vector_conversions): New.
22188 (vector_types_convertible_p): Unless -flax-vector conversions
22189 has been passed, disallow conversions between vectors with
22190 differing numbers of subparts and/or element types. If such
22191 a conversion is disallowed, possibly emit a note on the first
22192 occasion only to inform the user of -flax-vector-conversions.
22193 The new last argument specifies this.
22194 * c-common.h (flag_lax_vector_conversions): New.
22195 (vector_types_convertible_p): Add extra argument.
22196 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
22197 char_type_node for V*QI type vectors.
22198 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
22199 Update to satisfy new typechecking rules.
22200 * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
22201 C and C++ variants.
22202 * doc/invoke.texi (C Dialect Options): Document
22203 -flax-vector-conversions.
22204
22205 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
22206
22207 PR tree-optimization/29877
22208 * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
22209 a register variable on the RHS to not be replaceable.
22210
22211 2007-01-08 Chen Liqin <liqin@sunnorth.com.cn>
22212 * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
22213 * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
22214 const_simm15, const_pow2, const_npow2): Added.
22215 * config/score/misc.md (insv, extv, extzv, movmemsi,
22216 move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
22217 * config/score/score.c (score_address_cost, score_select_cc_mode):
22218 Added.
22219 Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
22220 Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
22221 Update score_print_operand.
22222 * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
22223 Adjust register allocate order and update some macro define.
22224 * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
22225 mdx_block_move_straight, mdx_block_move_loop_head,
22226 mdx_block_move_loop_body, mdx_block_move_loop_foot,
22227 mdx_block_move_loop, mdx_block_move): Added.
22228 (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
22229 mdp_limm): Updated and fix some bug and typo.
22230 * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
22231 (movsf, movdf, doloop_end): Added.
22232
22233 2007-01-08 Kazu Hirata <kazu@codesourcery.com>
22234
22235 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
22236 config/arm/thumb2.md: Fix comment typos.
22237 * doc/extend.texi: Fix a typo.
22238
22239 2007-01-07 Eric Christopher <echristo@apple.com>
22240
22241 * configure.ac: Check for __stack_chk_fail for darwin.
22242 * configure: Regenerate.
22243
22244 2007-01-07 Richard Guenther <rguenther@suse.de>
22245
22246 * tree-vrp.c (extract_range_from_assert): CSE calls to
22247 compare_values where possible.
22248 (extract_range_from_unary_expr): Likewise.
22249
22250 2007-01-07 Anatoly Sokolov <aesok@post.ru>
22251
22252 * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
22253 * config/avr/avr.c (call_insn_operand): Delete function.
22254 * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
22255 instead of register number. Use predicates.
22256 * config/avr/predicates.md (const0_operand, reg_or_0_operand,
22257 call_insn_operand): Add.
22258
22259 2007-01-06 Jan Hubicka <jh@suse.cz>
22260
22261 * tree-pass.h (pass_build_cgraph_edges): Declare.
22262 * cgraphunit.c (record_refernece): Move to cgraphbuild.c
22263 (visited_nodes): Remove.
22264 (cgraph_create_edges): Move to cgraphbuild.c; rename to
22265 build_cgrpah_edges; make visited_nodes local.
22266 (cgraph_process_new_functions): DO not call initialize_inline_failed.
22267 (record_references_in_initializer): Move to cgraphbuild.c
22268 (initialize_inline_failed, rebuild_cgraph_edges,
22269 pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
22270 (verify_cgraph_node): Make visited_nodes local.
22271 (cgraph_analyze_function): Do not call cgraph_create_edges and
22272 initialize_inline_failed.
22273 (cgraph_expand_function): Do not call cgraph_lower_function;
22274 assert that function is already lowered.
22275 * Makefile.in (cgraphbuild.o): New.
22276 * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
22277 at the end of lowering passes.
22278
22279 2007-01-06 Steven Bosscher <steven@gcc.gnu.org>
22280
22281 * ifcvt.c (cond_move_convert_if_block): New function, code
22282 factored out from...
22283 (cond_move_process_if_block): ...here. Call the new function
22284 on the THEN and ELSE blocks.
22285 (merge_if_block): Do not copy global_live_at_end, merge_blocks
22286 already takes care of this.
22287
22288 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22289
22290 PR c/19978
22291 * tree.h (TREE_OVERFLOW_P): New.
22292 * c-typeck.c (parser_build_unary_op): Warn only if result
22293 overflowed and operands did not.
22294 (parser_build_binary_op): Likewise.
22295 (convert_for_assignment): Remove redundant overflow_warning.
22296 * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
22297
22298 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22299
22300 * c-typeck.c (store_init_value): Split over two lines to follow
22301 the GNU coding style.
22302
22303 2007-01-05 Benjamin Kosnik <bkoz@redhat.com>
22304
22305 * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
22306 __GXX_EXPERIMENTAL_CXX0X__.
22307 * doc/cpp.texi: Same.
22308
22309 2007-01-05 Richard Guenther <rguenther@suse.de>
22310
22311 PR middle-end/27826
22312 * tree.c (get_narrower): Do not construct COMPONENT_REFs
22313 with mismatched types. Instead explicitly build a
22314 conversion NOP_EXPR.
22315
22316 2007-01-05 Ian Lance Taylor <iant@google.com>
22317
22318 * c-common.c (decl_with_nonnull_addr_p): New function.
22319 (c_common_truthvalue_conversion): Call it.
22320 * c-typeck.c (build_binary_op): Likewise.
22321 * c-common.h (decl_with_nonnull_addr_p): Declare.
22322
22323 2007-01-05 Jakub Jelinek <jakub@redhat.com>
22324
22325 PR c/30360
22326 * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
22327 denom against 0.0.
22328
22329 2007-01-05 Joel Brobecker <brobecker@adacore.com>
22330
22331 * doc/install.texi (Final install): Document the fact that
22332 the GNAT runtime should not be stripped.
22333
22334 2007-01-04 Jan Hubicka <jh@suse.cz>
22335
22336 * tree-inline.c (fold_marked_statements): Update operand caches
22337 and EH after folding
22338
22339 2007-01-04 Ian Lance Taylor <iant@google.com>
22340
22341 * c-common.c (check_function_nonnull): Whitespace fix.
22342
22343 2007-01-04 Jan Hubicka <jh@suse.cz>
22344
22345 * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
22346 comitted older version of patch.
22347 (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
22348 function, celanup cfg and collect garbage.
22349
22350 2007-01-04 Mike Stump <mrs@apple.com>
22351
22352 * Makefile.in (mostlyclean): Don't remove libgcc anymore.
22353 (clean): Likewise.
22354
22355 2007-01-04 Eric Christopher <echristo@apple.com>
22356
22357 * libgcc2.c (__bswapsi2): Use SItype.
22358 (__bswapdi2): Use DItype.
22359 * libgcc2.h: Update for above.
22360
22361 2007-01-04 Paul Brook <paul@codesourcery.com>
22362
22363 * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
22364 mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
22365 mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
22366 umulsidi3, umulsidi3adddi, smulsi3_highpart,
22367 umulsi3_highpart): Make conditional on !arm_arch6.
22368 (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
22369 mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
22370 mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
22371 umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
22372 umulsi3_highpart_v6): New insns.
22373
22374 2007-01-04 Roger Sayle <roger@eyesopen.com>
22375
22376 * fold-const.c (fold_convert): When casting an expression to void,
22377 fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
22378 have a type. Instead of attempting to build a NOP_EXPR, return
22379 these "special" trees directly.
22380
22381 2007-01-04 Joseph Myers <joseph@codesourcery.com>
22382
22383 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
22384 MULT inside MINUS as either argument. Use rs6000_cost->dmul -
22385 rs6000_cost->fp not 0 as adjustment for outer NEG.
22386
22387 2007-01-04 Jan Hubicka <jh@suse.cz>
22388
22389 * cgraph.c (cgraph_release_function_body): New function.
22390 (cgraph_remove_node): Use it.
22391 * cgraph.h (cgraph_release_function_body): Declare.
22392 * cgraphunit.c (cgraph_expand_function): Use it.
22393 * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
22394 * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
22395 is initialized and while compilation of other function is running.
22396 * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
22397 statement CFG annotations from here to ...
22398 * tree-cfg.c (delete_tree_cfg_annotations): ... here.
22399
22400 2007-01-04 Zdenek Dvorak <dvorakz@suse.cz>
22401
22402 * cfgloop.h (enum li_flags): Make the constants powers of two.
22403
22404 2007-01-04 Jan Hubicka <jh@suse.cz>
22405
22406 * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
22407 set.
22408 (fold_marked_statements): New function.
22409 (optimize_inline_calls, tree_function_versioning): Fold new statements.
22410 * tree-inline.h (copy_body_data): Add statements_to_fold.
22411
22412 2007-01-03 Daniel Jacobowitz <dan@codesourcery.com>
22413
22414 * config.gcc: Mention libgcc/config.host.
22415 * Makefile.in: Update comments mentioning libgcc.
22416 (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
22417 (all.cross, start.encap, rest.encap, rest.cross): Update
22418 dependencies for libgcc move.
22419 (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
22420 (clean-target, clean-target-libgcc): Delete.
22421 (srcdirify, GCC_EXTRA_PARTS): New macros.
22422 (libgcc-support, libgcc.mvars): New rules.
22423 (distclean): Remove mention of mklibgcc.
22424 (install): Don't reference INSTALL_LIBGCC.
22425 (install-common): Don't reference EXTRA_PARTS.
22426 (install-libgcc, install-multilib): Delete rules.
22427 * mklibgcc.in: Delete file.
22428 * doc/configfiles.texi: Don't mention mklibgcc.
22429
22430 * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
22431 * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
22432 * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
22433 * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
22434 (mklibgcc, ldblspecs): Likewise.
22435
22436 * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
22437 (posixpre.def): Use $(T).
22438 (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
22439 (SHLIB_SRC, SHLIB_INSTALL): Delete.
22440 (SHLIB_LINK): Make dummy.
22441 * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
22442
22443 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
22444
22445 * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
22446 * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
22447 config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
22448 config/rs6000/t-newas, config/sparc/t-elf: Likewise.
22449
22450 * configure.ac (all_outputs): Remove mklibgcc.
22451 * configure: Regenerated.
22452
22453 2007-01-03 Josh Conner <jconner@apple.com>
22454
22455 PR middle-end/29683
22456 * calls.c (compute_argument_addresses): Set stack and stack_slot
22457 for partial args, too.
22458 (store_one_arg): Use locate.size.constant for the size when
22459 generating a save_area.
22460
22461 2007-01-03 Robert Kennedy <jimbob@google.com>
22462
22463 * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
22464 whose definitions are deleted due to basic block merging.
22465
22466 2007-01-03 Paul Brook <paul@codesourcery.com>
22467
22468 PR target/16634
22469 * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
22470 functions.
22471 (use_return_insn): Return 0 for Thumb interrupt functions.
22472 (print_multi_reg): Add rfe argument for IRQ returns.
22473 (arm_output_epilogue): Pop interrupt return address directly into PC.
22474 (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
22475
22476 2007-01-03 Paul Brook <paul@codesourcery.com>
22477
22478 Merge from sourcerygxx-4_1.
22479 * config/arm/thumb2.md: New file.
22480 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
22481 Thumb-2.
22482 * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
22483 * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
22484 (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
22485 * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
22486 tables.
22487 (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
22488 * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
22489 comptibility.
22490 * config/arm/ieee754-sf.S: Ditto.
22491 * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
22492 (thumb1_base_register_rtx_p): ... to this.
22493 (thumb_index_register_rtx_p): Rename...
22494 (thumb1_index_register_rtx_p): ... to this.
22495 (thumb_output_function_prologue): Rename...
22496 (thumb1_output_function_prologue): ... to this.
22497 (thumb_legitimate_address_p): Rename...
22498 (thumb1_legitimate_address_p): ... to this.
22499 (thumb_rtx_costs): Rename...
22500 (thumb1_rtx_costs): ... to this.
22501 (thumb_compute_save_reg_mask): Rename...
22502 (thumb1_compute_save_reg_mask): ... to this.
22503 (thumb_final_prescan_insn): Rename...
22504 (thumb1_final_prescan_insn): ... to this.
22505 (thumb_expand_epilogue): Rename...
22506 (thumb1_expand_epilogue): ... to this.
22507 (arm_unwind_emit_stm): Rename...
22508 (arm_unwind_emit_sequence): ... to this.
22509 (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
22510 thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
22511 thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
22512 arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
22513 thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
22514 thumb2_output_casesi): New functions.
22515 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
22516 (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
22517 FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
22518 THUMB2_WORK_REGS): Define.
22519 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
22520 arm_condexec_mask, arm_condexec_masklen)): New variables.
22521 (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
22522 (arm_override_options): Check new CPU capabilities.
22523 Set new architecture flag variables.
22524 (arm_isr_value): Handle v7m interrupt functions.
22525 (user_return_insn): Return 0 for v7m interrupt functions. Handle
22526 Thumb-2.
22527 (const_ok_for_arm): Handle Thumb-2 constants.
22528 (arm_gen_constant): Ditto. Use movw when available.
22529 (arm_function_ok_for_sibcall): Return false for v7m interrupt
22530 functions.
22531 (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
22532 (thumb_find_work_register, arm_load_pic_register,
22533 legitimize_tls_address, arm_address_cost, load_multiple_sequence,
22534 emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
22535 print_multi_reg, output_mov_long_double_fpa_from_arm,
22536 output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
22537 output_mov_double_fpa_from_arm, output_move_double,
22538 arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
22539 output_return_instruction, arm_output_function_prologue,
22540 arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
22541 arm_output_mi_thunk, thumb_set_return_address): Ditto.
22542 (arm_expand_prologue): Handle Thumb-2. Use arm_save_coproc_regs.
22543 (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
22544 (arithmetic_instr, shift_op): Use arm_shift_nmem.
22545 (arm_print_operand): Use arm_print_condition. Handle '(', ')', '.',
22546 '!' and 'L'.
22547 (arm_final_prescan_insn): Use extract_constrain_insn_cached.
22548 (thumb_expand_prologue): Use thumb_set_frame_pointer.
22549 (arm_file_start): Output directive for unified syntax.
22550 (arm_unwind_emit_set): Handle stack alignment instruction.
22551 * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
22552 Add v6t2, v7, v7a, v7r and v7m.
22553 (RETLDM): Add Thumb-2 code.
22554 (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
22555 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
22556 (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
22557 TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
22558 THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
22559 ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
22560 THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
22561 CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
22562 ADJUST_INSN_LENGTH): Define.
22563 (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
22564 STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
22565 BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
22566 PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
22567 SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
22568 TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
22569 HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
22570 HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
22571 REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
22572 REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
22573 LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
22574 GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
22575 ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
22576 FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
22577 PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
22578 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
22579 * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
22580 cortex-m3.
22581 * config/arm/arm-tune.md: Regenerate.
22582 * config/arm/arm-protos.h: Update prototypes.
22583 * config/arm/vfp.md: Enable patterns for Thumb-2.
22584 (arm_movsi_vfp): Add movw alternative. Use output_move_vfp.
22585 (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
22586 (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
22587 thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
22588 * config/arm/libunwind.S: Add Thumb-2 code.
22589 * config/arm/constraints.md: Update include Thumb-2.
22590 * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
22591 * config/arm/ieee754-df.S: Ditto.
22592 * config/arm/bpabi.S: Ditto.
22593 * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
22594 * config/arm/predicates.md (low_register_operand,
22595 low_reg_or_int_operand, thumb_16bit_operator): New.
22596 (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
22597 (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
22598 * config/arm/t-arm-elf: Add armv7 multilib.
22599 * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
22600 Include thumb2.md.
22601 (UNSPEC_STACK_ALIGN, ce_count): New.
22602 (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
22603 arm_zero_extendsidi2, arm_zero_extendqidi2): New
22604 insns/expanders.
22605 * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
22606 (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
22607 thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
22608 * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
22609 (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
22610 thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
22611 insns.
22612 * doc/extend.texi: Document ARMv7-M interrupt functions.
22613 * doc/invoke.texi: Document Thumb-2 new cores+architectures.
22614
22615 2007-01-03 Jakub Jelinek <jakub@redhat.com>
22616
22617 * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
22618 (struct _Unwind_Context): Rename args_size to flags, remove
22619 signal_frame field, add a new args_size field and version field.
22620 (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
22621 _Unwind_IsExtendedContext): New inline functions.
22622 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
22623 Assume by_value array is only present if _Unwind_IsExtendedContext.
22624 (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
22625 _Unwind_IsSignalFrame.
22626 (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
22627 (uw_update_context_1): Use _Unwind_SetSignalFrame.
22628 (uw_init_context_1): Initialize context->flags to
22629 EXTENDED_CONTEXT_BIT.
22630 * config/rs6000/linux-unwind.h (frob_update_context): Use
22631 _Unwind_SetSignalFrame.
22632
22633 2007-01-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
22634
22635 PR middle-end/30353
22636 * gimplify.c (gimplify_modify_expr_complex_part): Move below
22637 tree_to_gimple_tuple. Call tree_to_gimple_tuple when we need
22638 the value.
22639
22640 2007-01-03 Kazu Hirata <kazu@codesourcery.com>
22641
22642 * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
22643 REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
22644 RET, AT_SP): Remove.
22645 * config/i386/i386.md (*sse_prologue_save_insn): Use return
22646 instead of RET.
22647
22648 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
22649 * cfgbuild.c (find_basic_blocks): Likewise.
22650 * cfgrtl.c (rtl_create_basic_block): Likewise.
22651 * function.c (temp_slots_at_level): Likewise.
22652 * reg-stack.c (stack_regs_mentioned): Likewise.
22653 * regclass.c (allocate_reg_info): Likewise.
22654 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
22655 set_bb_for_stmt, move_block_to_fn): Likewise.
22656 * tree-complex.c (tree_lower_complex): Likewise.
22657 * vec.h (VEC_safe_grow_cleared): New.
22658
22659 * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
22660
22661 2007-01-03 Zdenek Dvorak <dvorakz@suse.cz>
22662
22663 * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
22664 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
22665 to loop_version.
22666 * cfgloopmanip.c (scale_loop_frequencies): Export.
22667 (loopify): Scale the frequencies by prescribed coefficients.
22668 (set_zero_probability): New function.
22669 (duplicate_loop_to_header_edge): Improve updating of frequencies.
22670 (lv_adjust_loop_entry_edge, loop_version): Set probabilities
22671 and frequencies according to arguments.
22672 * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
22673 correctly.
22674 * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
22675 * modulo-sched.c (sms_schedule): Set probabilities for entering
22676 versioned loop correctly.
22677 * tree-vect-transform.c (vect_transform_loop): Ditto.
22678 * cfgloop.h (loopify, loop_version): Declaration changed.
22679 (scale_loop_frequencies): Declared.
22680
22681 2007-01-02 Jan Hubicka <jh@suse.cz>
22682
22683 * cgraph.c: Include tree-flow.h
22684 (cgraph_add_new-function): Handle IPA_SSA mode; execute
22685 early_local_passes.
22686 * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
22687 * tree-pass.h (pass_all_early_optimizations): Declare.
22688 * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
22689 early_local_passes.
22690 (cgraph_analyze_function): Do early_local_passes.
22691 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
22692 Do not add referenced vars.
22693 * tree-optimize.c (gate_all_optimizations): Do not execute when not in
22694 SSA form.
22695 (gate_all_early_local_passes): New gate.
22696 (pass_early_local_passes): Use new gate.
22697 (execute_early_local_optimizations): New functions.
22698 (gate_all_early_optimizations): New gate.
22699 (pass_all_early_optimizations): New pass.
22700 (execute_free_datastructures): Free SSA only when initialized.
22701 (gate_init_datastructures): Init only when optimizing.
22702 (tree_lowering_passes): Do early local passes when called late.
22703 * tree-profile.c (do_tree_profiling): Don't profile functions added
22704 late.
22705 (do_early_tree_profiling, pass_early_tree_profile): Kill.
22706 * tree-cfg.c (update_modified_stmts): Do not update when operands are
22707 not active.
22708 * passes.c (init_optimizations_passes): Reorder so we go into SSA
22709 during early_local_passes.
22710 * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
22711
22712
22713 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
22714
22715 * Makefile.in: Update copyright year.
22716
22717 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
22718
22719 * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
22720 in $(lang_checks) and check-consistency targets.
22721
22722 2007-01-02 Jan Hubicka <jh@suse.cz>
22723
22724 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
22725 Do not add referenced vars.
22726 * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
22727 are not active.
22728 * passes.c (init_optimization_passes): Put mudflap_2 after
22729 free_datastructures.
22730
22731 2007-01-02 Jan Hubicka <jh@suse.cz>
22732
22733 * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
22734 Set NOTHROW flag on call statements proved to be nothrow.
22735 Update statement of local calls so new pure/const functions are
22736 updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
22737 goto receivers.
22738 (tree_rest_of_compilation): Register hooks and initialize bitmap
22739 early. Do not set after_inlining flag.
22740
22741 2007-01-02 Steve Ellcey <sje@cup.hp.com>
22742
22743 * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
22744 HOST_BITS_PER_LONGLONG
22745
22746 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22747
22748 PR c/19977
22749 * c-typeck.c (store_init_value): Don't emit pedantic overflow
22750 warning for non-static initializers.
22751
22752 2007-01-02 Steven Bosscher <steven@gcc.gnu.org>
22753
22754 * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
22755 m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
22756 rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
22757 Always use set_unique_reg_note to add REG_EQUAL notes.
22758
22759 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
22760
22761 Revert:
22762 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
22763
22764 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
22765 * cfgbuild.c (find_basic_blocks): Likewise.
22766 * cfgrtl.c (rtl_create_basic_block): Likewise.
22767 * function.c (temp_slots_at_level): Likewise.
22768 * reg-stack.c (stack_regs_mentioned): Likewise.
22769 * regclass.c (allocate_reg_info): Likewise.
22770 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
22771 set_bb_for_stmt, move_block_to_fn): Likewise.
22772 * tree-complex.c (tree_lower_complex): Likewise.
22773 * vec.h (VEC_safe_grow_cleared): New.
22774
22775 2007-01-02 Ian Lance Taylor <iant@google.com>
22776
22777 * c-common.c (c_common_truthvalue_conversion): When warning about
22778 using an assignment as a truth value, set TREE_NO_WARNING.
22779
22780 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22781
22782 PR middle-end/7651
22783 * c.opt (Wold-style-declaration): New.
22784 * doc/invoke.texi (C-only Warning Options): New.
22785 (Wold-style-declaration): Document it.
22786 (Wextra): Enabled by -Wextra.
22787 * c-opts.c (c_common_post_options): Enabled by -Wextra.
22788 * c-decl.c (declspecs_add_scspec): Replace -Wextra with
22789 -Wold-style-declaration.
22790
22791 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
22792
22793 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
22794 * cfgbuild.c (find_basic_blocks): Likewise.
22795 * cfgrtl.c (rtl_create_basic_block): Likewise.
22796 * function.c (temp_slots_at_level): Likewise.
22797 * reg-stack.c (stack_regs_mentioned): Likewise.
22798 * regclass.c (allocate_reg_info): Likewise.
22799 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
22800 set_bb_for_stmt, move_block_to_fn): Likewise.
22801 * tree-complex.c (tree_lower_complex): Likewise.
22802 * vec.h (VEC_safe_grow_cleared): New.
22803
22804 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
22805
22806 * c-common.c (c_common_nodes_and_builtins): Since variants of
22807 void_type_node get built before it is given a name, we need to
22808 give those variants the name, too.
22809 (complete_array_type): We need to work with the canonical main
22810 type of the array, from which we will build the qualified version.
22811 * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
22812 * print-tree.c (print_node): Display canonical type information
22813 for each type.
22814 * stor-layout.c (layout_type): When we don't know the
22815 alignment of a type for which we're building an array, we end up
22816 guessing wrong, so make the type require structural equality.
22817 * tree.c (make_node_stat): When we build a new type, it is its
22818 own canonical type.
22819 (build_type_attribute_qual_variant): When building an attribute
22820 variant, its canonical type is the non-attribute variant. However,
22821 if the attributes are target-dependent and they differ, we need to
22822 use structural equality checks for this type.
22823 (build_qualified_type): A qualified type is not equivalent to its
22824 unqualified variant; set the canonical type appropriately.
22825 (build_distinct_type_copy): When building a distinct type from
22826 another type, the new type is its own canonical type.
22827 (build_variant_type_copy): When building a new type variant, we
22828 assume that it is equivalent to the original type.
22829 (build_pointer_type_for_mode): When building a pointer type, also
22830 build a canonical type pointer.
22831 (build_reference_type_for_mode): When building a reference type,
22832 also build a canonical type reference.
22833 (build_index_type): When we can't hash an index type (e.g.,
22834 because its maximum value is negative), the index type requires
22835 structural equality tests.
22836 (build_array_type): Build the canonical form of an array type.
22837 (build_function_type): Function types require structural equality,
22838 because they contain default arguments, attributes, etc.
22839 (build_method_type_directly): Ditto for method types.
22840 (build_offset_type): Build the canonical offset type.
22841 (build_complex_type): Build the canonical vector type.
22842 (make_vector_type): Build the canonical vector type.
22843 * tree.h (TYPE_CANONICAL): New.
22844 (TYPE_STRUCTURAL_EQUALITY_P): New.
22845 (SET_TYPE_STRUCTURAL_EQUALITY): New.
22846 (struct tree_type): Added "canonical" field.
22847 * params.h (VERIFY_CANONICAL_TYPES): New.
22848 * doc/c-tree.texi (TYPE_CANONICAL): Document.
22849 (TYPE_STRUCTURAL_EQUALITY_P): Document.
22850 (SET_TYPE_STRUCTURAL_EQUALITY): Document.
22851 * doc/invoke.texi (verify-canonical-types): Document --param
22852 parameter for verifying canonical types.
22853
22854 2007-01-02 Joseph Myers <joseph@codesourcery.com>
22855
22856 * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
22857 powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
22858 powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
22859 powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
22860 tm_file.
22861 * config/rs6000/e500.h: New.
22862 * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
22863 TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
22864 Remove.
22865 * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
22866 TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
22867 TARGET_E500_DOUBLE): Remove.
22868 * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
22869 TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
22870 * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
22871 * config/rs6000/rs6000.c (rs6000_override_options): Use
22872 CHECK_E500_OPTIONS.
22873
22874 2007-01-02 Joseph Myers <joseph@codesourcery.com>
22875
22876 * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
22877 TARGET_E500_DOUBLE), not TARGET_E500, for %y.
22878 (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
22879 rs6000_emit_cmove): Don't check TARGET_E500.
22880 * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
22881 sordered): Don't check TARGET_E500.
22882
22883 2007-01-01 Eric Christopher <echristo@apple.com>
22884
22885 * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
22886 HARD_REGISTER_NUM_P.
22887
22888 2007-01-01 Roger Sayle <roger@eyesopen.com>
22889
22890 * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
22891 "X eq/ne (C1^C2)". Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
22892 has no side-effects. Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
22893 eq/ne Y".
22894
22895 2007-01-01 Mike Stump <mrs@apple.com>
22896
22897 * configure.ac: Remove support for building with Apple's gcc-3.1.
22898
22899 2007-01-02 Joseph Myers <joseph@codesourcery.com>
22900
22901 PR middle-end/30311
22902 * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
22903 REG is a hard register. Do not modify REG before calling
22904 subreg_nregs.
22905 * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
22906 multiple of the size of YMODE for certain lowpart cases.
22907
22908 2007-01-01 Andrew Pinski <pinskia@gmail.com>
22909
22910 PR middle-end/30253
22911 * gimplify (voidify_wrapper_expr): Update for
22912 GIMPLE_MODIFY_STMT.
22913
22914 2007-01-01 Andreas Schwab <schwab@suse.de>
22915
22916 PR target/29166
22917 * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
22918 save of BR0 in extra_spill_size instead of spill_size.
22919 (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
22920 area.
22921 (ia64_expand_epilogue): Restore BR0 from its new location.
22922
22923 2007-01-01 Andrew Pinski <pinskia@gmail.com>
22924
22925 * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
22926 Use a temporary variable if the left hand side is not a gimple
22927 register.
22928
22929 2007-01-01 Andrew Pinski <pinskia@gmail.com>
22930
22931 * gimplify.c (gimplify_return_expr): Make the temporary variable
22932 for the return expression, a gimple register variable.
22933
22934 2007-01-01 Jan Hubicka <jh@suse.cz>
22935
22936 * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
22937 INSN_LIST.
22938
22939 2007-01-01 Mike Stump <mrs@apple.com>
22940
22941 * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
22942 .literal16.
22943 * config/darwin.c (machopic_select_rtx_section): Use
22944 HAVE_GAS_LITERAL16.
22945 (darwin_mergeable_constant_section): Likewise.
22946 * configure: Regenerate.
22947 * config.in: Regenerate.
22948
22949 2007-01-01 Jan Hubicka <jh@suse.cz>
22950 Andrew Pinski <pinskia@gmail.com>
22951
22952 * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
22953 before starting IPA passes.