OSDN Git Service

* config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
2
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
7         "used" attribute.
8         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
9
10 2010-07-14  Richard Guenther  <rguenther@suse.de>
11
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.
17
18 2010-07-14  Richard Henderson  <rth@redhat.com>
19
20         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
21         for functions.
22         * varasm.c (assemble_variable): Remove early exit for functions;
23         assert that we're given a variable.
24
25 2010-07-14  Jie Zhang  <jie@codesourcery.com>
26
27         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
28         cortex_a8_default when neon_type is not none.
29
30 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
31
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.
37
38 2010-07-14  Richard Guenther  <rguenther@suse.de>
39
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.
45
46 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
47
48         * reload.c (find_reloads): Revert code to penalize small register
49         classes that was brought in with the IRA merge.
50
51 2010-07-14  Richard Guenther  <rguenther@suse.de>
52
53         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
54         as base of ARRAY_REFs.
55
56 2010-07-14  Richard Guenther  <rguenther@suse.de>
57
58         PR middle-end/44930
59         * tree-pretty-print.c (do_niy): Do not print a newline.
60
61 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
62
63         * ira-int.h (struct ira_object): New.
64         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P
65         for it.
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
93         objects.
94         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from
95         CONFLICT_ALLOCNO_P.  Args changed to accept ira_object_t.  All
96         uses changed.
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):
110         Likewise.
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):
119         New functions.
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
137         changed.
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.
147
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
162         changed.
163         (ira_copy_live_range_list): Rename from ira_copy_allocno_live_range_list,
164         all callers changed.
165         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
166         all callers changed.
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
170         callers changed.
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.
188
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.
199
200 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
201
202         PR other/44874
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).
221
222 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
223
224         * expmed.h (MAX_BITS_PER_WORD): Move to...
225         * defaults.h (MAX_BITS_PER_WORD): ...here.
226
227 2010-07-13  DJ Delorie  <dj@redhat.com>
228
229         * config/h8300/h8300.c (h8300_init_once): Default to
230         -fstrict_volatile_bitfields.
231
232         * config/sh/sh.c (sh_override_options): Default to
233         -fstrict_volatile_bitfields.
234
235         * config/rx/rx.c (rx_option_override): New.
236
237         * config/m32c/m32c.c (m32c_override_options): Default to
238         -fstrict_volatile_bitfields.
239
240 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
241
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
246         to a VEC.
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.
262
263 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
264
265         PR testsuite/44701
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.
269
270 2010-07-13  Richard Guenther  <rguenther@suse.de>
271
272         PR middle-end/44911
273         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
274         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
275         without name.
276
277 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
278
279         PR target/44761
280         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
281         to variable emited.
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.
286
287 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
288
289         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
290         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
291
292 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
293
294         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
295         explanation.
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.
299
300 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
301
302         PR debug/44901
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.
309
310 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
311
312         * c-decl.c (finish_function): Fix typo in comment.
313         
314 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
315
316         PR bootstrap/44921
317         * postreload.c (move2add_use_add3_insn): Silence gcc warning
318         on min_regno.
319
320 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
321
322         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
323         (simplify_stmt_using_ranges): Use it.
324
325 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
326
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.
340
341 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
342
343         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
344         imply -minterlink-mips16.
345
346 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
347
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.
354
355 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
356
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.
360
361 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
362
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.
375
376 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
377
378         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
379         * gcse.h: New file.
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
389         this_target_gcse.
390         * target-globals.c: Include gcse.h.
391         (default_target_globals): Initialize the gcse field.
392         (save_target_globals): Likewise.
393
394 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
395
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.
401
402 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
403
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):
407         Redefine as macros.
408
409 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
410
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.
424
425 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
426
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
429         from expmed.c.
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.
435
436 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
437
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.
445
446 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
447
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):
485         Delete.
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.
495
496 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
497
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
511         this_target_cfgloop.
512         * target-globals.c: Include cfgloop.h.
513         (default_target_globals): Initialize the cfgloop field.
514         (save_target_globals): Likewise.
515
516 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
517
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.
522
523 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
524
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
541         recreating it.
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.
549
550 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
551
552         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
553         in all dependency lists.
554
555 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
556
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
562         as macros.
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
569         this_target_optabs.
570         * target-globals.c: Include expr.h and optabs.h.
571         (default_target_globals): Initialize the optabs field.
572         (save_target_globals): Likewise.
573
574 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
575
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.
579
580 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
581
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
587         x_regno_save_mode.
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.
592
593 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
594
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
605         this_target_expmed.
606         * target-globals.c: Include expmed.h.
607         (default_target_globals): Initialize the expmed field.
608         (save_target_globals): Likewise.
609
610 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
611
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
624         this_target_reload.
625         * target-globals.c: Include hard-reg-set.h.
626         (default_target_globals): Initialize the reload field.
627         (save_target_globals): Likewise.
628
629 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
630
631         * rtl.h (target_rtl): Add x_static_reg_base_value.
632         * alias.c (static_reg_base_value): Redefine as a macro.
633
634 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
635
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.
642
643 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
644
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.
653
654 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
655
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.
684
685 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
686
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):
692         Redefine as macros.
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.
706
707 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
708
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.
723
724 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
725
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
735         list of includes.
736         * target-globals.h: New file.
737         * target-globals.c: Likewise.
738
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.
760
761 2010-07-12  Jie Zhang  <jie@codesourcery.com>
762
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.
768
769 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
770
771         PR rtl-optimization/44752
772         * genautomata.c (main): Don't emit an empty file even if there
773         is no automaton.
774
775 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
776
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.
782         Move ...
783         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
784
785 2010-07-12  Jie Zhang  <jie@codesourcery.com>
786
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.
789
790 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
791
792         PR pch/14940
793         * config/host-solaris.c (mmap_fixed): New function.
794         (sol_gt_pch_get_address): Use it.
795         (sol_gt_pch_use_address): Likewise.
796
797 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
798
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.
804
805 2010-07-12  Andi Kleen  <ak@linux.intel.com>
806
807         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
808         instead of gcc_assert to print better error message for multiple
809         prevailing defs.
810
811 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
812
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 ';'.
817
818 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
819
820         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
821         in directive -export.
822
823 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
824
825         * reginfo.h (reg_classes_intersect_p): Change arguments type to
826         reg_class_t.
827         * rtl.h (reg_classes_intersect_p): Adjust prototype.
828
829         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
830         Remove macros.
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.
839
840 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
841
842         PR middle-end/42505
843         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
844         lookup code into....
845         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
846         new functions.
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
861         call_p flag through.
862         (best_gain_for_invariant): Likewise.
863         (find_invariants_to_move): Likewise.
864         (move_single_loop_invariants): Likewise, using already-computed
865         has_call field.
866
867 2010-07-10  Richard Guenther  <rguenther@suse.de>
868             Joern Rennecke  <joern.rennecke@embecosm.com>
869
870         PR debug/44832
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.
874
875 2010-07-10  Richard Guenther  <rguenther@suse.de>
876
877         PR lto/44889
878         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
879         helper function.
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.
884
885 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
886
887         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
888
889 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
890
891         PR objc/44140
892         * config/darwin.c (output_objc_section_asm_op): Save and restore
893         section when outputting ObjC section list.
894
895 2010-07-09  Jan Hubicka  <jh@suse.cz>
896
897         * lto-streamer-out.c (produce_symtab): Do not write alias
898         cgraph/varpool nodes.
899
900 2010-07-09  Jan Hubicka  <jh@suse.cz>
901
902         * tree-inline.c (declare_return_variable): Fix ICE while
903         inlining DECL_BY_VALUE function not in SSA form
904
905 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
906
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.
926
927 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
928
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.
936
937         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
938
939         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
940
941         * config/arm/arm.md (cbranchqi4): Fix array size.
942         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
943         calculating length.
944
945 2010-07-09  Richard Guenther  <rguenther@suse.de>
946
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
951         applying them here.
952         (gimple_register_type): Apply queued fixups for the
953         canonical type.  Empty the type fixup queue.
954
955 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
956
957         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
958         * configure: Regenerate.
959         * config.in: Ditto.
960
961 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
962             Denys Vlasenko  <dvlasenk@redhat.com>
963             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
964
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.
969
970 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
971
972         * tree-if-conv.c (fold_or_predicates): New.
973         (add_to_predicate_list): Call it.
974
975 2010-07-09  Richard Guenther  <rguenther@suse.de>
976
977         PR middle-end/44890
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.
981
982 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
983
984         PR target/44877
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.
988
989 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
990
991         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
992         for "lock addl".
993         * configure: Regenerate.
994         * config/i386/i386.c (ix86_print_operand) <case ';'>:
995         Remove TARGET_MACHO.
996
997 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
998
999         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
1000         default ISA flags.
1001         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
1002
1003 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
1004
1005         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
1006
1007 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
1008
1009         * config/picochip/picochip.md (commsTestPort): Emit more
1010         efficient sequence for tstport instruction.
1011
1012 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
1013
1014         * config/i386/i386.c (ix86_veclib_handler): Make static.
1015
1016 2010-07-09  Richard Guenther  <rguenther@suse.de>
1017
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
1021         in MEM_REF.
1022         (indirect_refs_may_alias_p): Likewise.
1023         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
1024
1025 2010-07-09  Richard Guenther  <rguenther@suse.de>
1026
1027         PR tree-optimization/44882
1028         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
1029         sets do conflict.
1030         (vectorizable_load): Likewise.
1031
1032 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
1033
1034         PR target/40657
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.
1040
1041 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
1042
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.
1046
1047 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1048
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.
1058
1059 2010-07-08  Andi Kleen  <ak@linux.intel.com>
1060
1061         * lto-section-in.c (lto_section_name): Add missing comma.
1062
1063 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
1064
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.
1070
1071 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
1072
1073         PR middle-end/44843
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.
1076
1077 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
1078
1079         * final.c (final_scan_insn): Replace
1080         TARGET_UNWIND_INFO macro check by unwind_emit
1081         hook NULL check.
1082         * targhooks.c (default_unwind_emit): Removed.
1083         * targhooks.h (default_unwind_emit): Likewise.
1084         * target.def (unwind_emit): Set default value to NULL.
1085
1086         * config/i386/i386-protos.h (ix86_asm_output_function_label):
1087         New prototype.
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.
1108
1109 2010-07-08  Jan Hubicka  <jh@suse.cz>
1110
1111         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
1112         New function.
1113         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
1114         Declare.
1115         * ipa-cp.c (ipcp_estimate_growth): Use it.
1116         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
1117         Likewise.
1118
1119 2010-07-08  Jan Hubicka  <jh@suse.cz>
1120
1121         * tree-inline.c (declare_return_variable): Allocate annotation for new
1122         temporary.
1123
1124 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
1125
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.
1130
1131 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
1132
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.
1137
1138 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
1139
1140         * config/i386/i386.c: Use short syntax for function calls
1141         through function pointers.
1142         * config/i386/i386.md: Ditto.
1143
1144 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
1145
1146         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
1147
1148 2010-07-08  Richard Guenther  <rguenther@suse.de>
1149
1150         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
1151         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
1152
1153 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
1154
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.
1161
1162 2010-07-08  Jan Hubicka  <jh@suse.cz>
1163
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.
1171
1172 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
1173
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
1199         TARGET_STACK_PROBE.
1200         (allocate_stack_worker_64): Likewise.
1201         (allocate_stack): Likewise.
1202         (adjust_stack_and_probe): New insn.
1203         (probe_stack_range): Likewise.
1204
1205 2010-07-08  Richard Guenther  <rguenther@suse.de>
1206
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.
1213
1214 2010-07-08  Richard Guenther  <rguenther@suse.de>
1215
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.
1221
1222 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
1223
1224         * config/sol2-c.c: Do not include diagnostic-core.h.
1225
1226 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1227
1228         PR bootstrap/44768
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.
1234
1235 2010-07-08  Richard Guenther  <rguenther@suse.de>
1236
1237         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
1238         New function.
1239         (valueize_refs): Call it.
1240
1241 2010-07-08  Richard Guenther  <rguenther@suse.de>
1242
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.
1246
1247 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
1248
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.
1254
1255 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1256
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
1263         toplev.h.
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.
1270         * cfg.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.
1337         * cse.c: Likewise.
1338         * cselib.c: Likewise.
1339         * dbgcnt.c: Likewise.
1340         * dbxout.c: Likewise.
1341         * ddg.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.
1349         * gcse.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.
1365         * ira.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.
1371         * main.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.
1380         * real.c: Likewise.
1381         * regcprop.c: Likewise.
1382         * reginfo.c: Likewise.
1383         * regmove.c: Likewise.
1384         * reorg.c: Likewise.
1385         * resource.c: Likewise.
1386         * rtl.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.
1395         * stmt.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.
1426         * vec.c: Likewise.
1427         * web.c: Likewise.
1428         * xcoffout.c: Likewise.
1429
1430 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
1431
1432         * gengtype.c (write_field_root): New function.
1433         (write_root): Use it.
1434
1435 2010-07-07  Wei Guozhi  <carrot@google.com>
1436
1437         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
1438         of lowest bits to lshift/compare): Add a missing line.
1439
1440 2010-07-07  Wei Guozhi  <carrot@google.com>
1441
1442         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
1443         of lowest bits to lshift/compare): New.
1444
1445 2010-07-07  Tom Tromey  <tromey@redhat.com>
1446
1447         * doc/tm.texi: Update.
1448         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
1449         Add @hook.
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.
1456
1457 2010-07-07  Jie Zhang  <jie@codesourcery.com>
1458
1459         * genautomata.c (output_automata_list_min_issue_delay_code):
1460         Correctly decompress min_issue_delay.
1461
1462 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
1463
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.
1467
1468 2010-07-07  Duncan Sands  <baldrick@free.fr>
1469
1470         PR middle-end/41355
1471         * tree.c (build_function_type_skip_args): Copy the original type using
1472         build_distinct_type_copy rather than copy_node.
1473
1474 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
1475
1476         PR target/44850
1477         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
1478         revision 161876.
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.
1487
1488 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
1489
1490         PR target/44844
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.
1494
1495 2010-07-07  Richard Guenther  <rguenther@suse.de>
1496
1497         PR middle-end/44790
1498         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
1499         for expanding the constant offset for MEM_REFs.
1500
1501 2010-07-07  Richard Guenther  <rguenther@suse.de>
1502
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.
1511
1512 2010-07-06  Jan Hubicka  <jh@suse.cz>
1513
1514         * lto-cgraph.c (output_cgraph): Add missing declaration.
1515
1516 2010-07-06  Jan Hubicka  <jh@suse.cz>
1517
1518         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
1519         partition.
1520
1521 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
1522
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.
1528
1529 2010-07-07  Jan Hubicka  <jh@suse.cz>
1530
1531         With parts by Richard Guenther.
1532
1533         PR middle-end/44813
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
1539         beggining.
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.
1550
1551 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
1552
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.
1556
1557 2010-07-06  Jan Hubicka  <jh@suse.cz>
1558
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.
1566
1567 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
1568
1569         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
1570         support.
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
1580         attribute.
1581
1582 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
1583
1584         * config/i386/i386.md (immediate_operand): New mode attribute.
1585
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.
1591
1592         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
1593
1594 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
1595
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
1604         function pointer.
1605         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
1606         function pointer.
1607
1608 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
1609
1610         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
1611         operand constraint instead of <r><i>m.
1612
1613 2010-07-06  Richard Guenther  <rguenther@suse.de>
1614
1615         PR middle-end/44828
1616         * convert.c (convert_to_integer): Watch out for overflowing
1617         MULT_EXPR as well.
1618
1619 2010-07-05  Jan Hubicka  <jh@suse.cz>
1620
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.
1630
1631 2010-07-05  Jan Hubicka  <jh@suse.cz>
1632
1633         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
1634         function is still available to fold into.
1635
1636 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
1637
1638         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
1639         * function.h (struct_function): Change type of local_decls field
1640         to a VEC.
1641         (add_local_decl): New function.
1642         (FOR_EACH_LOCAL_DECL): New macro.
1643         * cfgexpand.c (init_vars_expansion): Adjust for new type of
1644         cfun->local_decls.
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.
1670
1671 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1672
1673         AVX Programming Reference (June, 2010)
1674         * config/i386/cpuid.h (bit_F16C): New.
1675         (bit_RDRND): Likewise.
1676         (bit_FSGSBASE): Likewise.
1677
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)".
1682
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.
1686
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.
1713
1714         * config/i386/i386.h (TARGET_FSGSBASE): New.
1715         (TARGET_RDRND): Likewise.
1716         (TARGET_F12C): Likewise.
1717
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.
1730
1731         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
1732
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.
1750
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.
1758
1759         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
1760
1761         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
1762
1763 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
1764
1765         PR bootstrap/44512
1766         * genenums.c (main): Output include of insn-constants.h
1767         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
1768
1769 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
1770
1771         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
1772         (override_options): Initialize it.
1773         (ix86_expand_prologue): Use it.
1774
1775 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
1776
1777         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
1778
1779 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
1780
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
1791         of fit_double_type.
1792
1793 2010-07-05  Jan Hubicka  <jh@suse.cz>
1794
1795         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
1796         in_other_partition.
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.
1801
1802 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
1803
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
1810         memory_move_cost.
1811
1812 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
1813
1814         PR middle-end/42505
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.
1823
1824 2010-07-05  Richard Guenther  <rguenther@suse.de>
1825
1826         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
1827
1828 2010-07-05  Richard Guenther  <rguenther@suse.de>
1829
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
1838         create_mem_ref_raw.
1839         (maybe_fold_tmr): Likewise.
1840         * tree-flow.h (create_mem_ref): Adjust prototype.
1841
1842 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
1843
1844         PR c++/44808
1845         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
1846         *from_p is VAR_DECL.
1847
1848 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
1849
1850         * tree.h (build_call_list): Remove.
1851         * tree.c (build_call_list): Remove.
1852
1853 2010-07-05  Richard Guenther  <rguenther@suse.de>
1854
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.
1864
1865 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
1866
1867         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
1868         implementations.
1869
1870 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
1871
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
1880         using LTUGEU.
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.
1890
1891 2010-07-05  Richard Guenther  <rguenther@suse.de>
1892
1893         * tree-ssa-loop-im.c (for_each_index): Do not handle
1894         ALIGN_INDIRECT_REF.
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.
1925
1926 2010-07-05  Richard Guenther  <rguenther@suse.de>
1927
1928         PR tree-optimization/44784
1929         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
1930         for inserted stmts.
1931         (find_or_generate_expression): Fix SCCVN insertion check.
1932
1933 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
1934
1935         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
1936         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
1937         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
1938         directives.
1939
1940 2010-07-05  Ira Rosen  <irar@il.ibm.com>
1941
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
1945         in INSIDE_COST.
1946
1947 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
1948
1949         PR bootstrap/44820
1950         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
1951
1952 2010-07-05  Richard Guenther  <rguenther@suse.de>
1953
1954         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
1955         RESULT_DECLs properly.
1956
1957 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
1958
1959         PR rtl-optimization/44695
1960         * config/i386/i386.md (extract_code): Removed.
1961         (<u>divmodqi4): Likewise.
1962         (divmodqi4): New.
1963         (udivmodqi4): Likewise.
1964         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
1965         (udivmodhiqi3): Likewise.
1966
1967 2010-07-04  Jan Hubicka  <jh@suse.cz>
1968
1969         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
1970
1971 2010-07-04  Jan Hubicka  <jh@suse.cz>
1972
1973         * cgraphunit.c (init_cgraph): Only initialize dump file if it
1974         is not already initialized.
1975
1976 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
1977
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):
1988         Delete.
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
2005         vcond_gen_code.
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
2029         macro optabs.
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.
2043
2044 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
2045
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 -
2049         CODE_FOR_nothing".
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.
2053
2054 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
2055
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.
2069
2070 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
2071
2072         PR target/44531
2073         * config.gcc (sh*-*-*): Use regular expressions instead of
2074         the 'i' modifier for sed substitutions.
2075
2076 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
2077
2078         * gimple.c (gimple_body): Comments added.
2079
2080 2010-07-04  Richard Guenther  <rguenther@suse.de>
2081
2082         PR middle-end/44809
2083         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
2084         of an INDIRECT_REF.
2085
2086 2010-07-04  Richard Guenther  <rguenther@suse.de>
2087
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
2091         information.
2092         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
2093         Copy points-to information for all pointers.  Properly handle
2094         MEM_REFs.
2095         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
2096         copy statements.
2097         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
2098         dependency.
2099
2100 2010-07-04  Richard Guenther  <rguenther@suse.de>
2101
2102         PR middle-end/44785
2103         * tree-inline.c (initialize_inlined_parameters): Do not
2104         re-use pointer-map slot over remap_type call.
2105
2106 2010-07-04  Richard Guenther  <rguenther@suse.de>
2107
2108         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
2109
2110 2010-07-04  Richard Guenther  <rguenther@suse.de>
2111
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.
2115
2116 2010-07-04  Ira Rosen  <irar@il.ibm.com>
2117             Revital Eres  <eres@il.ibm.com>
2118
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
2140         field.
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.
2185
2186 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2187
2188         PR target/44597
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.
2195
2196 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2197
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.
2202
2203 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2204
2205         PR target/44705
2206         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
2207
2208 2010-07-03  Jan Hubicka  <jh@suse.cz>
2209
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):
2214         Likewise.
2215
2216         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
2217         Update timevars.V
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.
2222
2223 2010-07-03  Jan Hubicka  <jh@suse.cz>
2224
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.
2231
2232 2010-07-03  Jie Zhang  <jie@codesourcery.com>
2233
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.
2239
2240 2010-07-03  Jie Zhang  <jie@codesourcery.com>
2241
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.
2247
2248 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
2249
2250         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
2251
2252 2010-07-03  Jan Hubicka  <jh@suse.cz>
2253
2254         * config/i386/i386.c (override_options): Revert accidental commit.
2255
2256 2010-07-02  Le-Chun Wu  <lcwu@google.com>
2257
2258         PR c++/44128
2259         * doc/invoke.texi: Update documentation of -Wshadow.
2260
2261 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
2262             Julian Brown  <julian@codesourcery.com>
2263             Sandra Loosemore <sandra@codesourcery.com>
2264
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
2277         prototype.
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.
2286
2287 2010-07-02  Julian Brown  <julian@codesourcery.com>
2288             Sandra Loosemore <sandra@codesourcery.com>
2289
2290         PR target/43703
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)
2295         (*mul<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.
2303
2304 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
2305             Julian Brown  <julian@codesourcery.com>
2306
2307         * config/arm/neon.md (UNSPEC_VABA): Delete.
2308         (UNSPEC_VABAL): Delete.
2309         (UNSPEC_VABS): Delete.
2310         (UNSPEC_VMUL_N): Delete.
2311         (adddi3_neon): New.
2312         (subdi3_neon): New.
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
2316         unspec parts...
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.
2330
2331 2010-07-02  Jan Hubicka  <jh@suse.cz>
2332
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.
2337
2338 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
2339
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
2348         core registers too.
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.
2365         (xordi3): Likewise.
2366         * config/arm/neon.ml (Vand): Split DImode variants and mark them
2367         as No_op to disable testing for exact instruction match.
2368         (Vorr): Likewise.
2369         (Veor): Likewise.
2370         (Vbic): Likewise.
2371         (Vorn): Likewise.
2372         * config/arm/arm_neon.h: Regenerated.
2373         * doc/arm-neon-intrinsics.texi: Regenerated.
2374
2375 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2376
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.
2391
2392 2010-07-02  Richard Guenther  <rguenther@suse.de>
2393
2394         PR target/43958
2395         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
2396         for argument alignment.
2397
2398 2010-07-02  Jan Hubicka  <jh@suse.cz>
2399
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.
2405         (find_retval): New.
2406         (split_function): Fix name of cloned function; take care of updating
2407         return value in return_bb containing move.
2408
2409 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
2410
2411         PR target/44771
2412         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
2413         used variable insn.
2414
2415 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2416
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.
2423
2424 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
2425
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.
2432
2433 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
2434
2435         PR middle-end/44576
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
2439         same cache line).
2440
2441 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
2442
2443         PR target/42835
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.
2450
2451         PR target/42172
2452         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
2453         and ZERO_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.
2478
2479 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
2480
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.
2524
2525         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
2526         test for this emitting vmov.
2527         (Vset_lane): Likewise.
2528         (Vdup_n): Likewise.
2529         (Vmov_n): Likewise.
2530
2531         * doc/arm-neon-intrinsics.texi: Regenerated.
2532
2533 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
2534
2535         * config/arm/neon.md (vec_extractv2di): Correct error in register
2536         numbering to reconcile with neon_vget_lanev2di.
2537
2538 2010-07-02  Richard Guenther  <rguenther@suse.de>
2539
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.
2544
2545 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
2546
2547         * config/s390/s390.c (override_options): Adopt prefetching
2548         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
2549
2550 2010-07-02  Jan Hubicka  <jh@suse.cz>
2551
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.
2557
2558 2010-07-02  Richard Guenther  <rguenther@suse.de>
2559
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.
2563
2564 2010-07-02  Richard Guenther  <rguenther@suse.de>
2565
2566         * tree-data-ref.c (initialize_data_dependence_relation): Handle
2567         mismatching number of dimensions properly.
2568
2569 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2570
2571         PR target/44707
2572         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
2573         (lo_sum (high ...) ...) patterns generated by earlier passes.
2574
2575 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2576
2577         * doc/install.texi (Prerequisites): Document Perl requirement on
2578         Solaris 2.
2579         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
2580
2581 2010-07-02  Richard Guenther  <rguenther@suse.de>
2582
2583         PR middle-end/44777
2584         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
2585
2586 2010-07-02  Jan Hubicka  <jh@suse.cz>
2587
2588         PR middle-end/44706
2589         * predict.c (predict_paths_for_bb): Handle case when control dependence
2590         BB has only abnormal edges.
2591
2592 2010-07-02  Richard Guenther  <rguenther@suse.de>
2593
2594         PR tree-optimization/44748
2595         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
2596         the embedded conversion in MEM_REFs.
2597
2598 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
2599
2600         * reload.c: Include toplev.h.
2601         * recog.c:  Likewise.
2602         * Makefile.in: Adjust dependencies.
2603
2604 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
2605
2606         PR debug/44694
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.
2609
2610 2010-07-01  Richard Guenther  <rguenther@suse.de>
2611
2612         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
2613         types for offsets.
2614
2615 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
2616
2617         PR target/44732
2618         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
2619         Fix argument types.
2620
2621 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
2622
2623         PR target/44727
2624         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
2625         Make sure operand 0 dies.
2626
2627 2010-07-01  Richard Guenther  <rguenther@suse.de>
2628
2629         PR middle-end/42834
2630         PR middle-end/44468
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
2652         offset and TBAA.
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
2657         chasing code.
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
2687         MEM_REF.
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
2696         mismatches here.
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
2708         to SSA form.
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
2726         INDIRECT_REFs.
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.
2733         Handle MEM_REF.
2734         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
2735         New.
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.
2749         Handle MEM_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
2763         memmove to memcpy.
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
2783         for ARRAY_REFs.
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
2799         MEM_REF handling.
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
2804         and constants.
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
2838         MEM_REF handling.
2839         (disqualify_base_of_expr): Likewise.
2840         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
2841         MEM_REF handling.
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
2878         for &MEM_REF.
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.
2894
2895 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
2896
2897         PR other/44566
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):
2929         Likewise.
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.
2935
2936 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
2937
2938         PR bootstrrap/44726
2939         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
2940         use.
2941         (build_alias_set_optimal_p): Likewise.
2942         (build_base_obj_set_for_drs): Likewise.
2943
2944 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
2945
2946         * target.def: Remove comment about licensing problems of function
2947         declarations.
2948
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.
2952
2953         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
2954         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
2955
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.
2960
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.
2964
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.
2969
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.
2974
2975         * target.def (pass_by_reference): Use DEFHOOK.
2976         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
2977         * doc/tm.texi: Regenerate.
2978
2979         * target.def (resolve_overloaded_builtin): Rename params to arglist.
2980         Use DEFHOOK.
2981         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
2982         * doc/tm.texi: Regenerate.
2983
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.
2988
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.
2993
2994         * target.def (print_operand, print_operand_address): Update comment.
2995         (print_operand_punct_valid_p): Likewise.
2996
2997 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2998
2999         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
3000         to rtl.h.
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.
3003         * rtl-error.h: New.
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.
3015
3016 2010-06-30  Jan Hubicka  <jh@suse.cz>
3017
3018         PR middle-end/PR44706
3019         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
3020         to return the value.
3021
3022 2010-06-30  Michael Matz  <matz@suse.de>
3023
3024         PR bootstrap/44699
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
3028         sequence.
3029
3030 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
3031
3032         PR other/44034
3033         * config/darwin.c (darwin_override_options): Use renamed
3034         targetm.asm_out.emit_unwind_label.
3035
3036 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
3037
3038         PR tree-optimization/39799
3039         * tree-inline.c (remap_ssa_name): Initialize variable only if
3040         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3041
3042 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
3043
3044         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
3045
3046 2010-06-30  Richard Guenther  <rguenther@suse.de>
3047
3048         PR target/44722
3049         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
3050         against oscillation with reverse peephole2.
3051
3052 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3053
3054         PR target/44721
3055         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
3056         Fix last commit.
3057
3058 2010-06-30  Nick Clifton  <nickc@redhat.com>
3059
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
3064         register.
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
3071         it to...
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
3076         cc_status flags.
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.
3088
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.
3096
3097 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3098
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
3102         bitmap.h
3103         * Makefile.in (c-typeck.o): Update dependencies.
3104
3105 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
3106
3107         PR debug/44694
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.
3121
3122 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
3123
3124         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
3125         static variables.
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
3139         applied yet.
3140
3141 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
3142
3143         * genhooks.c (emit_findices): Cast field precision to int.
3144         (emit_documentation): Likewise.
3145
3146 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
3147
3148         PR tree-optimization/43801
3149         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
3150         if old_decl was DECL_ONE_ONLY.
3151
3152         PR debug/44668
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.
3158
3159 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
3160
3161         * vmsdbgout.c (full_name): Just output the file name if not native.
3162
3163 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
3164
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.
3173
3174 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
3175
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.
3182
3183 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
3184
3185         * vmsdbg.h: Update copyright.
3186
3187 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
3188
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.
3193
3194 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
3195
3196         PR other/44034
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
3200         include target.def.
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.
3232
3233         * Makefile.in (s-tm-texi): Remove stray tab / rule.
3234
3235         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
3236         (targetm.sched.init): Likewise.
3237
3238 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
3239
3240         PR bootstrap/44713
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
3248         to bool.
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.
3252
3253 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
3254
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
3259          the macro).
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.
3268
3269 2010-06-29  Jan Hubicka  <jh@suse.cz>
3270
3271         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
3272
3273 2010-06-29  Jan Hubicka  <jh@suse.cz>
3274
3275         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
3276         unreachable.
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.
3284
3285 2010-06-29  Richard Guenther  <rguenther@suse.de>
3286
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.
3290
3291 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
3292
3293         PR target/43902
3294         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
3295         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
3296         (maddhidi4): Likewise.
3297
3298         Revert parts of the change for PR25130.
3299         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
3300         MEM_ALIAS_SET.
3301
3302 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
3303
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.
3328
3329 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
3330
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
3346         documentation.
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.