1 2010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
3 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
4 "unused" with attribute "used".
5 (__JCR_END__): Likewise.
6 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
8 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
10 2010-07-14 Richard Guenther <rguenther@suse.de>
12 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
13 (maybe_fixup_decls): Likewise.
14 (input_gimple_stmt): Do not fixup anything.
15 * lto-streamer-out.c (output_gimple_stmt): Make sure all
16 non-automatic variable uses are wrapped inside a MEM_REF.
18 2010-07-14 Richard Henderson <rth@redhat.com>
20 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
22 * varasm.c (assemble_variable): Remove early exit for functions;
23 assert that we're given a variable.
25 2010-07-14 Jie Zhang <jie@codesourcery.com>
27 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
28 cortex_a8_default when neon_type is not none.
30 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
32 * lower-subreg.c (subreg_context): New static bitmap.
33 (decompose_multiword_subregs): Allocate and free it.
34 (find_decomposable_subregs): Set a bit in it for a register that
35 occurs in a subreg that changes mode but not size.
36 (can_decompose_p): Test it instead of non_decomposable_context.
38 2010-07-14 Richard Guenther <rguenther@suse.de>
40 PR tree-optimization/44824
41 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
42 is_gimple_mem_ref_addr.
43 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
44 non-decl_address_invariant_p addresses.
46 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
48 * reload.c (find_reloads): Revert code to penalize small register
49 classes that was brought in with the IRA merge.
51 2010-07-14 Richard Guenther <rguenther@suse.de>
53 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
54 as base of ARRAY_REFs.
56 2010-07-14 Richard Guenther <rguenther@suse.de>
59 * tree-pretty-print.c (do_niy): Do not print a newline.
61 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
63 * ira-int.h (struct ira_object): New.
64 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P
66 (struct ira_allocno): Remove members min, max,
67 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
68 conflict_allocnos_num and conflict_vec_p. Add new member object.
69 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
70 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
71 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
72 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
73 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
74 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
75 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
76 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
77 an ira_object_t rather than ira_allocno_t. All uses changed.
78 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
79 contains a vector of ira_object_t; all uses changed.
80 (ira_objects_num): Declare variable.
81 (ira_create_allocno_object): Declare function.
82 (ira_conflict_vector_profitable_p): Adjust prototype.
83 (ira_allocate_conflict_vec): Renamed from
84 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
85 (ira_allocate_object_conflicts): Renamed from
86 ira_allocate_allocno_conflicts; first arg now ira_object_t.
87 (struct ira_object_iterator): New.
88 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
89 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
90 to conflict_vec_p. All uses changed.
91 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
92 Changed to take into account that conflicts are now tracked for
94 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from
95 CONFLICT_ALLOCNO_P. Args changed to accept ira_object_t. All
97 (allocnos_conflict_p): New static function.
98 (collected_conflict_objects): Renamed from collected_allocno_objects;
99 now a vector of ira_object_t. All uses changed.
100 (build_conflict_bit_table): Changed to take into account that
101 conflicts are now tracked for objects.
102 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
103 (print_allocno_conflicts, ira_build_conflicts): Likewise.
104 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
105 setup_allocno_left_conflicts_size, allocno_reload_assign,
106 fast_allocation): Likewise.
107 * ira-lives.c (make_hard_regno_born, make_allocno_born)
108 process_single_reg_class_operands, process_bb_node_lives): Likewise.
109 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
111 * ira-build.c (ira_objects_num): New variable.
112 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
113 contains a vector of ira_object_t; all uses changed.
114 (ira_object_id_map_vec): Corresponding change.
115 (object_pool): New static variable.
116 (initiate_allocnos): Initialize it.
117 (finish_allocnos): Free it.
118 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
120 (ira_create_allocno): Don't set members that were removed.
121 (ira_set_allocno_cover_class): Don't change conflict hard regs.
122 (merge_hard_reg_conflicts): Changed to take into account that
123 conflicts are now tracked for objects.
124 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
125 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
126 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
127 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
128 setup_min_max_conflict_allocno_ids, ): Likewise.
129 ((add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
130 to ira_object_t; all callers changed.
131 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
132 to ira_object_t, all callers changed.
133 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
134 to ira_object_t, all callers changed.
135 (conflict_check, curr_conflict_check_tick): Renamed from
136 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
138 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
139 arg changed to ira_object_t, all callers changed.
140 (create_cap_allocno): Call ira_create_allocno_object.
141 (finish_allocno): Free the corresponding object.
142 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
143 callers changed. Adjusted for dealing with objects.
144 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
145 dealing with objects.
146 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
148 * ira-int.h (struct live_range): Rename allocno member to object and change
149 type to ira_object_t.
150 (struct ira_object): New member live_ranges.
151 (struct ira_allocno): Remove member live_ranges.
152 (ALLOCNO_LIVE_RANGES): Remove.
153 (OBJECT_LIVE_RANGES): New macro.
154 (ira_create_live_range, ira_copy_live_range_list,
155 ira_merge_live_range_list, ira_live_ranges_intersect_p,
156 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
157 * ira-build.c (ira_create_object): Initialize live ranges here.
158 (ira_create_allocno): Not here.
159 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
160 changed to ira_object_t, all callers changed.
161 (copy_live_range): Rename from copy_allocno_live_range, all callers
163 (ira_copy_live_range_list): Rename from ira_copy_allocno_live_range_list,
165 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
167 (ira_live_ranges_intersect_p): Rename from
168 ira_allocno_live_ranges_intersect_p, all callers changed.
169 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
171 (ira_finish_live_range_list): Rename from
172 ira_finish_allocno_live_range_list, all callers changed.
173 (change_object_in_range_list): Rename from change_allocno_in_range_list,
174 last arg changed to ira_object_t, all callers changed.
175 (finish_allocno): Changed to expect live ranges in the allocno's object.
176 (move_allocno_live_ranges, copy_allocno_live_ranges,
177 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
178 ira_flattening, ira_build): Likewise.
179 * ira-color.c (allocnos_have_intersected_live_ranges_p,
180 slot_coalesced_allocno_live_ranges_intersect,
181 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
182 * ira-conflicts.c (build_conflict_bit_table): Likewise.
183 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
184 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
185 make_allocno_dead, create_start_finish_chains,
186 remove_some_program_points_and_update_live_ranges,
187 ira_debug_live_range_list): Likewise.
189 * ira-int.h (ira_object_conflict_iterator): Rename from
190 ira_allocno_conflict_iterator.
191 (ira_object_conflict_iter_init): Rename from
192 ira_allocno_conflict_iter_init, second arg changed to
193 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
194 FOR_EACH_ALLOCNO_CONFLICT.
195 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
196 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
197 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
198 * ira-conflicts.c (print_allocno_conflicts): Likewise.
200 2010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
203 * tree-dump.c (dump_options): Add enumerate_locals entry.
204 Add TDF_NOID exclusion to all entry.
205 * tree-dump.h (dump_enumerated_decls): Declare.
206 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
207 Don't display type uid.
208 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
209 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
210 * tree-ssa-live.c: Include gimple.h.
211 (numbered_tree_d): New struct.
212 (numbered_tree): New typedef.
213 (DEF_VEC_O (numbered_tree): New.
214 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
215 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
216 (dump_enumerated_decls): Likewise.
217 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
218 debug info and flag_dump_final_insns, call dump_enumerated_decls.
219 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
220 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
222 2010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
224 * expmed.h (MAX_BITS_PER_WORD): Move to...
225 * defaults.h (MAX_BITS_PER_WORD): ...here.
227 2010-07-13 DJ Delorie <dj@redhat.com>
229 * config/h8300/h8300.c (h8300_init_once): Default to
230 -fstrict_volatile_bitfields.
232 * config/sh/sh.c (sh_override_options): Default to
233 -fstrict_volatile_bitfields.
235 * config/rx/rx.c (rx_option_override): New.
237 * config/m32c/m32c.c (m32c_override_options): Default to
238 -fstrict_volatile_bitfields.
240 2010-07-13 Nathan Froyd <froydnj@codesourcery.com>
242 * tree.h (build_function_call_expr): Delete.
243 (build_call_expr_loc_array): New function.
244 (build_call_expr_loc_vec): New function.
245 * tree-flow.h (struct omp_region): Change type of ws_args field
247 * builtins.c (build_function_call_expr): Delete.
248 (build_call_expr_loc_array): New function.
249 (build_call_expr_loc): Call it. Use XALLOCAVEC.
250 (build_call_expr): Likewise.
251 (build_call_expr_loc_vec): New function.
252 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
253 build_function_call_expr.
254 * expr.c (emutls_var_address): Likewise.
255 * varasm.c (emutls_common_1): Likewise.
256 * omp-low.c (expand_omp_atomic_mutex): Likewise.
257 (expand_omp_taskreg): Adjust for new type of region->ws_args.
258 (get_ws_args_for): Return a VEC instead of a tree.
259 (expand_parallel_call): Call build_call_expr_loc_vec instead of
260 build_function_call_expr.
261 * stor-layout.c (self_referential_size): Likewise.
263 2010-07-13 Jakub Jelinek <jakub@redhat.com>
266 * recog.c (constrain_operands): Allow side-effects in memory
267 operands if either < or > constraint is used, rather than if
268 both < and > is used.
270 2010-07-13 Richard Guenther <rguenther@suse.de>
273 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
274 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
277 2010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
280 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
282 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
283 * config/sh/sh.md (symGOT_load): Likewise.
284 (symDTPOFF2reg): Likewise.
285 (symTPOFF2reg): Likewise.
287 2010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
289 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
290 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
292 2010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
294 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
296 Find ucontext_t * on Solaris 11.
297 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
298 Handle new Solaris 11 __sighndlr patterns.
300 2010-07-13 Jakub Jelinek <jakub@redhat.com>
303 * vec.h (VEC_block_remove): Fix comment.
304 * tree-ssa-live.c (remove_unused_locals): Don't use
305 VEC_unordered_remove on local_decls, instead replace a single
306 vector element in each iteration if at least one element had
307 to be removed and VEC_truncate at the end.
308 * omp-low.c (expand_omp_taskreg): Likewise.
310 2010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
312 * c-decl.c (finish_function): Fix typo in comment.
314 2010-07-12 H.J. Lu <hongjiu.lu@intel.com>
317 * postreload.c (move2add_use_add3_insn): Silence gcc warning
320 2010-07-12 Jakub Jelinek <jakub@redhat.com>
322 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
323 (simplify_stmt_using_ranges): Use it.
325 2010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
327 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
328 member. Do not mark as GTY(()).
329 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
330 (spu_builtin_decls): New static variable.
331 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
332 (spu_init_builtins): Likewise.
333 (spu_builtin_mul_widen_even): Likewise.
334 (spu_builtin_mul_widen_odd): Likewise.
335 (spu_builtin_mask_for_load): Likewise.
336 (spu_builtin_vec_perm): Likewise.
337 * config/spu/spu-c.c: Include "target.h".
338 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
339 of using spu_builtins[].fndecl.
341 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
343 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
344 imply -minterlink-mips16.
346 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
348 * config/mips/mips.h (mips16_globals): Declare.
349 (SWITCHABLE_TARGET): Define.
350 * config/mips/mips.c: Include target-globals.h.
351 (mips16_globals): New variable.
352 (mips_set_mips16_mode): Use save_target_globals and
353 restore_target_globals instead of target_reinit.
355 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
357 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
358 to say that the function can be called more than once.
359 * target-globals.c (save_target_globals): Call init_reg_sets.
361 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
363 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
364 * bb-reorder.h: New file.
365 * bb-reorder.c (default_target_bb_reorder): New variable.
366 (this_target_bb_reorder): New conditional variable.
367 (uncond_jump_length): Redefine as a macro.
368 * target-globals.h (this_target_bb_reorder): Declare.
369 (target_globals): Add a bb_reorder field.
370 (restore_target_globals): Copy the bb_reorder field to
371 this_target_bb-reorder.
372 * target-globals.c: Include bb-reorder.h.
373 (default_target_globals): Initialize the bb_reorder field.
374 (save_target_globals): Likewise.
376 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
378 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
380 * gcse.c: Include gcse.h.
381 (default_target_gcse): New variable.
382 (this_target_gcse): New conditional variable.
383 (can_copy): Redefine as a macro.
384 (can_copy_init_p): New macro.
385 (can_copy_p): Remove can_copy_init_p.
386 * target-globals.h (this_target_gcse): Declare.
387 (target_globals): Add a gcse field.
388 (restore_target_globals): Copy the gcse field to
390 * target-globals.c: Include gcse.h.
391 (default_target_globals): Initialize the gcse field.
392 (save_target_globals): Likewise.
394 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
396 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
397 and x_ira_prohibited_mode_move_regs_initialized_p.
398 (ira_prohibited_mode_move_regs): Redefine as a macro.
399 * ira.c (ira_prohibited_mode_move_regs): Delete.
400 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
402 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
404 * reload.h (target_reload): Add x_cached_reg_save_code and
405 x_cached_reg_restore_code.
406 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
409 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
411 * Makefile.in (target-globals.o): Depend on builtins.h.
412 * builtins.h: New file.
413 * builtins.c: Include builtins.h.
414 (default_target_builtins): New variable.
415 (this_target_builtins): New conditional variable.
416 (apply_args_mode, apply_result_mode): Redefine as macros.
417 * target-globals.h (this_target_builtins): Declare.
418 (target_globals): Add a builtins field.
419 (restore_target_globals): Copy the builtins field to
420 this_target_builtins.
421 * target-globals.c: Include builtins.h.
422 (default_target_globals): Initialize the builtins field.
423 (save_target_globals): Likewise.
425 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
427 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
428 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
430 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
431 (alg_hash, alg_hash_used_p): New macros.
432 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
433 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
434 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
436 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
438 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
439 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
440 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
441 (this_op_costs, costs_classes): Redefine as macros.
442 (record_reg_classes): Don't take op_costs as a parameter.
443 (record_operand_costs): Likewise. Update calls to record_reg_classes.
444 (scan_one_insn): Update call to record_operand_costs.
446 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
448 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
449 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
450 (target_ira_int): New structure.
451 (default_target_ira_int): Declare.
452 (this_target_ira_int): Declare as a variable or define as a macro.
453 (ira_reg_mode_hard_regset, ira_register_move_cost)
454 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
455 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
456 (prohibited_class_mode_regs, ira_important_classes_num)
457 (ira_important_classes, ira_reg_class_intersect)
458 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
459 (ira_reg_class_union): Redefine as macros.
460 * ira.h (target_ira): New structure.
461 (default_target_ira): Declare.
462 (this_target_ira): Declare as a variable or define as a macro.
463 (ira_available_class_regs, ira_hard_regno_cover_class)
464 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
465 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
466 (ira_class_hard_regs_num): Redefine as macros.
467 * ira.c (default_target_ira, default_target_ira_int): New variables.
468 (this_target_ira, this_target_ira_int): New conditional variables.
469 (ira_reg_mode_hard_regset, ira_memory_move_cost)
470 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
471 (ira_class_subset_p): Delete.
472 (no_unit_alloc_regs): Redefine as a macro.
473 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
474 (ira_class_hard_regs_num, ira_class_hard_reg_index)
475 (ira_available_class_regs): Delete.
476 (alloc_reg_class_subclasses): Redefine as a macro.
477 (ira_reg_class_cover_size, ira_reg_class_cover)
478 (ira_important_classes_num, ira_important_classes)
479 (ira_important_class_nums, ira_class_translate): Delete.
480 (cover_class_order): Document the variable's lifetime.
481 (reorder_important_classes): Don't set ira_important_class_nums.
482 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
483 (ira_reg_class_super_classes, ira_reg_class_union)
484 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
486 (setup_reg_class_nregs): Don't set ira_max_regs.
487 (prohibited_class_mode_regs): Delete.
488 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
489 (target_globals): Add ira and ira_int fields.
490 (restore_target_globals): Copy the ira field to this_target_ira
491 and the ira_int field to this_target_ira_int.
492 * target-globals.c: Include ira-int.h.
493 (default_target_globals): Initialize the ira and ira_int fields.
494 (save_target_globals): Likewise.
496 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
498 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
499 * cfgloop.h (target_cfgloop): New structure.
500 (default_target_cfgloop): Declare.
501 (this_target_cfgloop): Declare as a variable or define as a macro.
502 (target_avail_regs, target_clobbered_regs, target_res_regs)
503 (target_reg_cost, target_spill_cost): Redefine as macros.
504 * cfgloopanal.c (default_target_cfgloop): New variable.
505 (this_target_cfgloop): New conditional variable.
506 (target_avail_regs, target_clobbered_regs, target_res_regs)
507 (target_reg_cost, target_spill_cost): Delete.
508 * target-globals.h (this_target_cfgloop): Declare.
509 (target_globals): Add a cfgloop field.
510 (restore_target_globals): Copy the cfgloop field to
512 * target-globals.c: Include cfgloop.h.
513 (default_target_globals): Initialize the cfgloop field.
514 (save_target_globals): Likewise.
516 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
518 * regs.h (target_regs): Add x_direct_load, x_direct_store and
519 x_float_extend_from_mem.
520 (direct_load, direct_store, float_extend_from_mem): New macros.
521 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
523 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
525 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
526 (target-globals.o): Depend on $(LIBFUNCS_H).
527 * libfuncs.h: Include hashtab.h.
528 (libfunc_entry): Moved from optabs.c.
529 (target_libfuncs): New structure.
530 (default_target_libfuncs): Declare.
531 (this_target_libfuncs): Declare as a variable or define as a macro.
532 (libfunc_table): Redefine as a macro.
533 * optabs.c (default_target_libfuncs): New variable.
534 (this_target_libfuncs): New conditional variable.
535 (libfunc_table): Delete.
536 (libfunc_entry): Moved to optabs.h.
537 (libfunc_hash): Redefine as a macro.
538 (hash_libfunc, eq_libfunc): Fix comments.
539 (init_optabs): Use libfunc_hash to detect cases where the function
540 has already been called. Clear the hash table instead of
542 * target-globals.h (this_target_libfuncs): Declare.
543 (target_globals): Add a libfuncs field.
544 (restore_target_globals): Copy the libfuncs field to
545 this_target_libfuncs.
546 * target-globals.c: Include libfuncs.h.
547 (default_target_globals): Initialize the libfuncs field.
548 (save_target_globals): Likewise.
550 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
552 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
553 in all dependency lists.
555 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
557 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
558 * optabs.h (target_optabs): New structure.
559 (default_target_optabs): Declare.
560 (this_target_optabs): Declare as a variable or define as a macro.
561 (optab_table, convert_optab_table, direct_optab_table): Redefine
563 * optabs.c (default_target_optabs): New variable.
564 (this_target_optabs): New conditional variable.
565 (optab_table, convert_optab_table, direct_optab_table): Delete.
566 * target-globals.h (this_target_optabs): Declare.
567 (target_globals): Add a optabs field.
568 (restore_target_globals): Copy the optabs field to
570 * target-globals.c: Include expr.h and optabs.h.
571 (default_target_globals): Initialize the optabs field.
572 (save_target_globals): Likewise.
574 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
576 * flags.h (target_flagstate): Add x_flag_excess_precision.
577 (flag_excess_precision): Redefine as a macro.
578 * toplev.c (flag_excess_precision): Delete.
580 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
582 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
583 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
584 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
585 (no_caller_save_reg_set): Redefine as a macro.
586 * reload.h (target_reload): Add x_caller_save_initialized_p and
588 (caller_save_initialized_p): Redefine as a macro.
589 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
590 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
591 (regno_save_mode): Redefine as a macro.
593 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
595 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
596 * expmed.h: New file.
597 * expmed.c (default_target_costs): New variable.
598 (this_target_costs): New conditional variable.
599 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
600 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
601 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
602 * target-globals.h (this_target_expmed): Declare.
603 (target_globals): Add a expmed field.
604 (restore_target_globals): Copy the expmed field to
606 * target-globals.c: Include expmed.h.
607 (default_target_globals): Initialize the expmed field.
608 (save_target_globals): Likewise.
610 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
612 * Makefile.in (target-globals.o): Depend on reload.h.
613 * reload.h (target_reload): New structure.
614 (default_target_reload): Declare.
615 (this_target_reload): Declare as a variable or define as a macro.
616 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
617 * reload1.c (default_target_reload): New variable
618 (this_target_reload): New conditional variable.
619 (indirect_symref_ok, double_reg_address_ok): Delete.
620 (spill_indirect_levels): Redefine as a macro.
621 * target-globals.h (this_target_reload): Declare.
622 (target_globals): Add a reload field.
623 (restore_target_globals): Copy the reload field to
625 * target-globals.c: Include hard-reg-set.h.
626 (default_target_globals): Initialize the reload field.
627 (save_target_globals): Likewise.
629 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
631 * rtl.h (target_rtl): Add x_static_reg_base_value.
632 * alias.c (static_reg_base_value): Redefine as a macro.
634 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
636 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
637 (GTFILES): Remove reginfo.c.
638 * rtl.h (target_rtl): Add x_top_of_stack.
639 (top_of_stack): New macro.
640 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
641 (top_of_stack): Delete.
643 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
645 * regs.h (target_regs): Add x_hard_regs_of_mode, x_contains_reg_of_mode,
646 x_move_cost, x_may_move_in_cost, x_may_move_out_cost and
647 x_last_mode_for_init_move_cost.
648 (have_regs_of_mode, contains_reg_of_mode, move_cost)
649 (may_move_in_cost, may_move_out_cost): Redefine as macros.
650 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
651 (may_move_in_cost, may_move_out_cost): Delete.
652 (last_mode_for_init_move_cost): Redefine as a macro.
654 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
656 * hard-reg-set.h (target_hard_regs): New structure.
657 (default_target_hard_regs): Declare.
658 (this_target_hard_regs): Declare as a variable or define as a macro.
659 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
660 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
661 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
662 (reg_class_size, reg_class_subclasses, reg_class_subunion)
663 (reg_class_superunion, reg_names): Redefine as macros.
664 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
665 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
666 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
667 (reg_class_contents, reg_class_size, reg_class_subclasses)
668 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
669 (default_target_hard_regs): New variable
670 (this_target_hard_regs, initial_call_really_used_regs)
671 (initial_reg_alloc_order): New conditional variables.
672 (initial_reg_names): New variable.
673 (init_reg_sets): Assert that initial_call_really_used_regs,
674 initial_reg_alloc_order and initial_reg_names
675 are all the same size as their variable counterparts. Use them to
676 initialize those counterparts.
677 * target-globals.h (this_target_hard_regs): Declare.
678 (target_globals): Add a hard_regs field.
679 (restore_target_globals): Copy the hard_regs field to
680 this_target_hard_regs.
681 * target-globals.c: Include hard-reg-set.h.
682 (default_target_globals): Initialize the hard_regs field.
683 (save_target_globals): Likewise.
685 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
687 * Makefile.in (target-globals.o): Depend on $(RTL_H).
688 * rtl.h: (target_rtl): New structure.
689 (default_target_rtl): Declare.
690 (this_target_rtl): Declare as a variable or define as a macro.
691 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
693 * emit-rtl.c (default_target_rtl): New variable.
694 (this_target_rtl): New conditional variable.
695 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
696 (return_address_pointer_rtx): Delete.
697 (initial_regno_reg_rtx): New macro.
698 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
699 (init_emit_regs): Likewise.
700 * target-globals.h (this_target_rtl): Declare.
701 (target_globals): Add a rtl field.
702 (restore_target_globals): Copy the rtl field to this_target_rtl.
703 * target-globals.c: Include rtl.h.
704 (default_target_globals): Initialize the rtl field.
705 (save_target_globals): Likewise.
707 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
709 * Makefile.in (target-globals.o): Depend on $(REGS_H).
710 * regs.h (target_reg_modes): New structure.
711 (default_target_reg_modes): Declare.
712 (this_target_reg_modes): Declare as a variable or define as a macro.
713 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
714 * reginfo.c (default_target_reg_modes): New variable.
715 (this_target_reg_modes): New conditional variable.
716 (hard_regno_nregs, reg_raw_mode): Delete.
717 * target-globals.h (this_target_regs): Declare.
718 (target_globals): Add a regs field.
719 (restore_target_globals): Copy the regs field to this_target_regs.
720 * target-globals.c: Include regs.h.
721 (default_target_globals): Initialize the regs field.
722 (save_target_globals): Likewise.
724 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
726 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
727 * doc/tm.texi: Regenerate.
728 * Makefile.in (OBJS-common): Add target-globals.o.
729 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
730 and target-globals.h.
731 (target-globals.o): New rule.
732 (GTFILES): Include $(srcdir)/target-globals.h.
733 * defaults.h (SWITCHABLE_TARGET): Define.
734 * gengtype.c (open_base_files): Add target-globals.h to the
736 * target-globals.h: New file.
737 * target-globals.c: Likewise.
739 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
740 * flags.h (target_flag_state): New structure.
741 (default_target_flag_state): Declare.
742 (this_target_flag_state): Declare as a variable or define as a macro.
743 (align_loops_log): Redefine as a macro.
744 (align_loops_max_skip, align_jumps_log): Likewise.
745 (align_jumps_max_skip, align_labels_log): Likewise.
746 (align_labels_max_skip, align_functions_log): Likewise.
747 * toplev.c (default_target_flag_state): New variable.
748 (this_target_flag_state): New conditional variable.
749 (align_loops_log): Delete.
750 (align_loops_max_skip, align_jumps_log): Likewise.
751 (align_jumps_max_skip, align_labels_log): Likewise.
752 (align_labels_max_skip, align_functions_log): Likewise.
753 * target-globals.h (this_target_flag_state): Declare.
754 (target_globals): Add a flag_state field.
755 (restore_target_globals): Copy the flag_state field to
756 this_target_flag_state.
757 * target-globals.c: Include flags.h.
758 (default_target_globals): Initialize the flag_state field.
759 (save_target_globals): Likewise.
761 2010-07-12 Jie Zhang <jie@codesourcery.com>
763 * postreload.c (reg_symbol_ref[]): New.
764 (move2add_use_add2_insn): New.
765 (move2add_use_add3_insn): New.
766 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
767 (move2add_note_store): Likewise.
769 2010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
771 PR rtl-optimization/44752
772 * genautomata.c (main): Don't emit an empty file even if there
775 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
777 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
778 ix86_solaris_return_in_memory.
779 * config/i386-protos.h: Reflect this.
780 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
781 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
783 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
785 2010-07-12 Jie Zhang <jie@codesourcery.com>
787 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
788 align the stack when it's going to be saved.
790 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
793 * config/host-solaris.c (mmap_fixed): New function.
794 (sol_gt_pch_get_address): Use it.
795 (sol_gt_pch_use_address): Likewise.
797 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
799 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
800 pentiumpro on Solaris 8 and 9/x86.
801 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
802 Document SSE/SSE2 support.
803 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
805 2010-07-12 Andi Kleen <ak@linux.intel.com>
807 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
808 instead of gcc_assert to print better error message for multiple
811 2010-07-12 Uros Bizjak <ubizjak@gmail.com>
813 * config/i386/i386.c (ix86_asm_output_function_label): Change format
814 string placeholder from 0x%x to %#x.
815 (ix86_code_end): Use putc to output '\n'.
816 (ix86_print_operand) <case ';'>: Use putc to output ';'.
818 2010-07-11 Kai Tietz <kai.tietz@onevision.com>
820 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
821 in directive -export.
823 2010-07-10 Anatoly Sokolov <aesok@post.ru>
825 * reginfo.h (reg_classes_intersect_p): Change arguments type to
827 * rtl.h (reg_classes_intersect_p): Adjust prototype.
829 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
831 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
832 rs6000_memory_move_cost): Remove
833 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
834 TARGET_MEMORY_MOVE_COST): Define.
835 (rs6000_register_move_cost): Make static. Change arguments type from
836 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
837 (rs6000_memory_move_cost): Make static. Change arguments type from
838 'enum reg_class' to reg_class_t.
840 2010-07-10 Sandra Loosemore <sandra@codesourcery.com>
843 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
845 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
847 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
848 * cfgloopanal.c (target_clobbered_regs): Define.
849 (init_set_costs): Initialize target_clobbered_regs.
850 (estimate_reg_pressure_cost): Add call_p argument. When true,
851 adjust the number of available registers to exclude the
852 call-clobbered registers.
853 * cfgloop.h (target_clobbered_regs): Declare.
854 (estimate_reg_pressure_cost): Adjust declaration.
855 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
856 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
857 (determine_set_costs): Dump target_clobbered_regs.
858 (loop_body_includes_call): New function.
859 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
860 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
862 (best_gain_for_invariant): Likewise.
863 (find_invariants_to_move): Likewise.
864 (move_single_loop_invariants): Likewise, using already-computed
867 2010-07-10 Richard Guenther <rguenther@suse.de>
868 Joern Rennecke <joern.rennecke@embecosm.com>
871 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
872 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
873 unless they have DECL_IGNORED_P set.
875 2010-07-10 Richard Guenther <rguenther@suse.de>
878 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
880 (gimple_types_compatible_p): Similar to pointed-to
881 types allow and merge a mix of complete and incomplete aggregate.
882 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
883 (iterative_hash_gimple_type): Adjust for that.
885 2010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
887 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
889 2010-07-10 Iain Sandoe <iains@gcc.gnu.org>
892 * config/darwin.c (output_objc_section_asm_op): Save and restore
893 section when outputting ObjC section list.
895 2010-07-09 Jan Hubicka <jh@suse.cz>
897 * lto-streamer-out.c (produce_symtab): Do not write alias
898 cgraph/varpool nodes.
900 2010-07-09 Jan Hubicka <jh@suse.cz>
902 * tree-inline.c (declare_return_variable): Fix ICE while
903 inlining DECL_BY_VALUE function not in SSA form
905 2010-07-09 Changpeng Fang <changpeng.fang@amd.com>
907 PR tree-optimization/44576
908 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
909 New. Pull out from is_loop_prefetching_profitable to implement
910 the trip count to ahead ratio heuristic.
911 (mem_ref_count_reasonable_p): New. Pull out from
912 is_loop_prefetching_profitable to implement the instruction to
913 memory reference ratio heuristic. Also consider not reasonable if
914 the memory reference count is above a threshold (to avoid
915 explosive compilation time.
916 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
917 is_loop_prefetching_profitable to implement the instruction to
918 prefetch ratio heuristic.
919 (is_loop_prefetching_profitable): Removed.
920 (loop_prefetch_arrays): Distribute the cost analysis across the
921 function to allow early exit of the prefetch analysis.
922 is_loop_prefetching_profitable is splitted into three functions,
923 with each one called as early as possible.
924 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
925 number of memory references in a loop is considered too many.
927 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
929 * reload.c (find_reloads): Don't clear badop if we have a winreg
930 alternative, but not win, and the class only has fixed regs.
931 * hard-reg-set.h (class_only_fixed_regs): Declare.
932 * reginfo.c (class_only_fixed_regs): New array.
933 (init_reg_sets_1): Initialize it.
934 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
935 discourage alternatives using the stack pointer.
937 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
939 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
941 * config/arm/arm.md (cbranchqi4): Fix array size.
942 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
945 2010-07-09 Richard Guenther <rguenther@suse.de>
947 * gimple.c (struct type_fixup_s): New struct and VEC type.
948 (gimple_register_type_fixups): New static global.
949 (gimple_queue_type_fixup): New function.
950 (gimple_types_compatible_p): Queue type fixups instead of
952 (gimple_register_type): Apply queued fixups for the
953 canonical type. Empty the type fixup queue.
955 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
957 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
958 * configure: Regenerate.
961 2010-07-09 Jakub Jelinek <jakub@redhat.com>
962 Denys Vlasenko <dvlasenk@redhat.com>
963 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
965 PR tree-optimization/28632
966 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
967 (extract_range_from_binary_expr): Further optimize
968 BIT_AND_EXPR and BIT_IOR_EXPR.
970 2010-07-09 Sebastian Pop <sebastian.pop@amd.com>
972 * tree-if-conv.c (fold_or_predicates): New.
973 (add_to_predicate_list): Call it.
975 2010-07-09 Richard Guenther <rguenther@suse.de>
978 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
979 if base is a pointer.
980 * tree-cfg.c (verify_expr): Update MEM_REF checking.
982 2010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
985 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
986 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
987 builtin mask for load/store builtins.
989 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
991 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
993 * configure: Regenerate.
994 * config/i386/i386.c (ix86_print_operand) <case ';'>:
997 2010-07-09 Peter Bergner <bergner@vnet.ibm.com>
999 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
1001 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
1003 2010-07-09 Tom de Vries <tjvries@xs4all.nl>
1005 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
1007 2010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
1009 * config/picochip/picochip.md (commsTestPort): Emit more
1010 efficient sequence for tstport instruction.
1012 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
1014 * config/i386/i386.c (ix86_veclib_handler): Make static.
1016 2010-07-09 Richard Guenther <rguenther@suse.de>
1018 PR tree-optimization/44852
1019 * tree-ssa-alias.c: Include toplev.h for exact_log2.
1020 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
1022 (indirect_refs_may_alias_p): Likewise.
1023 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
1025 2010-07-09 Richard Guenther <rguenther@suse.de>
1027 PR tree-optimization/44882
1028 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
1030 (vectorizable_load): Likewise.
1032 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
1035 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
1036 All callers changed.
1037 Handle the case when we're called for the epilogue.
1038 (thumb_unexpanded_epilogue): Use it.
1039 (thumb1_expand_epilogue): Likewise.
1041 2010-07-09 Jakub Jelinek <jakub@redhat.com>
1043 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
1044 both ranges are range_int_cst_p with non-negative minimum,
1045 try harder to derive smaller range.
1047 2010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
1049 * genrecog.c: Include diagnostic-core.h before toplev.h.
1050 * genoutput.c: Likewise.
1051 * genextract.c: Likewise.
1052 * genautomata.c: Likewise.
1053 * genemit.c: Likewise.
1054 * genpeep.c: Likewise.
1055 * genattrtab.c: Likewise.
1056 * genconditions.c: Likewise.
1057 * genpreds.c: Likewise.
1059 2010-07-08 Andi Kleen <ak@linux.intel.com>
1061 * lto-section-in.c (lto_section_name): Add missing comma.
1063 2010-07-08 Anatoly Sokolov <aesok@post.ru>
1065 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
1066 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
1067 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
1068 (ia64_override_options): Rename to...
1069 (ia64_option_override): ... this one. Make static.
1071 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
1074 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
1075 pointed-to type of the offset in a MEM_REF to compute the alignment.
1077 2010-07-08 Kai Tietz <kai.tietz@onevision.com>
1079 * final.c (final_scan_insn): Replace
1080 TARGET_UNWIND_INFO macro check by unwind_emit
1082 * targhooks.c (default_unwind_emit): Removed.
1083 * targhooks.h (default_unwind_emit): Likewise.
1084 * target.def (unwind_emit): Set default value to NULL.
1086 * config/i386/i386-protos.h (ix86_asm_output_function_label):
1088 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
1089 for NULL fntype argument and allow 64-bit targets.
1090 (ix86_asm_output_function_label): New function.
1091 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
1092 (ix86_handle_fndecl_attribute): Likewise.
1093 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
1094 * doc/doc/tm.texi: Regenerated.
1095 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
1096 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
1097 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
1098 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
1099 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
1100 * config/elfos.h: Likewise.
1101 * config/i386/cygming.h: Likewise.
1102 * config/netbsd-aout.h: Likewise.
1103 * config/openbsd.h: Likewise.
1104 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
1105 by ix86_asm_output_function_label function call.
1106 * varasm.c (assemble_start_function): Use
1107 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
1109 2010-07-08 Jan Hubicka <jh@suse.cz>
1111 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
1113 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
1115 * ipa-cp.c (ipcp_estimate_growth): Use it.
1116 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
1119 2010-07-08 Jan Hubicka <jh@suse.cz>
1121 * tree-inline.c (declare_return_variable): Allocate annotation for new
1124 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
1126 PR tree-optimization/44710
1127 * tree-if-conv.c (parse_predicate): New.
1128 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
1129 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
1131 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
1133 * common.opt (ftree-loop-if-convert): New flag.
1134 * doc/invoke.texi (ftree-loop-if-convert): Documented.
1135 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
1136 when flag_tree_loop_if_convert is set.
1138 2010-07-08 Uros Bizjak <ubizjak@gmail.com>
1140 * config/i386/i386.c: Use short syntax for function calls
1141 through function pointers.
1142 * config/i386/i386.md: Ditto.
1144 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
1146 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
1148 2010-07-08 Richard Guenther <rguenther@suse.de>
1150 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
1151 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
1153 2010-07-08 Jakub Jelinek <jakub@redhat.com>
1155 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
1156 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
1157 (loc_list_from_tree): Likewise.
1158 (output_loc_operands): Handle outputting DW_OP_const[48]u
1159 with loc->dtprel set.
1160 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
1162 2010-07-08 Jan Hubicka <jh@suse.cz>
1164 * ipa.c: Include pointer-set.h
1165 (cgraph_externally_visible_p): New attribute ALIASED;
1166 when in LTO, hidden symbols are local unless they are aliased.
1167 (function_and_variable_visibility): Compute aliased nodes;
1168 handle LTO and hidden symbol on functions and vars.
1169 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
1170 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
1172 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
1174 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
1175 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1176 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1177 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1178 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1179 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
1180 (ix86_gen_probe_stack_range): Likewise.
1181 (override_options): Set them.
1182 (ix86_target_stack_probe): New function.
1183 (ix86_compute_frame_layout): Force use of push instructions to
1184 save registers if stack checking with probes is enabled.
1185 (get_scratch_register_on_entry): New function.
1186 (release_scratch_register_on_entry): Likewise.
1187 (ix86_adjust_stack_and_probe): Likewise.
1188 (output_adjust_stack_and_probe): Likewise.
1189 (ix86_emit_probe_stack_range): Likewise.
1190 (output_probe_stack_range): Likewise.
1191 (ix86_expand_prologue): Emit stack checking code if static built-in
1192 stack checking is enabled.
1193 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
1194 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
1195 (output_adjust_stack_and_probe): Likewise.
1196 (output_probe_stack_range): Likewise.
1197 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
1198 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
1200 (allocate_stack_worker_64): Likewise.
1201 (allocate_stack): Likewise.
1202 (adjust_stack_and_probe): New insn.
1203 (probe_stack_range): Likewise.
1205 2010-07-08 Richard Guenther <rguenther@suse.de>
1207 PR tree-optimization/44831
1208 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
1209 a MEM_REF preserving TBAA info of the original dereference.
1210 Dereference the original pointer if the address is not invariant.
1211 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
1212 at least one invariant address that we are going to dereference.
1214 2010-07-08 Richard Guenther <rguenther@suse.de>
1216 PR tree-optimization/44861
1217 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
1218 information when building MEM_REFs.
1219 (vectorizable_load): Likewise.
1220 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
1222 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
1224 * config/sol2-c.c: Do not include diagnostic-core.h.
1226 2010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1229 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
1230 with respect to current_function_decl. Pass decl of the function.
1231 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
1232 * ipa-inline.c (compute_inline_parameters): Pass decl to
1233 estimated_stack_frame_size.
1235 2010-07-08 Richard Guenther <rguenther@suse.de>
1237 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
1239 (valueize_refs): Call it.
1241 2010-07-08 Richard Guenther <rguenther@suse.de>
1243 PR rtl-optimization/44838
1244 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
1245 SSA form do not use pointer equivalence.
1247 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
1249 * dwarf2out.c (AT_linkage_name): Delete.
1250 (add_linkage_attr): New function.
1251 (add_linkage_name): Call it to emit the linkage attribute.
1252 (dwarf2out_finish): Likewise.
1253 (move_linkage_attr): Explicitly accept both attribute variants.
1255 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
1257 * toplev.h: Do not include diagnostic-core.h.
1258 Include diagnostic-core.h in every file that includes toplev.h.
1259 * c-tree.h: Do not include toplev.h.
1260 * pretty-print.h: Update comment.
1261 * Makefile.in: Update dependencies.
1262 * alias.c: Include diagnostic-core.h in every file that includes
1264 * attribs.c: Likewise.
1265 * auto-inc-dec.c: Likewise.
1266 * bb-reorder.c: Likewise.
1267 * bt-load.c: Likewise.
1268 * caller-save.c: Likewise.
1269 * calls.c: Likewise.
1271 * cfganal.c: Likewise.
1272 * cfgbuild.c: Likewise.
1273 * cfgcleanup.c: Likewise.
1274 * cfghooks.c: Likewise.
1275 * cfgloop.c: Likewise.
1276 * combine.c: Likewise.
1277 * config/alpha/alpha.c: Likewise.
1278 * config/arc/arc.c: Likewise.
1279 * config/arm/arm.c: Likewise.
1280 * config/arm/pe.c: Likewise.
1281 * config/avr/avr.c: Likewise.
1282 * config/bfin/bfin.c: Likewise.
1283 * config/cris/cris.c: Likewise.
1284 * config/crx/crx.c: Likewise.
1285 * config/darwin-c.c: Likewise.
1286 * config/darwin.c: Likewise.
1287 * config/fr30/fr30.c: Likewise.
1288 * config/frv/frv.c: Likewise.
1289 * config/h8300/h8300.c: Likewise.
1290 * config/host-darwin.c: Likewise.
1291 * config/i386/i386.c: Likewise.
1292 * config/i386/netware.c: Likewise.
1293 * config/i386/nwld.c: Likewise.
1294 * config/i386/winnt-cxx.c: Likewise.
1295 * config/i386/winnt-stubs.c: Likewise.
1296 * config/i386/winnt.c: Likewise.
1297 * config/ia64/ia64-c.c: Likewise.
1298 * config/ia64/ia64.c: Likewise.
1299 * config/iq2000/iq2000.c: Likewise.
1300 * config/lm32/lm32.c: Likewise.
1301 * config/m32c/m32c-pragma.c: Likewise.
1302 * config/m32c/m32c.c: Likewise.
1303 * config/m32r/m32r.c: Likewise.
1304 * config/m68hc11/m68hc11.c: Likewise.
1305 * config/m68k/m68k.c: Likewise.
1306 * config/mcore/mcore.c: Likewise.
1307 * config/mep/mep-pragma.c: Likewise.
1308 * config/mep/mep.c: Likewise.
1309 * config/mmix/mmix.c: Likewise.
1310 * config/mn10300/mn10300.c: Likewise.
1311 * config/moxie/moxie.c: Likewise.
1312 * config/pa/pa.c: Likewise.
1313 * config/pdp11/pdp11.c: Likewise.
1314 * config/picochip/picochip.c: Likewise.
1315 * config/rs6000/rs6000-c.c: Likewise.
1316 * config/rs6000/rs6000.c: Likewise.
1317 * config/rx/rx.c: Likewise.
1318 * config/s390/s390.c: Likewise.
1319 * config/score/score.c: Likewise.
1320 * config/score/score3.c: Likewise.
1321 * config/score/score7.c: Likewise.
1322 * config/sh/sh.c: Likewise.
1323 * config/sh/symbian-base.c: Likewise.
1324 * config/sh/symbian-c.c: Likewise.
1325 * config/sh/symbian-cxx.c: Likewise.
1326 * config/sol2-c.c: Likewise.
1327 * config/sol2.c: Likewise.
1328 * config/sparc/sparc.c: Likewise.
1329 * config/spu/spu.c: Likewise.
1330 * config/stormy16/stormy16.c: Likewise.
1331 * config/v850/v850-c.c: Likewise.
1332 * config/v850/v850.c: Likewise.
1333 * config/vax/vax.c: Likewise.
1334 * config/vxworks.c: Likewise.
1335 * config/xtensa/xtensa.c: Likewise.
1336 * convert.c: Likewise.
1338 * cselib.c: Likewise.
1339 * dbgcnt.c: Likewise.
1340 * dbxout.c: Likewise.
1342 * dominance.c: Likewise.
1343 * emit-rtl.c: Likewise.
1344 * explow.c: Likewise.
1345 * expmed.c: Likewise.
1346 * fixed-value.c: Likewise.
1347 * fold-const.c: Likewise.
1348 * fwprop.c: Likewise.
1350 * ggc-common.c: Likewise.
1351 * ggc-page.c: Likewise.
1352 * ggc-zone.c: Likewise.
1353 * gimple-low.c: Likewise.
1354 * gimplify.c: Likewise.
1355 * graph.c: Likewise.
1356 * haifa-sched.c: Likewise.
1357 * ifcvt.c: Likewise.
1358 * implicit-zee.c: Likewise.
1359 * integrate.c: Likewise.
1360 * ira-build.c: Likewise.
1361 * ira-color.c: Likewise.
1362 * ira-conflicts.c: Likewise.
1363 * ira-costs.c: Likewise.
1364 * ira-lives.c: Likewise.
1366 * lists.c: Likewise.
1367 * loop-doloop.c: Likewise.
1368 * loop-iv.c: Likewise.
1369 * lto-opts.c: Likewise.
1370 * lto-symtab.c: Likewise.
1372 * modulo-sched.c: Likewise.
1373 * optabs.c: Likewise.
1374 * params.c: Likewise.
1375 * plugin.c: Likewise.
1376 * postreload-gcse.c: Likewise.
1377 * postreload.c: Likewise.
1378 * predict.c: Likewise.
1379 * profile.c: Likewise.
1381 * regcprop.c: Likewise.
1382 * reginfo.c: Likewise.
1383 * regmove.c: Likewise.
1384 * reorg.c: Likewise.
1385 * resource.c: Likewise.
1387 * rtlanal.c: Likewise.
1388 * sched-deps.c: Likewise.
1389 * sched-ebb.c: Likewise.
1390 * sched-rgn.c: Likewise.
1391 * sdbout.c: Likewise.
1392 * sel-sched-dump.c: Likewise.
1393 * sel-sched-ir.c: Likewise.
1394 * simplify-rtx.c: Likewise.
1396 * stor-layout.c: Likewise.
1397 * store-motion.c: Likewise.
1398 * targhooks.c: Likewise.
1399 * tree-cfg.c: Likewise.
1400 * tree-cfgcleanup.c: Likewise.
1401 * tree-dump.c: Likewise.
1402 * tree-eh.c: Likewise.
1403 * tree-inline.c: Likewise.
1404 * tree-nomudflap.c: Likewise.
1405 * tree-object-size.c: Likewise.
1406 * tree-optimize.c: Likewise.
1407 * tree-outof-ssa.c: Likewise.
1408 * tree-phinodes.c: Likewise.
1409 * tree-profile.c: Likewise.
1410 * tree-ssa-ccp.c: Likewise.
1411 * tree-ssa-coalesce.c: Likewise.
1412 * tree-ssa-live.c: Likewise.
1413 * tree-ssa-loop-niter.c: Likewise.
1414 * tree-ssa-loop-prefetch.c: Likewise.
1415 * tree-ssa-loop.c: Likewise.
1416 * tree-ssa-structalias.c: Likewise.
1417 * tree-ssa-uninit.c: Likewise.
1418 * tree-ssa.c: Likewise.
1419 * tree-vect-data-refs.c: Likewise.
1420 * tree-vect-loop-manip.c: Likewise.
1421 * tree-vect-loop.c: Likewise.
1422 * tree-vect-patterns.c: Likewise.
1423 * tree-vect-stmts.c: Likewise.
1424 * tree-vrp.c: Likewise.
1425 * varasm.c: Likewise.
1428 * xcoffout.c: Likewise.
1430 2010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
1432 * gengtype.c (write_field_root): New function.
1433 (write_root): Use it.
1435 2010-07-07 Wei Guozhi <carrot@google.com>
1437 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
1438 of lowest bits to lshift/compare): Add a missing line.
1440 2010-07-07 Wei Guozhi <carrot@google.com>
1442 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
1443 of lowest bits to lshift/compare): New.
1445 2010-07-07 Tom Tromey <tromey@redhat.com>
1447 * doc/tm.texi: Update.
1448 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
1450 * target.def (want_debug_pub_sections): New hook.
1451 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
1452 * dwarf2out.c (add_pubname_string): Check
1453 targetm.want_debug_pub_sections.
1454 (add_pubname): Likewise.
1455 (add_pubtype): Likewise.
1457 2010-07-07 Jie Zhang <jie@codesourcery.com>
1459 * genautomata.c (output_automata_list_min_issue_delay_code):
1460 Correctly decompress min_issue_delay.
1462 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
1464 PR rtl-optimization/44404
1465 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
1466 possible, use reg_overlap_mentioned_p instead.
1468 2010-07-07 Duncan Sands <baldrick@free.fr>
1471 * tree.c (build_function_type_skip_args): Copy the original type using
1472 build_distinct_type_copy rather than copy_node.
1474 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
1477 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
1479 (ix86_expand_prologue): Likewise.
1480 (ix86_handle_fndecl_attribute): Likewise.
1481 (ix86_asm_declare_function_name): Likewise.
1482 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1483 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1484 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
1485 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
1486 * doc/extend.texi: Likewise.
1488 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
1491 * config/i386/i386.md (rdrand<mode>): Changed to expand to
1492 retry if the carry flag isn't valid.
1493 (rdrand<mode>_1): New.
1495 2010-07-07 Richard Guenther <rguenther@suse.de>
1498 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
1499 for expanding the constant offset for MEM_REFs.
1501 2010-07-07 Richard Guenther <rguenther@suse.de>
1503 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
1504 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
1505 * gimple.h (is_gimple_operand): Remove.
1506 * gimple.c (is_gimple_operand): Likewise.
1507 (walk_gimple_op): Fix wi->val_only setting for calls.
1508 * tree-cfg.c (verify_gimple_call): Fix argument validation.
1509 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
1510 invalid gimple calls.
1512 2010-07-06 Jan Hubicka <jh@suse.cz>
1514 * lto-cgraph.c (output_cgraph): Add missing declaration.
1516 2010-07-06 Jan Hubicka <jh@suse.cz>
1518 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
1521 2010-07-06 Alexandre Oliva <aoliva@redhat.com>
1523 * doc/gimple.texi (GIMPLE_DEBUG): Document.
1524 * doc/rtl.texi (Debug Information): New node.
1525 (NOTE_INSN_VAR_LOCATION): Document.
1526 (debug_insn): Likewise.
1527 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
1529 2010-07-07 Jan Hubicka <jh@suse.cz>
1531 With parts by Richard Guenther.
1534 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
1535 for functions passed by reference.
1536 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
1537 in memory when passed by reference.
1538 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
1540 * ipa-split.c (split_function): Cleanup way return value is passed;
1541 handle SSA DECL_BY_REFERENCE retvals.
1542 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
1543 DECL_BY_REFERENCE is set.
1544 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
1545 find_what_p_points_to): Handle RESULT_DECL.
1546 * tree-inline.c (declare_return_variable): Get new entry_block argument;
1547 when passing by reference ensure that RESULT_DECL is gimple_val.
1548 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
1549 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
1551 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
1553 PR rtl-optimization/44787
1554 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
1555 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
1557 2010-07-06 Jan Hubicka <jh@suse.cz>
1559 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
1560 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
1561 with body can prevail.
1562 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
1563 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
1564 * cgraph.c (cgraph_get_node_or_alias): New function.
1565 * cgraph.h (cgraph_get_node_or_alias): Declare.
1567 2010-07-06 Kai Tietz <kai.tietz@onevision.com>
1569 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
1571 (ix86_expand_prologue): Likewise.
1572 (ix86_handle_fndecl_attribute): Likewise.
1573 (ix86_asm_declare_function_name): New function for
1574 ASM_DECLARE_FUNCTION_NAME.
1575 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
1576 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
1577 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
1578 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
1579 * doc/extend.texi: Adjust documentation about ms_hook_prologue
1582 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
1584 * config/i386/i386.md (immediate_operand): New mode attribute.
1586 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
1587 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
1588 using P mode iterator.
1589 (pro_epilogue_adjust_stack_di_2): Rename from
1590 pro_epilogue_adjust_stack_rex64_2.
1592 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
1594 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
1596 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
1597 through gen_mov_insv_1 function pointer.
1598 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
1599 gen_truncxf<mode>2 through gen_truncxf function pointer.
1600 (remainder<mode>3): Ditto.
1601 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
1602 (allocate_stack): Call gen_allocate_stack_worker_64 or
1603 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
1605 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
1608 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
1610 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
1611 operand constraint instead of <r><i>m.
1613 2010-07-06 Richard Guenther <rguenther@suse.de>
1616 * convert.c (convert_to_integer): Watch out for overflowing
1619 2010-07-05 Jan Hubicka <jh@suse.cz>
1621 * lto-streamer.c (write_symbol_vec): Rename to ...
1622 (write_symbol) ... this one; write only symbol given and when
1623 present in cache. Sanity check that what is defined is present
1624 in cgraph/varpool with body/finalized decl.
1625 (write_symbols_of_kind): Remove.
1626 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
1627 pairs to produce symtab.
1628 (produce_asm_for_decls): Update call of produce_symtab; don't do so
1629 when doing WPA streaming.
1631 2010-07-05 Jan Hubicka <jh@suse.cz>
1633 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
1634 function is still available to fold into.
1636 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
1638 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
1639 * function.h (struct_function): Change type of local_decls field
1641 (add_local_decl): New function.
1642 (FOR_EACH_LOCAL_DECL): New macro.
1643 * cfgexpand.c (init_vars_expansion): Adjust for new type of
1645 (estimated_stack_frame_size): Likewise.
1646 (expand_used_vars): Likewise.
1647 * cgraphbuild.c (build_cgraph_edges): Likewise.
1648 * function.c (instantiate_decls_1): Likewise.
1649 * ipa-struct-reorg.c (build_data_structure): Likewise.
1650 * ipa-type-escape.c (analyze_function): Likewise.
1651 * lto-streamer-in.c (input_function): Likewise.
1652 * lto-streamer-out.c (output_function): Likewise.
1653 * tree-ssa-live.c (remove_unused_locals): Likewise.
1654 * tree.c (free_lang_data_in_decl): Likewise.
1655 (find_decls_types_in_node): Likewise.
1656 * omp-low.c (remove_exit_barrier): Likewise.
1657 (expand_omp_taskreg): Likewise.
1658 (list2chain): Rename to...
1659 (vec2chain): ...this. Adjust.
1660 * cgraphunit.c (assemble_thunk): Call add_local_decl.
1661 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
1662 * gimple-low.c (record_vars_into): Likewise.
1663 * tree-inline.c (remap_decls): Likewise.
1664 (declare_return_variable): Likewise.
1665 (declare_inline_vars): Likewise.
1666 (copy_forbidden): Adjust for new type of cfun->local_decls.
1667 (add_local_variables): New function.
1668 (expand_call_inline): Call it.
1669 (tree_function_versioning): Likewise.
1671 2010-07-05 H.J. Lu <hongjiu.lu@intel.com>
1673 AVX Programming Reference (June, 2010)
1674 * config/i386/cpuid.h (bit_F16C): New.
1675 (bit_RDRND): Likewise.
1676 (bit_FSGSBASE): Likewise.
1678 * config/i386/i386-builtin-types.def: Add
1679 "DEF_FUNCTION_TYPE (UINT16)", function types for
1680 float16 <-> float conversions and
1681 "DEF_FUNCTION_TYPE (VOID, UINT64)".
1683 * config/i386/i386-c.c (ix86_target_macros_internal): Support
1684 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
1685 OPTION_MASK_ISA_F16C.
1687 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
1688 (OPTION_MASK_ISA_RDRND_SET): Likewise.
1689 (OPTION_MASK_ISA_F16C_SET): Likewise.
1690 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
1691 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
1692 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
1693 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
1694 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
1695 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
1696 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
1697 (override_options): Handle them.
1698 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
1699 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
1700 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
1701 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
1702 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
1703 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
1704 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
1705 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
1706 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
1707 (bdesc_args): Likewise.
1708 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
1709 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
1710 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
1711 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
1712 Handle non-memory store.
1714 * config/i386/i386.h (TARGET_FSGSBASE): New.
1715 (TARGET_RDRND): Likewise.
1716 (TARGET_F12C): Likewise.
1718 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
1719 (UNSPEC_VCVTPS2PH): Likewise.
1720 (UNSPECV_RDFSBASE): Likewise.
1721 (UNSPECV_RDGSBASE): Likewise.
1722 (UNSPECV_WRFSBASE): Likewise.
1723 (UNSPECV_WRGSBASE): Likewise.
1724 (UNSPECV_RDRAND): Likewise.
1725 (rdfsbase<mode>): Likewise.
1726 (rdgsbase<mode>): Likewise.
1727 (wrfsbase<mode>): Likewise.
1728 (wrgsbase<mode>): Likewise.
1729 (rdrand<mode>): Likewise.
1731 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
1733 * config/i386/immintrin.h (_rdrand_u16): New.
1734 (_rdrand_u32): Likewise.
1735 (_readfsbase_u32): Likewise.
1736 (_readfsbase_u64): Likewise.
1737 (_readgsbase_u32): Likewise.
1738 (_readgsbase_u64): Likewise.
1739 (_writefsbase_u32): Likewise.
1740 (_writefsbase_u64): Likewise.
1741 (_writegsbase_u32): Likewise.
1742 (_writegsbase_u64): Likewise.
1743 (_rdrand_u64): Likewise.
1744 (_cvtsh_ss): Likewise.
1745 (_mm_cvtph_ps): Likewise.
1746 (_mm256_cvtph_ps): Likewise.
1747 (_cvtss_sh): Likewise.
1748 (_mm_cvtps_ph): Likewise.
1749 (_mm256_cvtps_ph): Likewise.
1751 * config/i386/sse.md (vcvtph2ps): New.
1752 (*vcvtph2ps_load): Likewise.
1753 (vcvtph2ps256): Likewise.
1754 (vcvtps2ph): Likewise.
1755 (*vcvtps2ph): Likewise.
1756 (*vcvtps2ph_store): Likewise.
1757 (vcvtps2ph256): Likewise.
1759 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
1761 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
1763 2010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
1766 * genenums.c (main): Output include of insn-constants.h
1767 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
1769 2010-07-05 Uros Bizjak <ubizjak@gmail.com>
1771 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
1772 (override_options): Initialize it.
1773 (ix86_expand_prologue): Use it.
1775 2010-07-05 Jakub Jelinek <jakub@redhat.com>
1777 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
1779 2010-07-05 Anatoly Sokolov <aesok@post.ru>
1781 * double-int.h (fit_double_type): Remove declaration.
1782 * double-int.c (fit_double_type): Remove function.
1783 * tree.h (int_fits_type_p): Adjust prototype.
1784 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
1785 instead of fit_double_type.
1786 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
1787 instead of fit_double_type and build_int_cst_wide.
1788 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
1789 instead of fit_double_type and build_int_cst_wide.
1790 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
1793 2010-07-05 Jan Hubicka <jh@suse.cz>
1795 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
1797 * lto-cgraph.c (referenced_from_other_partition_p,
1798 reachable_from_other_partition_p): Use in_other_partition flags.
1799 (output_node, output_varpool_node): COMDAT nodes always have private
1800 copies and thus are never used from other partition.
1802 2010-07-05 Anatoly Sokolov <aesok@post.ru>
1804 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
1805 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
1806 * config/ia64/ia64.c Include reload.h.
1807 (ia64_memory_move_cost): New function.
1808 (TARGET_MEMORY_MOVE_COST): Define.
1809 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
1812 2010-07-05 Sandra Loosemore <sandra@codesourcery.com>
1815 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
1816 comments about cost model.
1817 (try_add_cand_for): Add second strategy for choosing initial set
1818 based on original IVs, controlled by ORIGINALP argument.
1819 (get_initial_solution): Add ORIGINALP argument.
1820 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
1821 (find_optimal_iv_set): Try two different strategies for choosing
1822 the IV set, and return the one with lower cost.
1824 2010-07-05 Richard Guenther <rguenther@suse.de>
1826 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
1828 2010-07-05 Richard Guenther <rguenther@suse.de>
1830 * tree.c (reference_alias_ptr_type): New function.
1831 * tree.h (reference_alias_ptr_type): Declare.
1832 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
1833 allow non-TARGET_MEM_REF new refs.
1834 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
1835 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
1836 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
1837 (create_mem_ref): Get alias pointer type. Adjust calls to
1839 (maybe_fold_tmr): Likewise.
1840 * tree-flow.h (create_mem_ref): Adjust prototype.
1842 2010-07-05 Jakub Jelinek <jakub@redhat.com>
1845 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
1846 *from_p is VAR_DECL.
1848 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
1850 * tree.h (build_call_list): Remove.
1851 * tree.c (build_call_list): Remove.
1853 2010-07-05 Richard Guenther <rguenther@suse.de>
1855 * double-int.h (double_int_sub): Declare.
1856 * double-int.c (double_int_sub): New function.
1857 * dwarf2out.c (field_byte_offset): Use it.
1858 * fixed-value.c (do_fixed_add): Likewise.
1859 (do_fixed_multiply): Likewise.
1860 (do_fixed_divide): Likewise.
1861 * tree-predcom.c (add_ref_to_chain): Likewise.
1862 (determine_roots_comp): Likewise.
1863 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
1865 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
1867 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
1870 2010-07-05 Bernd Schmidt <bernds@codesourcery.com>
1872 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
1873 * arm-modes.def (CC_NOTB): Don't define.
1874 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
1875 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
1876 (LTUGEU): New code_iterator.
1877 (cnb, optab): New corresponding code_attrs.
1878 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
1879 to canonical form. Operands 1 and 2 are commutative. Parametrize
1881 (addsi3_carryin_shift_<optab>): Likewise.
1882 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
1883 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
1884 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
1885 (subsi3_compare): Renamed from subsi3_compare0_c.
1886 Change CC_NOTB to CC.
1887 (arm_subsi3_insn): Allow constants for operand 0.
1888 (compare_scc peephole for eq case): New.
1889 (compare_scc splitters): Change CC_NOTB to CC.
1891 2010-07-05 Richard Guenther <rguenther@suse.de>
1893 * tree-ssa-loop-im.c (for_each_index): Do not handle
1895 (gen_lsm_tmp_name): Likewise.
1896 * tree-dump.c (dequeue_and_dump): Likewise.
1897 * tree-pretty-print.c (dump_generic_node): Likewise.
1898 (op_code_prio): Likewise.
1899 (op_symbol_code): Likewise.
1900 * tree.c (staticp): Likewise.
1901 (build1_stat): Likewise.
1902 * tree.h (INDIRECT_REF_P): Likewise.
1903 * fold-const.c (maybe_lvalue_p): Likewise.
1904 (operand_equal_p): Likewise.
1905 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1906 (ao_ref_init_from_vn_reference): Likewise.
1907 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
1908 (find_interesting_uses_address): Likewise.
1909 * dwarf2out.c (loc_list_from_tree): Likewise.
1910 * gimplify.c (gimplify_expr): Likewise.
1911 * tree-eh.c (tree_could_trap_p): Likewise.
1912 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1913 * cfgexpand.c (expand_debug_expr): Likewise.
1914 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1915 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1916 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
1917 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
1918 * tree-ssa-operands.c (get_expr_operands): Likewise.
1919 * expr.c (safe_from_p): Likewise.
1920 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
1921 * tree-vect-data-refs.c (vect_setup_realignment): Build
1922 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
1923 * tree-vect-stmts.c (vectorizable_load): Likewise.
1924 * tree.def (ALIGN_INDIRECT_REF): Remove.
1926 2010-07-05 Richard Guenther <rguenther@suse.de>
1928 PR tree-optimization/44784
1929 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
1931 (find_or_generate_expression): Fix SCCVN insertion check.
1933 2010-07-05 Nathan Sidwell <nathan@codesourcery.com>
1935 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
1936 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
1937 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
1940 2010-07-05 Ira Rosen <irar@il.ibm.com>
1942 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
1943 statements that are not vectorized.
1944 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
1947 2010-07-05 Mikael Pettersson <mikpe@it.uu.se>
1950 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
1952 2010-07-05 Richard Guenther <rguenther@suse.de>
1954 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
1955 RESULT_DECLs properly.
1957 2010-07-04 H.J. Lu <hongjiu.lu@intel.com>
1959 PR rtl-optimization/44695
1960 * config/i386/i386.md (extract_code): Removed.
1961 (<u>divmodqi4): Likewise.
1963 (udivmodqi4): Likewise.
1964 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
1965 (udivmodhiqi3): Likewise.
1967 2010-07-04 Jan Hubicka <jh@suse.cz>
1969 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
1971 2010-07-04 Jan Hubicka <jh@suse.cz>
1973 * cgraphunit.c (init_cgraph): Only initialize dump file if it
1974 is not already initialized.
1976 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
1978 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
1979 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
1980 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
1981 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
1982 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
1983 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
1984 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
1985 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
1986 (sync_new_nand_optab): Redefine as macros.
1987 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
1989 (direct_optab_index): New enum.
1990 (direct_optab_d): New structure.
1991 (direct_optab): New typedef.
1992 (direct_optab_table): Declare.
1993 (direct_optab_handler, set_direct_optab_handler): New functions.
1994 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
1995 (sync_lock_release_optab): New macros.
1996 * optabs.c (direct_optab_table): New variable.
1997 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
1998 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
1999 cmpstr_optab and cmpstrn_optab.
2000 (emit_conditional_move): Likewise for movcc_optab.
2001 (can_conditionally_move_p): Likewise for movcc_gen_code.
2002 (init_insn_codes): Clear direct_optab_table.
2003 (init_optabs): Don't initialize the new "direct optabs" here.
2004 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
2006 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
2007 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
2008 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
2009 (expand_sync_operation): Likewise other sync_*_optabs.
2010 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
2011 to sync_compare_and_swap_optab.
2012 (expand_sync_lock_test_and_set): Use direct_optab_handler for
2013 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
2014 to the names of both.
2015 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
2016 cmpstr_optab and cmpstrn_optab.
2017 (expand_builtin_lock_release): Likewise sync_lock_release.
2018 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
2019 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
2020 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
2021 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
2022 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
2023 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
2024 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
2025 (sync_lock_test_and_set, sync_lock_release): Delete.
2026 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
2027 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
2028 * genopinit.c (optabs): Use set_direct_optab_handler for the new
2030 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
2031 the "optab" local variable. Use direct_optab_handler for optab and
2032 sync_compare_and_swap_optab.
2033 * reload1.c (reload_in_optab, reload_out_optab): Delete.
2034 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
2035 reload_in_optab and reload_out_optab.
2036 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
2037 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
2038 * config/pa/pa.c (pa_secondary_reload): Likewise.
2039 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
2040 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
2041 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
2042 (VMSupportsCS8_builtin): Likewise.
2044 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
2046 * optabs.h (optab_handlers): Change type of insn_code to int.
2047 (optab_handler, set_optab_handler, convert_optab_handler)
2048 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
2050 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
2051 (init_insn_codes): Zero both the above arrays.
2052 (init_optabs): Never call init_insn_codes first time around.
2054 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
2056 * optabs.h (optab_handler, convert_optab_handler): Turn into
2057 inline functions that return an insn code.
2058 (set_optab_handler, set_convert_optab_handler): New functions.
2059 * builtins.c: Replace optab_handler(X)->insn_code with
2060 optab_handler or set_optab_handler thoughout. Likewise
2061 convert_optab_handler(X)->insn_code with convert_optab_handler
2062 and set_convert_optab_handler.
2063 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
2064 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
2065 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
2066 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
2067 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
2068 config/spu/spu.c: Likewise.
2070 2010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
2073 * config.gcc (sh*-*-*): Use regular expressions instead of
2074 the 'i' modifier for sed substitutions.
2076 2010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
2078 * gimple.c (gimple_body): Comments added.
2080 2010-07-04 Richard Guenther <rguenther@suse.de>
2083 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
2086 2010-07-04 Richard Guenther <rguenther@suse.de>
2088 PR tree-optimization/44479
2089 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
2090 extra SSA name copy statements which preserves points-to
2092 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
2093 Copy points-to information for all pointers. Properly handle
2095 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
2097 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
2100 2010-07-04 Richard Guenther <rguenther@suse.de>
2103 * tree-inline.c (initialize_inlined_parameters): Do not
2104 re-use pointer-map slot over remap_type call.
2106 2010-07-04 Richard Guenther <rguenther@suse.de>
2108 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
2110 2010-07-04 Richard Guenther <rguenther@suse.de>
2112 PR tree-optimization/44656
2113 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
2114 again after value-replacing in the defintions lhs.
2116 2010-07-04 Ira Rosen <irar@il.ibm.com>
2117 Revital Eres <eres@il.ibm.com>
2119 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
2120 Document new arguments.
2121 * doc/tm.texi: Regenerate.
2122 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
2123 Handle unaligned store.
2124 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
2125 * target.def (builtin_vectorization_cost): Add new arguments.
2126 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
2127 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
2128 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
2129 (vect_vfa_segment_size): Fix indentation.
2130 * tree-vectorizer.h (struct _vect_peel_info): New.
2131 (struct _vect_peel_extended_info): New.
2132 (struct _loop_vec_info): Add new field for peeling hash table and a
2133 macro for its access.
2134 (VECT_MAX_COST): Define.
2135 (vect_get_load_cost): Declare.
2136 (vect_get_store_cost, vect_get_known_peeling_cost,
2137 vect_get_single_scalar_iteraion_cost): Likewise.
2138 (vect_supportable_dr_alignment): Add new argument.
2139 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
2141 (destroy_loop_vec_info): Free peeling hash table.
2142 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
2143 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
2144 vect_analyze_slp. Fix indentation.
2145 (vect_get_single_scalar_iteraion_cost): New function.
2146 (vect_get_known_peeling_cost): Likewise.
2147 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
2148 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
2149 statement. Move outside cost calculation inside unknown peeling case.
2150 Call vect_get_known_peeling_cost for known amount of peeling.
2151 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
2152 reference to the print message of forced alignment.
2153 (vect_verify_datarefs_alignment): Update call to
2154 vect_supportable_dr_alignment.
2155 (vect_get_data_access_cost): New function.
2156 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
2157 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
2158 vect_peeling_hash_choose_best_peeling): Likewise.
2159 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
2160 to store all the accesses in the loop and find best possible access to
2161 align using peeling for known alignment case. For unknown alignment
2162 check if stores are preferred or if peeling is worthy.
2163 (vect_find_same_alignment_drs): Analyze pairs of loads too.
2164 (vect_supportable_dr_alignment): Add new argument and check aligned
2165 accesses according to it.
2166 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
2167 (cost_for_stmt): Call vect_get_stmt_cost.
2168 (vect_model_simple_cost): Likewise.
2169 (vect_model_store_cost): Call vect_get_stmt_cost. Call
2170 vect_get_store_cost to calculate the cost of the statement.
2171 (vect_get_store_cost): New function.
2172 (vect_model_load_cost): Call vect_get_stmt_cost. Call
2173 vect_get_load_cost to calculate the cost of the statement.
2174 (vect_get_load_cost): New function.
2175 (vectorizable_store): Update call to vect_supportable_dr_alignment.
2176 (vectorizable_load): Likewise.
2177 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
2178 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
2179 arguments. Handle unaligned store.
2180 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
2181 (rs6000_builtin_support_vector_misalignment): Return true for word and
2182 double word alignments for VSX.
2183 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
2184 vect_supportable_dr_alignment and builtin_vectorization_cost.
2186 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2189 * config/pa/predicates.md (prefetch_cc_operand): Remove.
2190 (prefetch_nocc_operand): Likewise.
2191 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
2192 (prefetch_20): New insn.
2193 (prefetch_cc): Remove.
2194 (prefetch_nocc): Likewise.
2196 2010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
2198 * expr.c (vector_mode_valid_p): Move to c-common.c.
2199 * expr.h (vector_mode_valid_p): Do not declare here.
2200 * system.h: Poison GCC_EXPR_H in front-ends.
2201 * Makefile.in: Update dependencies.
2203 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2206 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
2208 2010-07-03 Jan Hubicka <jh@suse.cz>
2210 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
2211 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
2212 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
2213 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
2216 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
2218 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
2219 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
2220 TV_IPA_LTO_DECL_OUT): New.
2221 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
2223 2010-07-03 Jan Hubicka <jh@suse.cz>
2225 * ipa-inline.c (update_edge_key): Break out from ...
2226 update_callers_keys): ... here;
2227 (update_callee_keys): Update only the edges from caller to callee.
2228 (update_all_calle_keys): Do what update_calle_keys did.
2229 (decide_inlining_of_small_functions): Avoid recomputing of all
2230 callees when badness increase.
2232 2010-07-03 Jie Zhang <jie@codesourcery.com>
2234 * config/arm/arm.c (arm_attr_length_move_neon): New.
2235 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
2236 * config/arm/neon.md (define_mode_attr V_slen): Remove.
2237 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
2238 to compute length attribute.
2240 2010-07-03 Jie Zhang <jie@codesourcery.com>
2242 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
2243 as predicate for operand 1 and remove its constraint.
2244 * config/arm/predicates.md (vfp_register_operand): New.
2245 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
2246 (*push_fp_multi): Likewise.
2248 2010-07-03 Eric Botcazou <ebotcazou@adacore.com>
2250 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
2252 2010-07-03 Jan Hubicka <jh@suse.cz>
2254 * config/i386/i386.c (override_options): Revert accidental commit.
2256 2010-07-02 Le-Chun Wu <lcwu@google.com>
2259 * doc/invoke.texi: Update documentation of -Wshadow.
2261 2010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
2262 Julian Brown <julian@codesourcery.com>
2263 Sandra Loosemore <sandra@codesourcery.com>
2265 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
2266 comparisons. Adjust to take both operands.
2267 (arm_select_cc_mode): Handle DImode comparisons.
2268 (arm_gen_compare_reg): Generate a scratch register for DImode
2269 comparisons which require one. Use xor for Thumb equality checks.
2270 (arm_const_double_by_immediates): New.
2271 (arm_print_operand): Allow 'Q' and 'R' for constants.
2272 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
2273 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
2274 arm_canonicalize_comparison.
2275 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
2276 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
2278 (arm_const_double_by_immediates): Declare.
2279 * config/arm/constraints.md (Di): New constraint.
2280 * config/arm/predicates.md (arm_immediate_di_operand)
2281 (arm_di_operand, cmpdi_operand): New.
2282 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
2283 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
2284 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
2285 (cstoredi4): Handle non-Cirrus also.
2287 2010-07-02 Julian Brown <julian@codesourcery.com>
2288 Sandra Loosemore <sandra@codesourcery.com>
2291 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
2292 (smax<mode>3): Disable for NEON float modes when
2293 flag_unsafe_math_optimizations is false.
2294 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
2296 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
2297 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
2298 for NEON float modes when flag_unsafe_math_optimizations is false.
2299 (quad_halves_<code>v4sf): Only enable if
2300 flag_unsafe_math_optimizations is true.
2301 * doc/invoke.texi (ARM Options): Add note about floating point
2302 vectorization requiring -funsafe-math-optimizations.
2304 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
2305 Julian Brown <julian@codesourcery.com>
2307 * config/arm/neon.md (UNSPEC_VABA): Delete.
2308 (UNSPEC_VABAL): Delete.
2309 (UNSPEC_VABS): Delete.
2310 (UNSPEC_VMUL_N): Delete.
2313 (mul<mode>3add<mode>_neon): Make the pattern named.
2314 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
2315 (neon_vadd<mode>): Replace with define_expand, and move the remaining
2317 (neon_vadd<mode>_unspec): ...to this.
2318 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
2319 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
2320 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
2321 (neon_vaba<mode>): Rewrite in terms of vabd.
2322 (neon_vabal<mode>): Rewrite in terms of vabdl.
2323 (neon_vabs<mode>): Rewrite without unspec.
2324 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
2325 (*arm_subdi3): Likewise.
2326 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
2327 No_op attribute to disable assembly output checks.
2328 * config/arm/arm_neon.h: Regenerated.
2329 * doc/arm-neon-intrinsics.texi: Regenerated.
2331 2010-07-02 Jan Hubicka <jh@suse.cz>
2333 * ipa-split.c (split_function): For aggregate values, set the return
2334 slot optimization bit. When passing DECL_BY_REFERENCE, produce
2335 *<retval> = fncall.part ().
2336 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
2338 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
2340 * config/arm/neon.md (UNSPEC_VAND): Delete.
2341 (UNSPEC_VBIC): Delete.
2342 (UNSPEC_VCLZ): Delete.
2343 (UNSPEC_VCNT): Delete.
2344 (UNSPEC_VEOR): Delete.
2345 (UNSPEC_VORN): Delete.
2346 (UNSPEC_VORR): Delete.
2347 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
2349 (anddi3_neon): Likewise.
2350 (orndi3_neon): Likewise.
2351 (bicdi3_neon): Likewise.
2352 (xordi3_neon): Likewise.
2353 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
2354 rid of unspec and handle unused operand.
2355 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
2356 * config/arm/predicates.md (imm_for_neon_logic_operand):
2357 Require TARGET_NEON.
2358 (imm_for_neon_inv_logic_operand): Likewise.
2359 * config/arm/arm.md (define_split for logical_binary_operator):
2360 Disable for NEON registers.
2361 (anddi3): Add new define_expand, and rename the insn. Disable
2362 this insn for NEON, where anddi3_neon now applies.
2363 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
2364 (iordi3): As for anddi3.
2366 * config/arm/neon.ml (Vand): Split DImode variants and mark them
2367 as No_op to disable testing for exact instruction match.
2372 * config/arm/arm_neon.h: Regenerated.
2373 * doc/arm-neon-intrinsics.texi: Regenerated.
2375 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
2377 * expr.h (emit_stack_probe): Declare.
2378 * explow.c (emit_stack_probe): Make global.
2379 (anti_adjust_stack_and_probe): Fix comments.
2380 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
2381 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2382 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2383 * config/sparc/sparc.c: Include except.h.
2384 (sparc_emit_probe_stack_range): New function.
2385 (output_probe_stack_range): Likewise.
2386 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
2387 built-in stack checking is enabled.
2388 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
2389 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
2390 (probe_stack_range): New insn.
2392 2010-07-02 Richard Guenther <rguenther@suse.de>
2395 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
2396 for argument alignment.
2398 2010-07-02 Jan Hubicka <jh@suse.cz>
2400 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
2401 walk backwards from entry_bb to check only those basic block of header
2402 that might lead to execution of split part.
2403 (consider_split) ... here.
2404 (find_return_bb): Allow assignment in return BB.
2406 (split_function): Fix name of cloned function; take care of updating
2407 return value in return_bb containing move.
2409 2010-07-02 Andreas Schwab <schwab@linux-m68k.org>
2412 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
2415 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
2417 * implicit-zee.c (combine_reaching_defs): Fix long lines.
2418 (is_set_with_extension_DI): Delete.
2419 (struct zero_extend_info): New structure.
2420 (add_removable_zero_extend): New function.
2421 (find_removable_zero_extends): Use note_stores to find SETs.
2422 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
2424 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
2426 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
2427 is_miss_rate_acceptable. Pull total_positions computation
2428 out of the loops. Early return if miss_positions exceeds
2429 the acceptable threshold.
2430 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
2431 is_miss_rate_acceptable after renaming of compute_miss_rate.
2433 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
2436 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
2437 of 1000) for miss rate if the address diference is greater than or
2438 equal to the cache line size (the two reference will never hit the
2441 2010-07-02 Bernd Schmidt <bernds@codesourcery.com>
2444 * config/arm/arm-modes.def (CC_NOTB): New mode.
2445 * config/arm/arm.c (get_arm_condition_code): Handle it.
2446 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
2447 * config/arm/arm.md (subsi3_compare0_c): New pattern.
2448 (compare_scc): Now a define_and_split. Add a number of extra
2449 splitters before it.
2452 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
2454 (arm_rtx_costs_1): Likewise.
2455 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
2456 * config/arm/arm.md (is_arch6): New attribute.
2457 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
2458 extendqisi2): Tighten the code somewhat, avoiding invalid
2459 RTL to occur in the expander patterns.
2460 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
2461 (thumb1_zero_extendhisi2_v6): Delete.
2462 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
2463 (thumb1_extendhisi2_v6): Delete.
2464 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
2465 (thumb1_extendqisi2_v6): Delete.
2466 (zero_extendhisi2 for register input splitter): New.
2467 (zero_extendqisi2 for register input splitter): New.
2468 (thumb1_extendhisi2 for register input splitter): New.
2469 (extendhisi2 for register input splitter): New.
2470 (extendqisi2 for register input splitter): New.
2471 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
2472 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
2473 and add support for a register alternative requiring a split.
2474 (thumb1_zero_extendqisi2): Likewise.
2475 (arm_zero_extendqisi2): Likewise.
2476 (arm_extendhisi2): Likewise.
2477 (arm_extendqisi2): Likewise.
2479 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
2481 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
2482 instead of an unspec.
2483 (neon_expand_vector_init): Likewise.
2484 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
2485 (UNSPEC_VDUP_LANE): Delete.
2486 (UNSPEC VDUP_N): Delete.
2487 (UNSPEC_VGET_HIGH): Delete.
2488 (UNSPEC_VGET_LANE): Delete.
2489 (UNSPEC_VGET_LOW): Delete.
2490 (UNSPEC_VMVN): Delete.
2491 (UNSPEC_VSET_LANE): Delete.
2492 (V_double_vector_mode): New.
2493 (vec_set<mode>_internal): Make code emitted match that for the
2494 corresponding intrinsics.
2495 (vec_setv2di_internal): Likewise.
2496 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
2497 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
2498 (neon_vset_lane<mode>): Combine double and quad patterns and
2499 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
2500 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
2501 (neon_vdup_n<mode>): Rewrite RTL without unspec.
2502 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
2503 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
2504 with neon_vdup_lanev2di, adjusting the pattern from the latter
2505 to be predicable for consistency.
2506 (neon_vdup_lane<mode>_internal): New.
2507 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
2508 to avoid using an unspec.
2509 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
2510 (neon_vdup_lanev2di): Turn into a define_expand.
2511 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
2512 (neon_vget_high<mode>): Replace with....
2513 (neon_vget_highv16qi): New pattern using canonical RTL.
2514 (neon_vget_highv8hi): Likewise.
2515 (neon_vget_highv4si): Likewise.
2516 (neon_vget_highv4sf): Likewise.
2517 (neon_vget_highv2di): Likewise.
2518 (neon_vget_low<mode>): Replace with....
2519 (neon_vget_lowv16qi): New pattern using canonical RTL.
2520 (neon_vget_lowv8hi): Likewise.
2521 (neon_vget_lowv4si): Likewise.
2522 (neon_vget_lowv4sf): Likewise.
2523 (neon_vget_lowv2di): Likewise.
2525 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
2526 test for this emitting vmov.
2527 (Vset_lane): Likewise.
2531 * doc/arm-neon-intrinsics.texi: Regenerated.
2533 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
2535 * config/arm/neon.md (vec_extractv2di): Correct error in register
2536 numbering to reconcile with neon_vget_lanev2di.
2538 2010-07-02 Richard Guenther <rguenther@suse.de>
2540 * tree-ssa-structalias.c (pt_solution_set_var): New function.
2541 * tree-ssa-alias.h (pt_solution_set_var): Declare.
2542 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
2543 points-to information.
2545 2010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
2547 * config/s390/s390.c (override_options): Adopt prefetching
2548 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
2550 2010-07-02 Jan Hubicka <jh@suse.cz>
2552 * df-problems.c (df_kill_notes): Do not collect dead notes.
2553 (df_set_note): Just call add_reg_note.
2554 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
2555 df_create_unused_note): Do not deal with lists of old notes.
2556 (df_note_bb_compute): Likewise.
2558 2010-07-02 Richard Guenther <rguenther@suse.de>
2560 * tree-ssa-structalias.c (find_func_aliases): Handle
2561 pointer alignment via BIT_AND_EXPR.
2562 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
2564 2010-07-02 Richard Guenther <rguenther@suse.de>
2566 * tree-data-ref.c (initialize_data_dependence_relation): Handle
2567 mismatching number of dimensions properly.
2569 2010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2572 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
2573 (lo_sum (high ...) ...) patterns generated by earlier passes.
2575 2010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2577 * doc/install.texi (Prerequisites): Document Perl requirement on
2579 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
2581 2010-07-02 Richard Guenther <rguenther@suse.de>
2584 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
2586 2010-07-02 Jan Hubicka <jh@suse.cz>
2589 * predict.c (predict_paths_for_bb): Handle case when control dependence
2590 BB has only abnormal edges.
2592 2010-07-02 Richard Guenther <rguenther@suse.de>
2594 PR tree-optimization/44748
2595 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
2596 the embedded conversion in MEM_REFs.
2598 2010-07-01 López-Ibáñez <manu@gcc.gnu.org>
2600 * reload.c: Include toplev.h.
2601 * recog.c: Likewise.
2602 * Makefile.in: Adjust dependencies.
2604 2010-07-01 Jakub Jelinek <jakub@redhat.com>
2607 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
2608 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
2610 2010-07-01 Richard Guenther <rguenther@suse.de>
2612 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
2615 2010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
2618 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
2621 2010-07-01 Bernd Schmidt <bernds@codesourcery.com>
2624 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
2625 Make sure operand 0 dies.
2627 2010-07-01 Richard Guenther <rguenther@suse.de>
2631 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
2632 * doc/generic.texi (References to storage): Document MEM_REF.
2633 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
2634 (print_call_name): Likewise.
2635 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
2636 (build_simple_mem_ref_loc): New function.
2637 (mem_ref_offset): Likewise.
2638 * tree.h (build_simple_mem_ref_loc): Declare.
2639 (build_simple_mem_ref): Define.
2640 (mem_ref_offset): Declare.
2641 * fold-const.c: Include tree-flow.h.
2642 (operand_equal_p): Handle MEM_REF.
2643 (build_fold_addr_expr_with_type_loc): Likewise.
2644 (fold_comparison): Likewise.
2645 (fold_unary_loc): Fold
2646 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
2647 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
2648 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
2649 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
2650 (ptr_deref_may_alias_ref_p_1): Likewise.
2651 (ao_ref_base_alias_set): Properly differentiate base object for
2653 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
2654 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
2655 (indirect_refs_may_alias_p): Likewise.
2656 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
2658 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
2659 (call_may_clobber_ref_p_1): Likewise.
2660 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
2661 * expr.c (expand_assignment): Handle MEM_REF.
2662 (store_expr): Handle MEM_REFs from STRING_CSTs.
2663 (store_field): If expanding a MEM_REF of a non-addressable
2664 decl use bitfield operations.
2665 (get_inner_reference): Handle MEM_REF.
2666 (expand_expr_addr_expr_1): Likewise.
2667 (expand_expr_real_1): Likewise.
2668 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
2669 * alias.c (ao_ref_from_mem): Handle MEM_REF.
2670 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
2671 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
2672 (dr_analyze_indices): Likewise.
2673 (dr_analyze_alias): Likewise.
2674 (object_address_invariant_in_loop_p): Likewise.
2675 * gimplify.c (mark_addressable): Handle MEM_REF.
2676 (gimplify_cond_expr): Build MEM_REFs.
2677 (gimplify_modify_expr_to_memcpy): Likewise.
2678 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
2679 (gimple_fold_indirect_ref): Adjust.
2680 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
2681 * tree.def (MEM_REF): New tree code.
2682 * tree-dfa.c: Include toplev.h.
2683 (get_ref_base_and_extent): Handle MEM_REF.
2684 (get_addr_base_and_unit_offset): New function.
2685 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
2686 * gimple-fold.c (may_propagate_address_into_dereference): Handle
2688 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
2689 accesses if the array has just one dimension. Remove always true
2690 parameter. Do not require type compatibility here.
2691 (maybe_fold_offset_to_component_ref): Remove.
2692 (maybe_fold_stmt_indirect): Remove.
2693 (maybe_fold_reference): Remove INDIRECT_REF handling.
2694 Fold back to non-MEM_REF.
2695 (maybe_fold_offset_to_address): Simplify. Deal with type
2697 (maybe_fold_reference): Likewise.
2698 (maybe_fold_stmt_addition): Likewise. Also handle
2699 &ARRAY + I in addition to &ARRAY[0] + I.
2700 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
2701 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
2702 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
2703 * tree-ssa.c (useless_type_conversion_p): Make most pointer
2704 conversions useless.
2705 (warn_uninitialized_var): Handle MEM_REF.
2706 (maybe_rewrite_mem_ref_base): New function.
2707 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
2709 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
2710 INDIRECT_REF handling.
2711 (copy_tree_body_r): Handle MEM_REF.
2712 * gimple.c (is_gimple_addressable): Adjust.
2713 (is_gimple_address): Likewise.
2714 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
2715 invariant base are invariant.
2716 (is_gimple_min_lval): Adjust.
2717 (is_gimple_mem_ref_addr): New function.
2718 (get_base_address): Handle MEM_REF.
2719 (count_ptr_derefs): Likewise.
2720 (get_base_loadstore): Likewise.
2721 * gimple.h (is_gimple_mem_ref_addr): Declare.
2722 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
2723 * tree-cfg.c (verify_address): New function, split out from ...
2724 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
2725 the address operand of MEM_REFs. Verify MEM_REFs. Reject
2727 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
2728 INDIRECT_REF. Allow conversions.
2729 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
2730 a register does not change its size.
2731 (verify_types_in_gimple_reference): Verify MEM_REF.
2732 (verify_gimple_assign_single): Disallow INDIRECT_REF.
2734 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
2736 (mark_address_taken): Handle MEM_REF.
2737 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
2738 (get_asm_expr_operands): Pass opf_not_non_addressable.
2739 (get_expr_operands): Handle opf_[not_]non_addressable.
2740 Handle MEM_REF. Remove INDIRECT_REF handling.
2741 * tree-vrp.c: (check_array_ref): Handle MEM_REF.
2742 (search_for_addr_array): Likewise.
2743 (check_array_bounds): Likewise.
2744 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
2745 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
2746 (ref_always_accessed_p): Likewise.
2747 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
2748 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
2750 * cgraphbuild.c (mark_load): Properly check for NULL result
2751 from get_base_address.
2752 (mark_store): Likewise.
2753 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
2754 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
2755 handling for MEM_REF.
2756 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
2757 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
2758 * builtins.c (stabilize_va_list_loc): Use the function ABI
2759 valist type if we couldn't canonicalize the argument type.
2760 Always dereference with the canonical va-list type.
2761 (maybe_emit_free_warning): Handle MEM_REF.
2762 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
2764 * builtins.c (fold_builtin_memory_op): Use ref-all types
2765 for all memcpy foldings.
2766 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
2767 (build_outer_var_ref): Likewise.
2768 (scan_omp_1_op): Likewise.
2769 (lower_rec_input_clauses): Likewise.
2770 (lower_lastprivate_clauses): Likewise.
2771 (lower_reduction_clauses): Likewise.
2772 (lower_copyprivate_clauses): Likewise.
2773 (expand_omp_atomic_pipeline): Likewise.
2774 (expand_omp_atomic_mutex): Likewise.
2775 (create_task_copyfn): Likewise.
2776 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
2777 Remove old union trick. Initialize constant offsets.
2778 (ao_ref_init_from_vn_reference): Likewise. Do not handle
2779 INDIRECT_REF. Init base_alias_set properly.
2780 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
2781 (vn_reference_fold_indirect): Adjust for MEM_REFs.
2782 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
2784 (may_insert): Remove.
2785 (visit_reference_op_load): Do not test may_insert.
2786 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
2787 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
2788 a field to store the constant offset this op applies.
2789 (run_scc_vn): Adjust prototype.
2790 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
2791 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
2792 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
2793 bother about volatile qualifiers on pointers.
2794 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
2795 * tree-ssa-loop-ivopts.c
2796 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
2797 (strip_offset_1): Likewise.
2798 (find_interesting_uses_address): Replace INDIRECT_REF handling with
2800 (get_computation_cost_at): Likewise.
2801 * ipa-pure-const.c (check_op): Handle MEM_REF.
2802 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
2803 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
2805 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
2806 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
2807 (eliminate_local_variables_1): Likewise.
2808 (create_call_for_reduction_1): Likewise.
2809 (create_loads_for_reductions): Likewise.
2810 (create_loads_and_stores_for_name): Likewise.
2811 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
2812 (ssa_accessed_in_tree): Handle MEM_REF.
2813 (ssa_accessed_in_assign_rhs): Likewise.
2814 (update_type_size): Likewise.
2815 (analyze_accesses_for_call_stmt): Likewise.
2816 (analyze_accesses_for_assign_stmt): Likewise.
2817 (transform_access_sites): Likewise.
2818 (transform_allocation_sites): Likewise.
2819 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
2820 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
2821 not handle INDIRECT_REF.
2822 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
2823 (cond_store_replacement): Likewise.
2824 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2825 MEM_REF, no not handle INDIRECT_REFs.
2826 (insert_into_preds_of_block): Properly initialize avail.
2827 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
2828 for ARRAY_REFs. Properly handle reference lookups that
2829 require a bit re-interpretation.
2830 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
2831 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
2832 (build_ref_for_offset_1): Remove.
2833 (build_ref_for_offset): Build MEM_REFs.
2834 (gate_intra_sra): Disable for now.
2835 (sra_ipa_modify_expr): Handle MEM_REF.
2836 (ipa_early_sra_gate): Disable for now.
2837 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
2839 (disqualify_base_of_expr): Likewise.
2840 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
2842 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
2843 Use mem_ref_offset. Remove bogus folding.
2844 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
2845 (make_fancy_name_1): Add support for MEM_REF.
2846 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
2847 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
2848 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
2849 (compute_complex_ancestor_jump_func): Likewise.
2850 (ipa_analyze_virtual_call_uses): Likewise.
2851 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
2852 INDIRECT_REF folding with more generalized MEM_REF folding.
2853 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
2854 (forward_propagate_addr_into_variable_array_index): Also handle
2855 &ARRAY + I in addition to &ARRAY[0] + I.
2856 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
2857 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
2858 creates assignments with overlap.
2859 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
2860 (get_frame_field): Likewise.
2861 (get_nonlocal_debug_decl): Likewise.
2862 (convert_nonlocal_reference_op): Likewise.
2863 (struct nesting_info): Add mem_refs pointer-set.
2864 (create_nesting_tree): Allocate it.
2865 (convert_local_reference_op): Insert to be folded mem-refs.
2866 (fold_mem_refs): New function.
2867 (finalize_nesting_tree_1): Perform defered folding of mem-refs
2868 (free_nesting_tree): Free the pointer-set.
2869 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
2870 (vectorizable_load): Likewise.
2871 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
2872 (propagate_with_phi): Likewise.
2873 * tree-object-size.c (addr_object_size): Handle MEM_REFs
2874 instead of INDIRECT_REFs.
2875 (compute_object_offset): Handle MEM_REF.
2876 (plus_stmt_object_size): Handle MEM_REF.
2877 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
2879 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
2880 (symbol_marked_for_renaming): Likewise.
2881 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
2882 (fold-const.o): Add $(TREE_FLOW_H).
2883 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
2884 (find_func_clobbers): Likewise.
2885 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
2886 (decompose_access): Likewise.
2887 (replace_field_acc): Likewise.
2888 (replace_field_access_stmt): Likewise.
2889 (insert_new_var_in_stmt): Likewise.
2890 (get_stmt_accesses): Likewise.
2891 (reorg_structs_drive): Disable.
2892 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
2893 (ix86_canonical_va_list_type): Likewise.
2895 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
2898 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
2899 * target.def (struct gcc_target): Replace enum reg_class with
2900 reg_class_t in hook argument / return types.
2901 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
2902 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
2903 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
2904 * targhooks.h (default_branch_target_register_class): Likewise.
2905 (default_ira_cover_classes, default_secondary_reload): Likewise.
2906 (default_memory_move_cost, default_register_move_cost): Likewise.
2907 * targhooks.c (default_branch_target_register_class): Likewise.
2908 (default_ira_cover_classes, default_secondary_reload): Likewise.
2909 (default_memory_move_cost, default_register_move_cost): Likewise.
2910 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
2911 * bt-load.c (branch_target_load_optimize): Likewise.
2912 * ira.c (setup_cover_and_important_classes): Likewise.
2913 * ira-costs.c (copy_cost): Likewise.
2914 * reload1.c (emit_input_reload_insns): Likewise.
2915 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
2916 * config/frv/frv.c (frv_secondary_reload): Likewise.
2917 * config/s390/s390.c (s390_secondary_reload): Likewise.
2918 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
2919 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
2920 (ix86_register_move_cost): Likewise.
2921 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
2922 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
2923 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
2924 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
2925 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
2926 (rs6000_ira_cover_classes): Likewise.
2927 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
2928 * config/picochip/picochip-protos.h (picochip_secondary_reload):
2930 * config/pa/pa.c (pa_secondary_reload): Likewise.
2931 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
2932 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
2933 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
2934 * doc/tm.texi: Regenerate.
2936 2010-06-30 Sebastian Pop <sebastian.pop@amd.com>
2939 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
2941 (build_alias_set_optimal_p): Likewise.
2942 (build_base_obj_set_for_drs): Likewise.
2944 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
2946 * target.def: Remove comment about licensing problems of function
2949 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
2950 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
2951 * doc/tm.texi: Regenerate.
2953 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
2954 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
2956 * target.def (enum_va_list_p): Use DEFHOOK.
2957 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
2958 Rename ptype to ptree.
2959 * doc/tm.texi: Regenerate.
2961 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
2962 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
2963 * doc/tm.texi: Regenerate.
2965 * target.def (memory_move_cost): Use DEFHOOK.
2966 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
2967 Rename regclass AKA class to rclass.
2968 * doc/tm.texi: Regenerate.
2970 * target.def (pragma_parse): Use DEFHOOK.
2971 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
2972 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
2973 * doc/tm.texi: Regenerate.
2975 * target.def (pass_by_reference): Use DEFHOOK.
2976 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
2977 * doc/tm.texi: Regenerate.
2979 * target.def (resolve_overloaded_builtin): Rename params to arglist.
2981 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
2982 * doc/tm.texi: Regenerate.
2984 * target.def (return_pops_args): Use DEFHOOK.
2985 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
2986 Rename stack-size to size.
2987 * doc/tm.texi: Regenerate.
2989 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
2990 last-sched_cycle to last_clock, cur_cycle to clock.
2991 * doc/tm.texi.in: Use @hook.
2992 * doc/tm.texi: Regenerate.
2994 * target.def (print_operand, print_operand_address): Update comment.
2995 (print_operand_punct_valid_p): Likewise.
2997 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
2999 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
3001 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
3002 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
3004 * regrename.c: Do not include toplev.h. Include rtl-error.h.
3005 * rtl-error.c: Likewise.
3006 * reload.c: Likewise.
3007 * recog.c: Likewise.
3008 * sel-sched.c: Likewise.
3009 * function.c: Likewise.
3010 * reg-stack.c: Likewise.
3011 * cfgrtl.c: Likewise.
3012 * reload1.c: Likewise.
3013 * final.c: Include rtl-error.
3014 * Makefile.in: Adjust dependencies.
3016 2010-06-30 Jan Hubicka <jh@suse.cz>
3018 PR middle-end/PR44706
3019 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
3020 to return the value.
3022 2010-06-30 Michael Matz <matz@suse.de>
3025 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
3026 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
3027 a gimple reg, attach the original VDEF to the last store in the
3030 2010-06-30 Iain Sandoe <iains@gcc.gnu.org>
3033 * config/darwin.c (darwin_override_options): Use renamed
3034 targetm.asm_out.emit_unwind_label.
3036 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
3038 PR tree-optimization/39799
3039 * tree-inline.c (remap_ssa_name): Initialize variable only if
3040 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3042 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
3044 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
3046 2010-06-30 Richard Guenther <rguenther@suse.de>
3049 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
3050 against oscillation with reverse peephole2.
3052 2010-06-30 H.J. Lu <hongjiu.lu@intel.com>
3055 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
3058 2010-06-30 Nick Clifton <nickc@redhat.com>
3060 * config/rx/rx-modes.def: New file.
3061 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
3062 (CC_REGNUM): Define.
3063 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
3065 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
3066 (SELECT_CC_MODE): Define.
3067 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
3068 (reg:CC CC_REG) instead of (cc0).
3069 (attr "cc"): Delete.
3070 (cbranchsi4): Do not split compare and branch here. Instead move
3072 (cbranchsi4_<code>): ... here. New patterns.
3073 (cmpsi): Call rx-compare_redundant to find out if it is necessary
3074 to emit the compare instruction.
3075 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
3077 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
3078 FIRST_PSEUDO_REGNUM.
3079 (rx_expand_prologue, rx_expand_epilogue): Likewise.
3080 (rx_notice_update_cc): Delete.
3081 (rx_cc_modes_compatible): New function.
3082 (flags_needed_for_conditional): New function.
3083 (flags_from_mode): New function.
3084 (rx_compare_redundant): New function - scans backwards through
3085 insn list to find out if condition flags are already set correctly.
3086 (TARGET_CC_MODES_COMPATIBLE): Define.
3087 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
3089 * config/rx/rx.h (BRANCH_COST): Define.
3090 (REGISTER_MOVE_COST): Define.
3091 * config/rx/predicates (rx_source_operand): Allow all constant types.
3092 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
3093 (tstsi4): New pattern.
3094 * config/rx/rx.c (rx_memory_move_cost): Define.
3095 (TARGET_MEMORY_MOVE_COST): Define.
3097 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
3099 * tree.h (block_may_fallthru): Declare here.
3100 * tree-flow.h (block_may_fallthru): Do not declare here.
3101 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
3103 * Makefile.in (c-typeck.o): Update dependencies.
3105 2010-06-30 Jakub Jelinek <jakub@redhat.com>
3108 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
3109 * cselib.c (cfa_base_preserved_regno): New static variable.
3110 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
3111 of REGNO (cfa_base_preserved_val->locs->loc).
3112 (cselib_preserve_cfa_base_value): Add regno argument, set
3113 cfa_base_preserved_regno to it.
3114 (cselib_invalidate_regno): Allow removal of registers other than
3115 cfa_base_preserved_regno from cfa_base_preserved_val.
3116 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
3117 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
3118 of MEM addresses, if not on LHS.
3119 (reverse_op): Don't add reverse ops for cfa_base_rtx.
3120 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
3122 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
3124 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
3126 (peep2_buf_position): New static function.
3127 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
3128 peephole2_optimize): Use it.
3129 (peep2_attempt, peep2_update_life): New static functions, broken out
3130 of peephole2_optimize.
3131 (peep2_fill_buffer): New static function.
3132 (peephole2_optimize): Change the main loop to try to fill the buffer
3133 with the maximum number of insns before matching them against
3134 peepholes. Use a forward scan. Remove special case for targets with
3135 conditional execution.
3136 * genrecog.c (change_state): Delete dead code.
3137 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
3138 Rewrite so as not to expect the second insn to have had a peephole
3141 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
3143 * genhooks.c (emit_findices): Cast field precision to int.
3144 (emit_documentation): Likewise.
3146 2010-06-29 Jakub Jelinek <jakub@redhat.com>
3148 PR tree-optimization/43801
3149 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
3150 if old_decl was DECL_ONE_ONLY.
3153 * dwarf2out.c (add_accessibility_attribute): New function.
3154 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
3155 instead of adding DW_AT_accessibility manually.
3156 (gen_enumeration_type_die, gen_struct_or_union_type_die,
3157 gen_typedef_die): Use it.
3159 2010-06-29 Douglas B Rupp <rupp@gnat.com>
3161 * vmsdbgout.c (full_name): Just output the file name if not native.
3163 2010-06-29 Douglas B Rupp <rupp@gnat.com>
3165 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
3166 (funcnam_table): New static table.
3167 (funcnum_table): New static table.
3168 (write_rtnbeg): Write value saved in funcnum_table.
3169 (write_rtnend): Write value saved in funcnum_table.
3170 (vmsdbgout_begin_function): Save current function info in
3171 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
3172 (vmsdbgout_finish): Iterate over funcnum_table.
3174 2010-06-29 Douglas B Rupp <rupp@gnat.com>
3176 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
3177 (vmsdbgout_type_decl): Declare
3178 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
3179 (FUNC_EPILOGUE_LABEL): New macro
3180 (vmsdbgout_begin_epilogue): New function.
3181 (vmsdbgout_type_decl): New function.
3183 2010-06-29 Douglas B Rupp <rupp@gnat.com>
3185 * vmsdbg.h: Update copyright.
3187 2010-06-29 Douglas B Rupp <rupp@gnat.com>
3189 * vmsdbg.h (DST_K_TBG): New DST constant.
3190 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
3191 (write_modbeg): Cast module_language to avoid warning.
3192 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
3194 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
3197 * target.def, doc/tm.texi.in, genhooks.c: New files.
3198 * target.h: Instead of defining individual hook members,
3199 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
3201 * target-def.h: Instead of defining individual hook initializers,
3202 include target-hooks-def.h.
3203 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
3204 targetm.live_on_entry -> targetm.extra_live_on_entry
3205 targetm.sched.md_finish ->targetm.sched.finish
3206 targetm.sched.md_init -> targetm.sched.init
3207 targetm.sched.md_init_global -> targetm.sched.init_global
3208 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
3209 targetm.asm_out.except_table_label ->
3210 targetm.asm_out.emit_except_table_label
3211 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
3212 targetm.target_help -> targetm.help
3213 targetm.vectorize.builtin_support_vector_misalignment ->
3214 targetm.vectorize.support_vector_misalignment
3215 targetm.file_start_app_off -> targetm.asm_file_start_app_off
3216 targetm.file_start_file_directive ->
3217 targetm.asm_file_start_file_directive
3218 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
3219 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
3220 * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
3221 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
3222 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
3223 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
3224 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
3225 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
3226 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
3227 * Makefile.in (TARGET_H): Depend on target.def.
3228 (TARGET_DEF_H): Depend on target-hooks-def.h.
3229 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
3230 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
3231 * doc/tm.texi: Regenerate.
3233 * Makefile.in (s-tm-texi): Remove stray tab / rule.
3235 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
3236 (targetm.sched.init): Likewise.
3238 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
3241 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
3242 (function_arg_advance_32): Const-ify TYPE parameter.
3243 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
3244 (ix86_function_arg_advance): Change type of NAMED to bool.
3245 (function_arg_32): Const-ify CUM and TYPE parameters.
3246 (function_arg_64): Likewise. Change type of NAMED to bool.
3247 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
3249 (ix86_function_arg): Change type of NAMED to bool.
3250 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
3251 last argument as a bool.
3253 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
3255 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
3256 (OVERRIDE_OPTIONS): Add note of obsolescence.
3257 Replace references with references to TARGET_OPTION_OVERRIDE.
3258 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
3260 * targhooks.c (default_target_option_override): New function.
3261 * targhooks.h (default_target_option_override): Declare.
3262 * target.h (struct gcc_target): Add override member to
3263 target_option member.
3264 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
3265 targetm.target_option.override call.
3266 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
3267 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
3269 2010-06-29 Jan Hubicka <jh@suse.cz>
3271 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
3273 2010-06-29 Jan Hubicka <jh@suse.cz>
3275 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
3277 (rebuild_frequencies): New function.
3278 * predict.h (rebuild_frequencies): Declare.
3279 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
3280 entry block and edge reaching new_entry.
3281 (tree_function_versioning): When doing partial cloning, rebuild
3282 frequencies when done.
3283 * passes.c (execute_function_todo): Use rebild_frequencies.
3285 2010-06-29 Richard Guenther <rguenther@suse.de>
3287 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
3288 * tree-flow.h (enum noalias_state): Remove.
3289 (struct var_ann_d): Remove noalias_state member.
3291 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
3294 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
3295 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
3296 (maddhidi4): Likewise.
3298 Revert parts of the change for PR25130.
3299 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
3302 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
3304 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
3305 targetm.calls.function_incoming_arg, and
3306 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
3307 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
3308 * target.h (struct gcc_target): Add function_arg_advance,
3309 function_arg, and function_incoming_arg fields.
3310 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
3311 (TARGET_FUNCTION_INCOMING_ARG): Define.
3312 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
3313 and TARGET_FUNCTION_INCOMING_ARG.
3314 * targhooks.h (default_function_arg_advance): Declare.
3315 (default_function_arg, default_function_incoming_arg): Declare.
3316 * targhooks.c (default_function_arg_advance): New function.
3317 (default_function_arg, default_function_incoming_arg): New function.
3318 * config/i386/i386.c (function_arg_advance): Rename to...
3319 (ix86_function_arg_advance): ...this. Make static.
3320 (function_arg): Rename to...
3321 (ix86_function_arg): ...this. Make static.
3322 (TARGET_FUNCTION_ARG_ADVANCE): Define.
3323 (TARGET_FUNCTION_ARG): Define.
3324 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
3325 (FUNCTION_ARG): Delete.
3326 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
3327 (function_arg): Delete prototype.
3329 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
3331 * reginfo.c (init_reg_sets_1): Adjust comments.
3332 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
3333 * calls.c (prepare_call_address): Likewise.
3334 (emit_call_1): Use targetm.calls.return_pops_args.
3335 (expand_call): Likewise.
3336 * function.c (assign_parms): Likewise.
3337 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
3338 * target.h (struct gcc_target) [struct calls]: Add
3339 return_pops_args field.
3340 * targhooks.h (default_return_pops_args): Declare.
3341 * targhooks.c (default_return_pops_args): Define.
3342 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
3343 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
3344 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
3345 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
3347 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
3348 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
3349 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
3350 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
3351 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
3352 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
3353 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
3354 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
3355 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
3356 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
3357 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
3358 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
3359 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
3360 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
3361 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
3362 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
3363 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
3364 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
3365 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
3366 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
3367 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
3368 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
3369 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
3370 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
3371 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
3372 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
3373 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
3374 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
3375 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
3376 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
3377 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
3378 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
3379 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
3380 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.