OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3
4         PR target/43590
5         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
6         operand 1 and reshuffle the operands to match.
7         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
8
9 2011-03-30  Christian Schüler  <cschueler@gmx.de>
10
11         PR driver/48208
12         * config/c.opt (F): Added 'Driver' to -F option.
13         PR driver/48260
14         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
15           handler function.
16         * config/darwin.opt: Added '-arch' option.
17
18 2011-03-30  Nick Clifton  <nickc@redhat.com>
19
20         * config/rx/rx.md: Add peepholes and patterns to combine
21         extending loads and simple arithmetic instructions.
22         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
23         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
24         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
25         modes to use pre-decrement and post-increment addressing.
26         (rx_is_restricted_memory_address): Add range checking of REG+INT
27         addresses.
28         (rx_print_operand): Add support for %Q.
29         Fix handling of %Q.
30         (rx_memory_move_cost): Adjust cost of stores.
31         (rx_adjust_insn_length): New function.
32
33 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
34
35         PR c/48305
36         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
37         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
38         matching arg00/arg01 types.
39
40 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
41
42         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
43         last_location to UNKNOWN_LOCATION.
44
45 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
46
47         PR target/48349
48         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
49         FLOAT_SSE_REGS.
50
51 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
52             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
53
54         PR bootstrap/48337
55         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
56         Init(PROCESSOR_V7).
57         (sparc_cpu): Likewise.
58         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
59         PROCESSOR_V7.
60
61 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
62
63         PR target/48336
64         PR middle-end/48342
65         PR rtl-optimization/48345
66         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
67         hard regs for given mode from profitable regs when doing secondary
68         allocation.
69
70 2011-03-29  Jeff Law  <law@redhat.com>
71
72         PR bootstrap/48327
73         * tree-ssa-threadupdate.c (struct redirection_data): Remove
74         do_not_duplicate field.
75         (lookup_redirection_data): Corresponding changes.
76         (create_duplicates): Always create a template block.
77         (redirect_edges): Remove code which reused the original block
78         when it was going to become unreachable code.
79         (thread_block): Don't set do_not_duplicate field.
80
81 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
82
83         * lto-opts.c (register_user_option_p, lto_register_user_option):
84         Make type argument unsigned.
85         * lto-streamer.h (lto_register_user_option): Make type argument
86         unsigned.
87         * opth-gen.awk: Make CL_* macros unsigned.
88         * opts-common.c (find_opt): Make lang_mask argument unsigned.
89         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
90         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
91         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
92         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
93         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
94         (find_opt): Make lang_mask argument unsigned.
95
96 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
97
98         PR rtl-optimization/48331
99         PR rtl-optimization/48334
100         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
101         for any used algorithm.
102
103 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
104
105         * ira-conflicts.c (build_object_conflicts): Add unused attribute
106         to parent_max.
107
108 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
109
110         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
111         (alpha_option_override): Don't set alpha_sr_alias_set.
112         (emit_frame_store_1): Use gen_frame_mem rather than calling
113         set_mem_alias_set.
114         (alpha_expand_epilogue): Ditto.
115
116 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
117
118         PR tree-optimization/48290
119         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
120         vectorization, check that relevant phis in the basic block after
121         the inner loop are really inner loop's exit phis.
122
123 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
124
125         PR debug/48190
126         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
127         (cached_dw_loc_list_def): New structure.
128         (cached_dw_loc_list): New typedef.
129         (cached_dw_loc_list_table): New variable.
130         (cached_dw_loc_list_table_hash): New function.
131         (cached_dw_loc_list_table_eq): Likewise.
132         (add_location_or_const_value_attribute): Take a bool cache_p.
133         Cache the list when the parameter is true.
134         (gen_formal_parameter_die): Update caller.
135         (gen_variable_die): Likewise.
136         (dwarf2out_finish): Likewise.
137         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
138         while generating debug info for the decl.
139         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
140         (dwarf2out_init): Initialize cached_dw_loc_list_table.
141         (resolve_addr): Cache the result of resolving a chain of
142         location lists.
143
144 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
145
146         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
147         conflict object hard regset nodes have intersecting hard reg sets.
148
149         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
150         after regstat_init_n_sets_and_refs.
151
152         * ira.c: Add more comments at the top.
153         (setup_stack_reg_pressure_class, setup_pressure_classes):
154         Add comments how we compute the register pressure classes.
155         (setup_allocno_and_important_classes): Add more comments.
156         (setup_class_translate_array, reorder_important_classes)
157         (setup_reg_class_relations): Add comments.
158
159         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
160         start of the file.
161
162         * ira-color.c: Add 2011 to the Copyright line.
163         (assign_hard_reg):  Add more comments.
164         (improve_allocation): Ditto.
165
166         * ira-costs.c: Add 2011 to the Copyright line.
167         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
168         comments.
169         (setup_regno_cost_classes_by_mode): Ditto.
170
171         Initial patches from ira-improv branch:
172
173         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
174
175         * ira-build.c: (ira_create_object): Remove initialization of
176         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
177         (ira_create_allocno): Remove initialization of
178         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
179         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
180         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
181         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
182         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
183         Initialize ALLOCNO_ADD_DATA.
184         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
185         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
186         ALLOCNO_REG.
187         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
188         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
189
190         * ira.c (ira_reallocate): Remove.
191         (setup_pressure_classes): Call
192         ira_init_register_move_cost_if_necessary.  Use
193         ira_register_move_cost instead of ira_get_register_move_cost.
194         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
195         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
196
197         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
198         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
199         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
200         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
201         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
202         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
203         Fix formatting.
204         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
205         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
206         (struct allocno_color_data): New.
207         (allocno_color_data_t): New typedef.
208         (allocno_color_data): New definition.
209         (ALLOCNO_COLOR_DATA): New macro.
210         (struct object_color_data): New.
211         (object_color_data_t): New typedef.
212         (object_color_data): New definition.
213         (OBJECT_COLOR_DATA): New macro.
214         (update_copy_costs, calculate_allocno_spill_cost): Call
215         ira_init_register_move_cost_if_necessary.  Use
216         ira_register_move_cost instead of ira_get_register_move_cost.
217         (move_spill_restore, update_curr_costs): Ditto.
218         (allocno_spill_priority): Make it inline.
219         (color_pass): Allocate and free allocno_color_dat and object_color_data.
220         (struct coalesce_data, coalesce_data_t): New.
221         (allocno_coalesce_data): New definition.
222         (ALLOCNO_COALESCE_DATA): New macro.
223         (merge_allocnos, coalesced_allocno_conflict_p): Use
224         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
225         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
226         (coalesce_allocnos): Ditto.
227         (setup_coalesced_allocno_costs_and_nums): Ditto.
228         (collect_spilled_coalesced_allocnos): Ditto.
229         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
230         (setup_slot_coalesced_allocno_live_ranges): Ditto.
231         (coalesce_spill_slots): Ditto.
232         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
233         free allocno_coalesce_data.
234
235         * ira-conflicts.c: Fix formatting.
236         (process_regs_for_copy): Call
237         ira_init_register_move_cost_if_necessary.  Use
238         ira_register_move_cost instead of ira_get_register_move_cost.
239         (build_object_conflicts): Optimize.
240
241         * ira-costs.c (record_reg_classes): Optimize.  Call
242         ira_init_register_move_cost_if_necessary.  Use
243         ira_register_move_cost, ira_may_move_in_cost, and
244         ira_may_move_out_cost instead of ira_get_register_move_cost and
245         ira_get_may_move_cost.
246         (record_address_regs): Ditto.
247         (scan_one_insn): Optimize.
248         (find_costs_and_classes): Optimize.
249         (process_bb_node_for_hard_reg_moves): Call
250         ira_init_register_move_cost_if_necessary.  Use
251         ira_register_move_cost instead of ira_get_register_move_cost.
252
253         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
254         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
255         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
256         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
257         definitions.
258         (ira_initiate_emit_data, ira_finish_emit_data)
259         (create_new_allocno): New functions.
260         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
261         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
262         Use ira_register_move_cost instead of ira_get_register_move_cost.
263
264         * ira-int.h: Fix some comments.
265         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
266         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
267         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
268         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
269         add_data.
270         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
271         bitfield after mode.  Make hard_regno a short int.  Make
272         hard_regno short.  Remove first_coalesced_allocno and
273         next_coalesced_allocno.  Move mem_optimized_dest_p,
274         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
275         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
276         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
277         temp, colorable_p.  Add new member add_data.
278         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
279         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
280         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
281         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
282         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
283         (ALLOCNO_ADD_DATA): New macro.
284         (ira_emit_data_t): New typedef.
285         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
286         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
287         from struct ira_allocno.
288         (ALLOCNO_EMIT_DATA): New macro.
289         (ira_allocno_emit_data, allocno_emit_reg): New.
290         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
291         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
292         (OBJECT_ADD_DATA): New macro.
293         (ira_reallocate): Remove.
294         (ira_initiate_emit_data, ira_finish_emit_data): New.
295         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
296         (ira_init_register_move_cost_if_necessary): New.
297         (ira_object_conflict_iter_next): Merge into
298         ira_object_conflict_iter_cond.
299         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
300
301         * ira-live.c: (process_single_reg_class_operands): Call
302         ira_init_register_move_cost_if_necessary.  Use
303         ira_register_move_cost instead of ira_get_register_move_cost.
304
305         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
306
307         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
308
309         * ira-costs.c: Fix formatting.
310         (cost_classes, cost_classes_num): Remove.
311         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
312         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
313         (cost_classes_del, cost_classes_htab): New.
314         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
315         (initiate_regno_cost_classes, setup_cost_classes): New.
316         (setup_regno_cost_classes_by_aclass): New.
317         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
318         (record_reg_classes): Use regno_cost_classes instead of
319         cost_classes.  Move checking opposite operand up.
320         (record_address_regs): Use regno_cost_classes
321         instead of cost_classes.
322         (scan_one_insn): Ditto.  Use always general register.
323         (print_allocno_costs): Use regno_cost_classes instead of
324         cost_classes.
325         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
326         (find_costs_and_classes): Set up cost classes for each registers.
327         Use also their mode for this.  Use regno_cost_classes instead of
328         cost_classes.
329         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
330         cost_classes.
331         (free_ira_costs, ira_init_costs): Don't use cost_classes.
332         (ira_costs, ira_set_pseudo_classes): Call
333         initiate_regno_cost_classes and finish_regno_cost_classes.
334
335         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
336
337         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
338
339         * target.def (ira_cover_classes): Remove.
340
341         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
342
343         * doc/tm.texi.in: Ditto.
344
345         * ira-conflicts.c: Remove mentioning cover classes from the file.
346         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
347         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
348
349         * targhooks.c (default_ira_cover_classes): Remove.
350
351         * targhooks.h (default_ira_cover_classes): Ditto.
352
353         * haifa-sched.c: Remove mentioning cover classes from the file.
354         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
355         ira_pressure_classes and ira_pressure_classes_num instead of
356         ira_reg_class_cover_size and ira_reg_class_cover.  Use
357         sched_regno_pressure_class instead of sched_regno_cover_class.
358         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
359         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
360
361         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
362         classes from the file.
363         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
364         (struct object_hard_regs, struct object_hard_regs_node): New.
365         (struct ira_object): New members profitable_hard_regs,
366         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
367         (struct ira_allocno): Rename cover_class to aclass.  Rename
368         cover_class_cost and updated_cover_class_cost to class_cost and
369         updated_class_cost.  Remove splay_removed_p and
370         left_conflict_size.  Add new members colorable_p.
371         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
372         (ALLOCNO_COLORABLE_P): New macro.
373         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
374         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
375         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
376         (OBJECT_...): Rename parameter C to O.
377         (OBJECT_PROFITABLE_HARD_REGS): New macro.
378         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
379         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
380         (struct target_ira_int): New members x_ira_max_memory_move_cost,
381         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
382         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
383         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
384         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
385         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
386         x_ira_reg_class_subunion.
387         (ira_max_memory_move_cost, ira_max_register_move_cost)
388         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
389         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
390         (ira_important_class_nums, ira_reg_class_superunion): New macros.
391         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
392         (ira_reg_class_union): Rename to ira_reg_class_subunion.
393         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
394         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
395         (ira_tune_allocno_costs_and_cover_classes): Rename to
396         ira_tune_allocno_costs.
397         (ira_debug_hard_regs_forest): New.
398         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
399         (ira_object_conflict_iter_next): Fix comments.
400         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
401         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
402         cover_class to aclass.
403         (ira_allocate_and_accumulate_costs): Ditto.
404         (ira_allocate_and_set_or_copy_costs): Ditto.
405
406         * opts.c (decode_options): Remove ira_cover_class check.
407
408         * ira-color.c: Remove mentioning cover classes from the file.  Use
409         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
410         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
411         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
412         (splay-tree.h): Remove include.
413         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
414         before copy_freq_compare_func.
415         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
416         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
417         New definitions.
418         (hard_regs_roots, hard_regs_node_vec): Ditto.
419         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
420         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
421         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
422         (create_new_object_hard_regs_node): Ditto.
423         (add_new_object_hard_regs_node_to_forest): Ditto.
424         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
425         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
426         Ditto.
427         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
428         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
429         (remove_unused_object_hard_regs_nodes): Ditto.
430         (enumerate_object_hard_regs_nodes): Ditto.
431         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
432         (object_hard_regs_subnode_t): Ditto.
433         (struct object_hard_regs_subnode): Ditto.
434         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
435         (setup_object_hard_regs_subnode_index): Ditto.
436         (get_object_hard_regs_subnodes_num): Ditto.
437         (form_object_hard_regs_nodes_forest): Ditto.
438         (finish_object_hard_regs_nodes_tree): Ditto.
439         (finish_object_hard_regs_nodes_forest): Ditto.
440         (allocnos_have_intersected_live_ranges_p): Rename to
441         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
442         (pseudos_have_intersected_live_ranges_p): Rename to
443         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
444         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
445         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
446         (update_copy_costs): Remove assert.  Skip cost update if the hard
447         reg does not belong the class.
448         (assign_hard_reg): Process only profitable hard regs.
449         (uncolorable_allocnos_num): Make it scalar.
450         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
451         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
452         and ira_reg_class_max_nregs.
453         (bucket_allocno_compare_func): Check frequency first.
454         (sort_bucket): Add compare function as a parameter.
455         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
456         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
457         (push_allocno_to_stack): Rewrite for checking new allocno
458         colorability.
459         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
460         (push_only_colorable): Pass new parameter to sort_bucket.
461         (push_allocno_to_spill): Remove.
462         (allocno_spill_priority_compare): Make it inline and rewrite.
463         (splay_tree_allocate, splay_tree_free): Remove.
464         (allocno_spill_sort_compare): New function.
465         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
466         build and use splay tree.  Choose first allocno in uncolorable
467         allocno bucket to spill.  Remove setting spill cost.
468         (all_conflicting_hard_regs): Remove.
469         (setup_allocno_available_regs_num): Check only profitable hard
470         regs.  Print info about hard regs nodes.
471         (setup_allocno_left_conflicts_size): Remove.
472         (put_allocno_into_bucket): Don't call
473         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
474         (improve_allocation): New.
475         (color_allocnos): Call setup_profitable_hard_regs,
476         form_object_hard_regs_nodes_forest, improve_allocation,
477         finish_object_hard_regs_nodes_forest.  Setup spill cost.
478         (print_loop_title): Use pressure classes.
479         (color_allocnso): Ditto.
480         (do_coloring): Remove allocation and freeing splay_tree_node_pool
481         and allocnos_for_spilling.
482         (ira_sort_regnos_for_alter_reg): Don't setup members
483         {first,next}_coalesced_allocno.
484         (color): Remove allocating and freeing removed_splay_allocno_vec.
485         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
486         prohibited_class_mode_regs.
487
488         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
489         formatting.
490         (update_allocno_pressure_excess_length): Use pressure classes.
491         (inc_register_pressure, dec_register_pressure): Check for pressure
492         class.
493         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
494         pressure class.  Use ira_reg_class_nregs instead of
495         ira_reg_class_max_nregs.
496         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
497         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
498         (single_reg_class): Use ira_reg_class_nregs instead of
499         ira_reg_class_max_nregs.
500         (process_bb_node_lives): Use pressure classes.
501
502         * ira-emit.c: Remove mentioning cover classes from the file.  Use
503         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
504         (change_loop): Use pressure classes.
505         (modify_move_list): Call ira_set_allocno_class instead of
506         ira_set_allocno_cover_class.
507
508         * ira-build.c: Remove mentioning cover classes from the file.  Use
509         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
510         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
511         ALLOCNO_UPDATED_CLASS_COST instead of
512         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
513         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
514         (ira_create_allocno): Remove initialization of
515         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
516         ALLOCNO_COLORABLE_P.
517         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
518         Update conflict regs for the objects.
519         (create_cap_allocno): Remove assert.  Don't propagate
520         ALLOCNO_AVAILABLE_REGS_NUM.
521         (ira_free_allocno_costs): New function.
522         (finish_allocno): Change a part of code into call of
523         ira_free_allocno_costs.
524         (low_pressure_loop_node_p): Use pressure classes.
525         (object_range_compare_func): Don't compare classes.
526         (setup_min_max_conflict_allocno_ids): Ditto.
527
528         * loop-invariant.c: Remove mentioning cover classes from the file.
529         Use ira_pressure_classes and ira_pressure_classes_num instead of
530         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
531         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
532         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
533         Use reg_allocno_class instead of reg_cover_class.
534         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
535         STACK_REG_COVER_CLASS.
536         (get_regno_cover_class): Rename to get_regno_pressure_class.
537         (move_loop_invariants): Initialize and finalize regstat.
538
539         * ira.c: Remove mentioning cover classes from the file.  Add
540         comments about coloring without cover classes.  Use ALLOCNO_CLASS
541         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
542         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
543         setup_class_subset_and_memory_move_costs.
544         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
545         (setup_cover_and_important_classes): Rename to
546         setup_allocno_and_important_classes.
547         (setup_class_translate_array): New.
548         (setup_class_translate): Call it for allocno and pressure classes.
549         (cover_class_order): Rename to allocno_class_order.
550         (comp_reg_classes_func): Use ira_allocno_class_translate instead
551         of ira_class_translate.
552         (reorder_important_classes): Set up ira_important_class_nums.
553         (setup_reg_class_relations): Set up ira_reg_class_superunion.
554         (print_class_cover): Rename to print_classes.  Add parameter.
555         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
556         Print pressure classes too.
557         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
558         setup_reg_subclasses.
559         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
560         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
561         (setup_prohibited_class_mode_regs): Use
562         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
563         (clarify_prohibited_class_mode_regs): New function.
564         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
565         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
566         (ira_init_once): Initialize them.
567         (free_register_move_costs): Process them.
568         (ira_init): Move calls of find_reg_classes and
569         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
570         Call clarify_prohibited_class_mode_regs.
571         (ira_no_alloc_reg): Remove.
572         (too_high_register_pressure_p): Use pressure classes.
573
574         * sched-deps.c: Remove mentioning cover classes from the file.
575         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
576         ira_pressure_classes and ira_pressure_classes_num instead of
577         ira_reg_class_cover_size and ira_reg_class_cover.
578         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
579         sched_regno_pressure_class instead of sched_regno_cover_class.
580         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
581         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
582
583         * ira.h: Add 2010 to Copyright.
584         (ira_no_alloc_reg): Remove external.
585         (struct target_ira): Rename x_ira_hard_regno_cover_class,
586         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
587         x_ira_class_translate to x_ira_hard_regno_allocno_class,
588         x_ira_allocno_classes_num, x_ira_allocno_classes, and
589         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
590         x_ira_pressure_classes, x_ira_pressure_class_translate, and
591         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
592         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
593         x_ira_no_alloc_regs.
594         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
595         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
596         ira_allocno_classes_num and ira_allocno_classes.
597         (ira_class_translate): Rename to ira_allocno_class_translate.
598         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
599         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
600         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
601         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
602         (ira_no_alloc_regs): New.
603
604         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
605         classes from the file.  Use ALLOCNO_CLASS instead of
606         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
607         ALLOCNO_COVER_CLASS_COST.
608         (regno_cover_class): Rename to regno_aclass.
609         (record_reg_classes): Use ira_reg_class_subunion instead of
610         ira_reg_class_union.
611         (record_address_regs): Check overflow.
612         (scan_one_insn): Ditto.
613         (print_allocno_costs): Print total mem cost fore regional allocation.
614         (print_pseudo_costs): Use REG_N_REFS.
615         (find_costs_and_classes): Use classes intersected with them on the
616         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
617         ira_reg_class_union.  Use ira_allocno_class_translate and
618         regno_aclass instead of ira_class_translate and regno_cover_class.
619         Modify code for finding regno_aclass.  Setup preferred classes for
620         the next pass.
621         (setup_allocno_cover_class_and_costs): Rename to
622         setup_allocno_class_and_costs.  Use regno_aclass instead of
623         regno_cover_class.  Use ira_set_allocno_class instead of
624         ira_set_allocno_cover_class.
625         (init_costs, finish_costs): Use regno_aclass instead of
626         regno_cover_class.
627         (ira_costs): Use setup_allocno_class_and_costs instead of
628         setup_allocno_cover_class_and_costs.
629         (ira_tune_allocno_costs_and_cover_classes): Rename to
630         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
631         by processing objects.  Use ira_reg_class_max_nregs instead of
632         ira_reg_class_nregs.
633
634         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
635
636         * sched-int.h: Remove mentioning cover classes from the file.
637         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
638
639         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
640         classes from the file.
641         (struct reg_pref): Rename coverclass into allocnoclass.
642         (reg_cover_class): Rename to reg_allocno_class.
643
644         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
645
646         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
647
648         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
649
650         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
651
652         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
653
654         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
655
656         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
657
658         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
659
660         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
661
662         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
663
664         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
665         (i386_ira_cover_classes): Ditto.
666
667         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
668
669         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
670
671         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
672
673         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
674
675         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
676
677         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
678
679         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
680         (mips_ira_cover_classes): Ditto.
681
682         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
683
684         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
685
686         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
687
688         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
689
690         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
691
692         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
693         (IRA_COVER_CLASSES_VSX): Ditto.
694
695         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
696         (rs6000_ira_cover_classes): Ditto.
697
698         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
699
700         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
701
702         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
703
704         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
705
706         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
707
708         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
709
710         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
711
712         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
713
714         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
715
716         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
717
718 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
719
720         PR debug/48253
721         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
722         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
723         dw_fde_unlikely_section_end_label, cold_in_std_section,
724         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
725         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
726         fields.
727         (output_fde): Use dw_fde_second_{begin,end} if second is
728         true, otherwise dw_fde_{begin,end}.
729         (output_call_frame_info): Test dw_fde_second_begin != NULL
730         instead of dw_fde_switched_sections.
731         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
732         fields, initialize new fields.  Initialize in_std_section
733         unconditionally from the first partition.
734         (dwarf2out_end_epilogue): Don't override dw_fde_end when
735         dw_fde_second_begin is non-NULL.
736         (dwarf2out_switch_text_section): Stop initializing removed
737         dw_fde_struct fields, initialize new fields, initialize
738         also dw_fde_end here.  Set dw_fde_switch_cfi even when
739         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
740         (struct var_loc_list_def): Add last_before_switch field.
741         (arange_table, arange_table_allocated, arange_table_in_use,
742         ARANGE_TABLE_INCREMENT, add_arange): Removed.
743         (size_of_aranges): Count !in_std_section and !second_in_std_section
744         hunks in fdes, instead of looking at arange_table_in_use.
745         (output_aranges): Add aranges_length argument, don't call
746         size_of_aranges here.  Instead of using aranges_table*
747         emit ranges for fdes when !in_std_section resp.
748         !second_in_std_section.
749         (dw_loc_list): Break ranges crossing section switch.
750         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
751         use dw_fde_second_end instead of dw_fde_end as end of last range.
752         (gen_subprogram_die): Don't call add_arange.  Use
753         dw_fde_{begin,end} for first partition and if switched
754         section dw_fde_second_{begin,end} for the second.
755         (var_location_switch_text_section_1,
756         var_location_switch_text_section): New functions.
757         (dwarf2out_begin_function): Initialize cold_text_section even
758         when function_section () isn't text_section.
759         (prune_unused_types): Don't walk arange_table.
760         (dwarf2out_finish): Don't needlessly test
761         flag_reorder_blocks_and_partition when testing cold_text_section_used.
762         If info_section_emitted, call size_of_aranges and if it indicates
763         non-empty .debug_aranges, call output_aranges with the computed
764         size.  Stop using removed dw_fde_struct fields, use
765         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
766         for second.
767
768         PR debug/48203
769         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
770         create ENTRY_VALUE if incoming or address of incoming's MEM
771         is a hard REG.
772         * dwarf2out.c (mem_loc_descriptor): Don't emit
773         DW_OP_GNU_entry_value of DW_OP_fbreg.
774         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
775         on ENTRY_VALUE is able to find the canonical parameter VALUE.
776         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
777         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
778         ENTRY_VALUE_EXPs.
779         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
780         is a REG_P or MEM_P with REG_P address, compute hash directly
781         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
782         (preserve_only_constants): Don't clear VALUES forwaring
783         ENTRY_VALUE to some other VALUE.
784
785 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
786
787         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
788         instead of GEN_INT.
789
790 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
791
792         * cfgexpand.c (expand_gimple_cond): Always set the source location and
793         block before expanding the statement.
794         (expand_gimple_stmt_1): Likewise.  Set them here...
795         (expand_gimple_stmt): ...and not here.  Tidy.
796         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
797         unknown.
798
799 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
800
801         * Makefile.in: New rule for cprop.o.
802         * gcse.c: Move constant/copy propagation to cprop.c.
803         (compute_local_properties): Only handle expression tables.
804         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
805         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
806         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
807         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
808         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
809         compute_cprop_data, find_used_regs, try_replace_reg,
810         find_avail_set, cprop_jump, constprop_register, cprop_insn,
811         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
812         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
813         find_bypass_set, reg_killed_on_edge, bypass_block,
814         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
815         execute_rtl_cprop, pass_rtl_cprop): Move to...
816         * cprop.c: ...here.  New file, constant/copy propagation for RTL
817         moved from gcse.c to here with minor cleanups in duplicated code.
818
819 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
820
821         * config/i386/i386.c (flag_opts): Fix a typo in
822         -mavx256-split-unaligned-store.
823
824 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
825
826         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
827         LIBCALL_VALUE): Remove macros.
828         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
829         TARGET_FUNCTION_VALUE_REGNO_P): Define.
830         (h8300_function_value, h8300_libcall_value,
831         h8300_function_value_regno_p): New functions.
832
833 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
834
835         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
836
837 2011-03-28  Jeff Law  <law@redhat.com>
838
839         * tree-ssa-threadupdate.c (redirect_edges): Call
840         create_edge_and_update_destination_phis as needed.
841         (create_edge_and_update_destination_phis): Accept new BB argument.
842         All callers updated.
843         (thread_block): Do not update the profile when threading around
844         intermediate blocks.
845         (thread_single_edge): Likewise.
846         (determine_bb_domination_status): If BB is not a successor of the
847         loop header, return NONDOMINATING.
848         (register_jump_thread): Note when we register a jump thread around
849         an intermediate block.
850         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
851         (thread_across_edge): Use it.
852
853 2011-03-28  Tristan Gingold  <gingold@adacore.com>
854
855         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
856         when for_return is 2.
857
858 2011-03-28  Jeff Law  <law@redhat.com>
859
860         * var-tracking.c (canonicalize_values_mark): Delete unused
861         lhs assignment.
862         (canonicalize_values_star, set_variable_part): Likewise.
863         (clobber_variable_part, delete_variable_part): Likewise.
864
865 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
866
867         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
868
869 2011-03-28  Martin Jambor  <mjambor@suse.cz>
870
871         * tree-inline.c (expand_call_inline): Do not check that destination
872         node is analyzed.
873         (optimize_inline_calls): Assert that destination node is analyzed.
874         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
875         not call tree_lowering_passes.
876         * cgraph.h (cgraph_analyze_function): Declare.
877         * cgraphunit.c (cgraph_analyze_function): Make public.
878
879 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
880
881         * config/sparc/sparc-opts.h: New.
882         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
883         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
884         (sparc_option_override): Store processor_type enumeration rather
885         than string in cpu_default.  Remove name and enumeration from
886         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
887         without using sparc_select.  Use target_flags_explicit instead of
888         fpu_option_set.
889         * config/sparc/sparc.h (enum processor_type): Move to
890         sparc-opts.h.
891         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
892         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
893         HeaderInclude entry.
894         (mcpu=, mtune=): Use Var and Enum.
895         (sparc_processor_type): New Enum and EnumValue entries.
896
897 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
898             Iain Sandoe  <iains@gcc.gnu.org>
899
900         PR target/48245
901         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
902
903 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
904
905         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
906         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
907         Insert new statements at it in lieu of STMT.
908         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
909         * tree-vect-stmts.c (vectorizable_store): Likewise.
910         (vectorizable_load): Likewise.
911
912 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
913
914         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
915         (divtf3): Ditto.
916         (multf3): Ditto.
917         (subtf3): Ditto.
918
919 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
920
921         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
922         unaligned 256bit load/store.
923         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
924         (*avx_movdqu<avxmodesuffix>): Likewise.
925
926 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
927
928         PR target/48288
929         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
930         * config/pa/pa.md (iordi3): Use new predicate in expander.
931         (iorsi3): Likewise.
932
933 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
934
935         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
936         FUNCTION_VALUE_REGNO_P): Remove macros.
937         * config/mips/mips-protos.h (mips_function_value): Remove.
938         * config/mips/mips.c (mips_function_value): Rename to...
939         (mips_function_value_1): ... this. Make static.  Handle receiving
940         the function type in 'fn_decl_or_type' argument.
941         (mips_function_value, mips_libcall_value,
942         mips_function_value_regno_p): New function.
943         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
944         TARGET_FUNCTION_VALUE_REGNO_P): Define.
945
946 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
947
948         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
949         and -mavx256-split-unaligned-store.
950         (ix86_option_override_internal): Split 32-byte AVX unaligned
951         load/store by default.
952         (ix86_avx256_split_vector_move_misalign): New.
953         (ix86_expand_vector_move_misalign): Use it.
954
955         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
956         -mavx256-split-unaligned-store.
957
958         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
959         256bit load/store.  Generate unaligned store on misaligned memory
960         operand.
961         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
962         256bit load/store.
963         (*avx_movdqu<avxmodesuffix>): Likewise.
964
965         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
966         -mavx256-split-unaligned-store.
967
968 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
969
970         PR target/38598
971         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
972         Update commentary.
973
974 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
975
976         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
977         opno arguments with an expand_operand.  Use create_input_operand.
978         (mips_prepare_builtin_target): Delete.
979         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
980         functions.
981         (mips_expand_builtin_direct): Use create_output_operand and
982         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
983         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
984         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
985
986 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
987
988         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
989         function.
990         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
991
992 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
993
994         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
995         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
996         basic blocks and call commit_edge_insertions directly.
997         (fixup_abnormal_edges): Move from here to...
998         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
999         on the edges and return whether some have actually been inserted.
1000         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
1001         compensation code.
1002
1003 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
1004
1005         PR rtl-optimization/48144
1006         * sel-sched-ir.c (merge_history_vect): Factor out from ...
1007         (merge_expr_data): ... here.
1008         (av_set_intersect): Rename to av_set_code_motion_filter.
1009         Update all callers.  Call merge_history_vect when an expression
1010         is found in both sets.
1011         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
1012
1013 2011-03-26  Alan Modra  <amodra@gmail.com>
1014
1015         * config/rs6000/predicates.md (word_offset_memref_op): Handle
1016         cmodel medium addresses.
1017         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
1018         64-bit gpr loads and stores.
1019         (rs6000_secondary_reload_ppc64): New function.
1020         * config/rs6000/rs6000-protos.h: Declare it.
1021         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
1022
1023 2011-03-26  Alan Modra  <amodra@gmail.com>
1024
1025         PR target/47487
1026         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
1027         GNU Go in traceback table.
1028
1029 2011-03-25  Richard Henderson  <rth@redhat.com>
1030
1031         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
1032         if there are exactly 6 operands.
1033         (set_storage_via_setmem): Similarly.
1034
1035 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1036
1037         * collect2.c (write_c_file_stat): Handle backslash
1038         as right-hand directory separator.
1039         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
1040         checking just for slash.
1041         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
1042         instead of checking for trailing slash.
1043         * gcc.c (record_temp_file): Use filename_cmp instead
1044         of strcmp.
1045         (do_spec_1): Likewise.
1046         (replace_outfile_spec_function): Likewise.
1047         (is_directory): Use filename_ncmp instead of strncmp.
1048         (print_multilib_info): Likewise.
1049         * gcov.c (find_source): Use filename_cmp instead
1050         instead of strcmp.
1051         (make_gcov_file_name): Fix order of slash/backslash
1052         checks.
1053         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
1054         (add_standard_paths): Likewise.
1055         * mips-tfile.c (saber_stop): Handle backslash.
1056         * prefix.c (update_path): Use filename_ncmp instead of
1057         strncmp.
1058         * profile.c (output_location): Use filename_cmp instead
1059         of strcmp.
1060         * read-md.c (handle_toplevel_file): Handle backslash.
1061         * tlink.c (frob_extension):  Likewise.
1062         * tree-cfg.c (same_line_p): Use filename_cmp instead of
1063         strcmp.
1064         * tree-dump.c (dequeue_and_dump): Handle backslash.
1065         * tree.c (get_file_function_name): Likewise.
1066         * gengtype.c (read_input_list): Likewise.
1067         (get_file_realbasename): Likewise.
1068         (get_output_file_with_visibility): Use filename_cmp
1069         instead of strcmp.
1070
1071 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
1072
1073         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
1074         case to VFPv1.
1075
1076 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
1077
1078         * fold-const.c (expr_location_or): New function.
1079         (fold_truth_not_expr): Call it.
1080
1081 2011-03-25  Jeff Law  <law@redhat.com>
1082
1083         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
1084         va_end.
1085         * c-family/c-common.c (def_fn_type): Likewise.
1086         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
1087         * emit-rtl.c (gen_rtvec): Likewise.
1088         * lto/lto-lang.c (def_fn_type): Likewise.
1089
1090 2011-03-25  Richard Guenther  <rguenther@suse.de>
1091
1092         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
1093         also generate copies.
1094         (fini_copy_prop): Handle constant values properly.
1095
1096 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
1097
1098         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
1099         mode size instead of bitsize with DWARF2_ADDR_SIZE.
1100         (hash_loc_operands, compare_loc_operands): Handle
1101         DW_OP_GNU_entry_value.
1102
1103 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1104
1105         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
1106         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
1107         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
1108         comment and use macro TARGET_64BIT_MS_ABI instead.
1109         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
1110         and change default behavior for 32-bit MS_ABI.
1111         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
1112         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
1113         32-bit, too.
1114         (ix86_cfun_abi): Likewise.
1115         (ix86_maybe_switch_abi): Adjust comment.
1116         (init_cumulative_args): Check for bit-ness in MS_ABI case.
1117         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
1118         instead of checking for SYSV_ABI.
1119         (ix86_nsaved_sseregs): Likewise.
1120         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
1121         to 16 bytes.
1122         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
1123         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
1124         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
1125         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
1126         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
1127
1128 2011-03-25  Richard Guenther  <rguenther@suse.de>
1129
1130         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
1131         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
1132         (verify_gimple): Remove.
1133         * tree-cfg.c (verify_gimple_call): Merge verification
1134         from verify_stmts.
1135         (verify_gimple_phi): Merge verification from verify_stmts.
1136         (verify_gimple_label): New function.
1137         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
1138         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
1139         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
1140         (verify_stmts): Rename to verify_gimple_in_cfg.
1141         (verify_gimple_in_cfg): New function.
1142         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
1143         * tree-ssa.c (verify_ssa): Likewise.
1144         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
1145
1146 2011-03-25  Richard Guenther  <rguenther@suse.de>
1147
1148         * passes.c (init_optimization_passes): Add FRE pass after
1149         early SRA.
1150
1151 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
1152             Andrew Stubbs  <ams@codesourcery.com>
1153
1154         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
1155         for Cortex-A8.
1156         (arm_movdi_vfp_cortexa8): New pattern.
1157         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
1158         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
1159         instructions when tuning for Cortex-A8.  Set attribute "arch".
1160         * config/arm/arm.md: Move include arm-tune.md up a bit.
1161         (define_attr "arch"): Add "onlya8" and "nota8" values.
1162         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
1163
1164 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
1165
1166         PR bootstrap/48282
1167         Revert:
1168         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
1169
1170         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
1171         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
1172         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
1173         * passes.c (init_optimization_passes): Move
1174         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
1175
1176 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1177
1178         * c-typeck.c (comptypes_internal): Replace target
1179         hook call of comp_type_attributes by version in tree.c file.
1180         * gimple.c (gimple_types_compatible_p_1): Likewise.
1181         * tree-ssa.c (useless_type_conversion_p): Likewise.
1182         * tree.c (build_type_attribute_qual_variant): Likewise.
1183         (attribute_value_equal): New static helper function.
1184         (comp_type_attributes): New function.
1185         (merge_attributes): Use attribute_value_equal for comparison.
1186         (attribute_list_contained): Likewise.
1187         * tree.h (comp_type_attributes): New prototype.
1188
1189 2011-03-25  Richard Guenther  <rguenther@suse.de>
1190
1191         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
1192         of complex types at -O0.
1193         (verify_gimple_assign_binary): Likewise.
1194         (verify_gimple_assign_ternary): Likewise.
1195
1196 2011-03-24  Mark Wielaard  <mjw@redhat.com>
1197
1198         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
1199         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
1200
1201 2011-03-24  Mark Wielaard  <mjw@redhat.com>
1202
1203         PR debug/48041
1204         * dwarf2out.c (output_abbrev_section): Only write table when
1205         abbrev_die_table_in_use > 1.
1206
1207 2011-02-24  Richard Henderson  <rth@redhat.com>
1208
1209         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
1210         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
1211         (alpha_expand_unaligned_load_words): Use extql.
1212         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
1213         (emit_insxl): Handle all modes for consistency.
1214
1215 2011-02-24  Richard Henderson  <rth@redhat.com>
1216
1217         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
1218         (alpha_expand_unaligned_load): Likewise.
1219         (alpha_expand_unaligned_store): Likewise.
1220         (alpha_expand_unaligned_load_words): Likewise.
1221         (alpha_expand_unaligned_store_words): Likewise.
1222         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
1223         (alpha_split_lock_test_and_set_12): Likewise.
1224         (print_operand, alpha_fold_builtin_extxx): Likewise.
1225         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
1226         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
1227         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
1228         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
1229         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
1230         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
1231         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
1232         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
1233         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
1234         (extwl, extll, extql): Similarly.
1235         (inswh, inslh, insqh): Similarly.
1236         (mskbl, mskwl, mskll, mskql): Similarly.
1237         (mskwh, msklh, mskqh): Similarly.
1238
1239 2011-02-24  Richard Henderson  <rth@redhat.com>
1240
1241         * config/alpha/alpha.md (attribute isa): Add er, ner.
1242         (attribute enabled): Handle them.
1243         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
1244
1245 2011-02-24  Richard Henderson  <rth@redhat.com>
1246
1247         * config/alpha/alpha.md (attribute isa): Add vms.
1248         (attribute enabled): Handle it.
1249         (*movsf): Merge *movsf_{nofix,fix,nofp}.
1250         (*movdf): Merge *movdf_{nofix,fix,nofp}.
1251         (*movtf): Rename from *movtf_internal for consistency.
1252         (*movsi): Merge with *movsi_nt_vms.
1253         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
1254         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
1255         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
1256         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
1257
1258 2011-02-24  Richard Henderson  <rth@redhat.com>
1259
1260         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
1261         (extendqisi2, extendhisi2): Likewise.
1262         (extendqidi2): Simplify BWX/non-BWX expansions.
1263         (extendhidi2): Similarly.
1264
1265 2011-02-24  Richard Henderson  <rth@redhat.com>
1266
1267         * config/alpha/alpha.md (attribute isa): New.
1268         (attribute enabled): New.
1269         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
1270         (zero_extendqisi2, zero_extendqidi2): Similarly.
1271         (zero_extendhisi2, zero_extendhidi2): Similarly.
1272         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
1273
1274 2011-02-24  Richard Henderson  <rth@redhat.com>
1275
1276         * config/alpha/predicates.md (input_operand): Revert last change;
1277         update comment to mention 32-bit VMS rather than Windows.
1278
1279 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
1280
1281         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
1282         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
1283         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
1284         * passes.c (init_optimization_passes): Move
1285         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
1286
1287 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1288
1289         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
1290
1291 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
1292
1293         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
1294         correctly.
1295
1296 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
1297
1298         PR debug/48204
1299         * simplify-rtx.c (simplify_const_unary_operation): Call
1300         real_convert when changing mode class with FLOAT_EXTEND.
1301
1302 2011-03-24  Nick Clifton  <nickc@redhat.com>
1303
1304         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
1305         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
1306         * config/rx/rx.c (rx_option_override): Set align_jumps,
1307         align_loops and align_labels if not set by the user.
1308         (rx_align_for_label): New function.
1309         (rx_max_skip_for_label): New function.
1310         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
1311         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
1312         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
1313         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
1314         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
1315
1316 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
1317
1318         PR rtl-optimization/48263
1319         * optabs.c (expand_binop_directly): Reinstate convert_modes code
1320         and original commutative_p handling.  Use maybe_gen_insn.
1321
1322 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1323
1324         * reload.c (find_reloads_subreg_address): Add address_reloaded
1325         parameter and return true there if the full address has been
1326         reloaded.
1327         (find_reloads_toplev): Pass address_reloaded flag.
1328         (find_reloads_address_1): Don't use address_reloaded parameter.
1329
1330 2011-03-24  Jeff Law  <law@redhat.com>
1331
1332         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
1333         unused variable "ann".
1334         (remove_unused_locals): Likewise.
1335
1336         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
1337         statement.
1338
1339         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
1340         after it is freed.
1341
1342 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1343
1344         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
1345         for invalid symbolic addresses.
1346         (s390_secondary_reload): Don't use s390_check_symref_alignment for
1347         larl operands.
1348
1349 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1350
1351         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
1352         the argument in calls to fold_truth_not_expr.
1353
1354 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
1355
1356         * tree.c (record_node_allocation_statistics): New function.
1357         (make_node_stat, copy_node_stat, build_string): Call it.
1358         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
1359         (build1_stat, build_omp_clause): Likewise.
1360
1361 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
1362
1363         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
1364         last commit.
1365
1366 2011-03-24  Richard Guenther  <rguenther@suse.de>
1367
1368         PR tree-optimization/48271
1369         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
1370         blocks that still exist.
1371
1372 2011-03-24  Richard Guenther  <rguenther@suse.de>
1373
1374         PR tree-optimization/48270
1375         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
1376         not free datarefs before ddrs.
1377
1378 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1379
1380         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
1381         from the address built for a reference with variable offset.
1382
1383 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
1384
1385         PR target/48237
1386         * config/i386/i386.md (*movdf_internal_rex64): Do not split
1387         alternatives that can be handled with movq or movabsq insn.
1388         (*movdf_internal): Disable for !TARGET_64BIT.
1389         (*movdf_internal_nointeger): Ditto.
1390         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
1391
1392 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
1393
1394         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
1395         (FUNCTION_ARG_ADVANCE): Likewise.
1396         * tm.texi.in: Change references to them to hook references.
1397         * tm.texi: Regenerate.
1398         * targhooks.c (default_function_arg): Eliminate check for target macro.
1399         (default_function_incoming_arg): Likewise.
1400         (default_function_arg_advance): Likewise.
1401         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
1402         (function_arg_advance): Likewise.
1403         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
1404
1405 2011-03-24  Richard Guenther  <rguenther@suse.de>
1406
1407         PR middle-end/48269
1408         * tree-object-size.c (addr_object_size): Do not double-account
1409         for MEM_REF offsets.
1410
1411 2011-03-24  Diego Novillo  <dnovillo@google.com>
1412
1413         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
1414         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
1415         (lto_input_data_block): Move from lto-opts.c.  Make extern.
1416         Update all users.
1417         (lto_input_string): Rename from input_string.  Make extern.
1418         Update all users.
1419         * lto-streamer-out.c (lto_output_string_with_length): Rename from
1420         output_string_with_length.
1421         Output 0 to indicate a non-NULL string.  Update all callers to
1422         not emit 0.
1423         (lto_output_string): Rename from output_string.  Make extern.
1424         Update all users.
1425         (lto_output_decl_state_streams): Make extern.
1426         (lto_output_decl_state_refs): Make extern.
1427         * lto-streamer.h (lto_input_string): Declare.
1428         (lto_input_data_block): Declare.
1429         (lto_output_string): Declare.
1430         (lto_output_string_with_length): Declare.
1431         (lto_output_decl_state_streams): Declare.
1432         (lto_output_decl_state_refs): Declare.
1433
1434 2011-03-24  Richard Guenther  <rguenther@suse.de>
1435
1436         PR tree-optimization/46562
1437         * tree.c (build_invariant_address): New function.
1438         * tree.h (build_invariant_address): Declare.
1439         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
1440         a renamed function moved ...
1441         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
1442         Take valueization callback parameter.
1443         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
1444         * gimple-fold.h: New file.
1445         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
1446         (ccp_fold, fold_const_aggregate_ref,
1447         fold_ctor_reference, fold_nonarray_ctor_reference,
1448         fold_array_ctor_reference, fold_string_cst_ctor_reference,
1449         get_base_constructor): Move ...
1450         * gimple-fold.c: ... here.
1451         (gimple_fold_stmt_to_constant_1): New function
1452         split out from ccp_fold.  Take a valueization callback parameter.
1453         Valueize all operands.
1454         (gimple_fold_stmt_to_constant): New wrapper function.
1455         (fold_const_aggregate_ref_1): New function split out from
1456         fold_const_aggregate_ref.  Take a valueization callback parameter.
1457         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
1458         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
1459         invariant POINTER_PLUS_EXPRs to invariant form.
1460         (vn_valueize): New function.
1461         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
1462         * tree-vrp.c (vrp_valueize): New function.
1463         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
1464         to fold statements to constants.
1465         * tree-ssa-pre.c (eliminate): Properly guard propagation of
1466         function declarations.
1467         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
1468         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
1469
1470 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
1471
1472         * config/h8300/predicates.md (jump_address_operand): Fix register
1473         mode check.
1474
1475 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
1476
1477         * doc/invoke.texi (max-stores-to-sink): Document.
1478         * params.h (MAX_STORES_TO_SINK): Define.
1479         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
1480         if either vectorization or if-conversion is disabled.
1481         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
1482         tree-vect-data-refs.c vect_equal_offsets.
1483         (dr_equal_offsets_p): New function.
1484         (find_data_references_in_bb): Remove static.
1485         * tree-data-ref.h (find_data_references_in_bb): Declare.
1486         (dr_equal_offsets_p): Likewise.
1487         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
1488         (vect_drs_dependent_in_basic_block): Update calls to
1489         vect_equal_offsets.
1490         (vect_check_interleaving): Likewise.
1491         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
1492         (cond_if_else_store_replacement): Rename to...
1493         (cond_if_else_store_replacement_1): ... this.  Change arguments and
1494         documentation.
1495         (cond_if_else_store_replacement): New function.
1496         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
1497         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
1498
1499 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
1500
1501         PR target/46934
1502         * config/arm/arm.md (casesi): Use the gen_int_mode() function
1503         to subtract lower bound instead of GEN_INT().
1504
1505 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
1506
1507         PR other/48179
1508         PR other/48221
1509         PR other/48234
1510         * doc/extend.texi (Alignment): Move section to match order in TOC.
1511         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
1512         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
1513
1514 2011-03-23  Jeff Law  <law@redhat.com>
1515
1516         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
1517         before removing the edge.
1518
1519         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
1520         it may have been freed by redirect_branch_edge or
1521         redirect_edge_succ_nodup.
1522
1523 2011-03-23  Richard Guenther  <rguenther@suse.de>
1524
1525         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
1526         (check_va_list_escapes): Likewise.
1527         (check_all_va_list_escapes): Likewise.
1528
1529 2011-03-23  Richard Guenther  <rguenther@suse.de>
1530
1531         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
1532         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
1533         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
1534         (alias.o): Likewise.
1535         (ipa-type-escape.o): Remove.
1536         (ipa-struct-reorg.o): Likewise.
1537         (GTFILES): Remove ipa-struct-reorg.c.
1538         * alias.c: Do not include ipa-type-escape.h.
1539         * tree-ssa-alias.c: Likewise.
1540         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
1541         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
1542         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
1543         and ipa-type-escape passes.
1544         * tree-pass.h (pass_ipa_type_escape): Remove.
1545         (pass_ipa_struct_reorg): Likewise.
1546         * ipa-struct-reorg.h: Remove.
1547         * ipa-struct-reorg.c: Likewise.
1548         * ipa-type-escape.h: Likewise.
1549         * ipa-type-escape.c: Likewise.
1550         * doc/invoke.texi (-fipa-struct-reorg): Remove.
1551         (--param struct-reorg-cold-struct-ratio): Likewise.
1552         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
1553         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
1554         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
1555
1556 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1557
1558         * config/s390/2084.md: Enable all insn reservations also for z9_ec
1559         cpu attribute value.
1560         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
1561         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
1562         * config/s390/s390.c (processor_flags_table): New constant array.
1563         (s390_handle_arch_option): Remove.
1564         (s390_handle_option): Remove s390_handle_arch_option invocations
1565         and OPT_mwarn_framesize_ handling.
1566         (s390_option_override): Remove s390_handle_arch_option invocation.
1567         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
1568         warnings.
1569         * config/s390/s390.md (cpu attribute): Add z9_ec value.
1570         * config/s390/s390.opt (s390_tune, s390_arch)
1571         (march=): Replace s390_arch_option enum and values with
1572         processor_type.  Set variable name to s390_arch.  Set
1573         initialization value.
1574         (mtune=): Replace s390_arch_option with processor_type.  Set
1575         variable name to s390_tune.  Set initialization value.
1576
1577 2011-03-23  Julian Brown  <julian@codesourcery.com>
1578
1579         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
1580         accesses which are not naturally aligned.
1581
1582 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
1583
1584         PR target/47553
1585         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
1586
1587 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
1588
1589         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
1590         parameter from "int" to "enum insn_code".
1591         (expand_operand_type): New enum.
1592         (expand_operand): New structure.
1593         (create_expand_operand): New function.
1594         (create_fixed_operand, create_output_operand): Likewise
1595         (create_input_operand, create_convert_operand_to): Likewise.
1596         (create_convert_operand_from, create_address_operand): Likewise.
1597         (create_integer_operand): Likewise.
1598         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
1599         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
1600         (expand_insn, expand_jump_insn): Likewise.
1601         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
1602         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
1603         (expand_movstr, expand_builtin___clear_cache): Likewise.
1604         (expand_builtin_lock_release): Likewise.
1605         * explow.c (allocate_dynamic_stack_space): Likewise.
1606         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
1607         and use the default handling in that case.
1608         * expmed.c (check_predicate_volatile_ok): Delete.
1609         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
1610         (emit_cstore): Likewise.
1611         * expr.c (emit_block_move_via_movmem): Likewise.
1612         (set_storage_via_setmem, expand_assignment): Likewise.
1613         (emit_storent_insn, try_casesi): Likewise.
1614         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
1615         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
1616         (expand_vec_shift_expr, expand_binop_directly): Likewise.
1617         (expand_twoval_unop, expand_twoval_binop): Likewise.
1618         (expand_unop_direct, emit_indirect_jump): Likewise.
1619         (emit_conditional_move, vector_compare_rtx): Likewise.
1620         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
1621         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
1622         (expand_sync_lock_test_and_set): Likewise.
1623         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
1624         (emit_unop_insn): Likewise.
1625         (expand_copysign_absneg): Change icode to an insn_code.
1626         (create_convert_operand_from_type): New function.
1627         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
1628         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
1629         (expand_insn, expand_jump_insn): Likewise.
1630         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
1631         than const_int_operand for operand 2.
1632
1633 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1634
1635         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
1636         if possible.
1637
1638 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
1639
1640         * emit-rtl.c (emit_pattern_before_noloc): New function.
1641         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
1642         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
1643         (emit_pattern_after_noloc): New function.
1644         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
1645         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
1646
1647 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
1648
1649         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
1650         (__ffsDI2): Likewise.
1651
1652 2011-03-22  Richard Henderson  <rth@redhat.com>
1653
1654         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
1655         of !TARGET_ABI_OPEN_VMS.
1656         (alpha_trampoline_init, alpha_start_function): Likewise.
1657         (alpha_expand_epilogue, alpha_file_start): Likewise.
1658         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
1659         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
1660         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
1661         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
1662         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
1663
1664 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1665
1666         * config/s390/s390-opts.h: New.
1667         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
1668         s390_arch_flags, s390_warn_framesize, s390_stack_size,
1669         s390_stack_guard): Remove.
1670         (s390_handle_arch_option): Return void.  Take enum
1671         s390_arch_option value instead of string and searching array.
1672         (s390_handle_option): Don't assert that global structures are in
1673         use.  Access variables via opts pointer.  Use error_at.  Don't use
1674         sscanf for -mstack-guard= or -mstack-size=.  Update call to
1675         s390_handle_arch_option.
1676         (s390_option_override): Update call to s390_handle_arch_option.
1677         (s390_emit_prologue): Use %d format for s390_stack_size in
1678         diagnostic.  Use %wd for HOST_WIDE_INT.
1679         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
1680         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
1681         * config/s390/s390.opt (config/s390/s390-opts.h): New
1682         HeaderInclude entry.
1683         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
1684         s390_arch_flags, s390_warn_framesize): New Variable entries.
1685         (s390_arch_option): New Enum and EnumValue entries.
1686         (march=): Use Enum instead of Var.
1687         (mstack-guard=, mstack-size=): Use UInteger and Var.
1688         (mtune=): Use Enum.
1689
1690 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1691
1692         * config/score/score.c (score_handle_option): Don't assert that
1693         global structures are in use.  Access target_flags via opts
1694         pointer.  Use value of -march= option to determine target_flags
1695         settings.
1696         * config/score/score.opt (march=): Use Enum.
1697         (score_arch): New Enum and EnumValue entries.
1698
1699 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1700
1701         * config/mep/mep.c (option_mtiny_specified): Remove.
1702         (mep_option_override): Move register handling for -mivc2 from
1703         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
1704         instead of option_mtiny_specified.
1705         (mep_handle_option): Access target_flags via opts pointer.  Don't
1706         assert that global structures are in use.  Defer part of -mivc2
1707         handling and move it to mep_option_override.
1708         * config/mep/mep.opt (IVC2): New Mask entry.
1709         (mivc2): Use Var and Defer instead of Mask.
1710
1711 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1712
1713         * config/v850/v850-opts.h: New.
1714         * config/v850/v850.c (small_memory): Replace with
1715         small_memory_physical_max array.  Make that array static const.
1716         (v850_handle_memory_option): Take integer value of argument.  Take
1717         gcc_options pointer, option text and location.  Return void.
1718         Update for changes to small memory structures.
1719         (v850_handle_option): Access target_flags via opts pointer.  Don't
1720         assert that global structures are in use.  Update calls to
1721         v850_handle_memory_option.
1722         (v850_encode_data_area): Update references to small memory settings.
1723         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
1724         (enum small_memory_type): Move to v850-opts.h.
1725         * config/v850/v850.opt (config/v850/v850-opts.h): New
1726         HeaderInclude entry.
1727         (small_memory_max): New Variable entry.
1728         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
1729         (mtda, mzda): Likewise.
1730
1731 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1732
1733         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
1734         pointer.  Don't assert that global structures are in use.
1735
1736 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1737
1738         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
1739         via opts pointer.  Don't assert that global structures are in use.
1740
1741 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1742
1743         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
1744         (munix=93): Use Var.
1745         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
1746         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
1747         * config/pa/pa-opts.h: New.
1748         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
1749         (pa_handle_option): Don't assert that global structures are in
1750         use.  Access target_flags via opts pointer.  Don't handle
1751         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
1752         OPT_munix_98 here.
1753         (pa_option_override): Handle deferred OPT_mfixed_range_.
1754
1755 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1756
1757         * config/mn10300/mn10300-opts.h: New.
1758         * config/mn10300/mn10300.c (mn10300_processor,
1759         mn10300_tune_string): Remove.
1760         (mn10300_handle_option): Don't assert that global structures are
1761         in use.  Access mn10300_processor via opts pointer.  Don't handle
1762         OPT_mtune_ here.
1763         * config/mn10300/mn10300.h (enum processor_type): Move to
1764         mn10300-opts.h.
1765         (mn10300_processor): Remove.
1766         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
1767         HeaderInclude entry.
1768         (mn10300_processor): New Variable entry.
1769         (mtune=): Use Var.
1770
1771 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1772
1773         * config/microblaze/microblaze.c: Don't include opts.h.
1774         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
1775         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
1776         (mno-clearbss): Use Var and Warn.
1777
1778 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1779
1780         * config/m32r/m32r-opts.h: New.
1781         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
1782         (m32r_handle_option): Don't assert that global structures are in
1783         use.  Access target_flags and m32r_cache_flush_func via opts
1784         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
1785         OPT_mno_flush_trap here.
1786         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
1787         include of m32r-opts.h.
1788         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
1789         HeaderInclude entry.
1790         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
1791         (mmodel=): Use Enum and Var.
1792         (m32r_model): New Enum and EnumValue entries.
1793         (mno-flush-trap): Use Var.
1794         (msdata=): Use Enum and Var.
1795         (m32r_sdata): New Enum and EnumValue entries.
1796
1797 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1798
1799         * config/m32c/m32c.c: Don't include opts.h.
1800         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
1801         m32c_handle_option): Remove.
1802         (m32c_option_override): Check global_options_set.x_target_memregs
1803         instead of target_memregs_set.
1804         * config/m32c/m32c.h (target_memregs): Remove.
1805         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
1806         variable.
1807
1808 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1809
1810         * config/iq2000/iq2000-opts.h: New.
1811         * config/iq2000/iq2000.c: Don't include opts.h.
1812         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
1813         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
1814         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
1815         HeaderInclude entry.
1816         (iq2000_tune): New Variable entry.
1817         (march=): Add comment.  Use Enum.
1818         (iq2000_arch): New Enum and EnumValue entries.
1819         (mcpu=): Use Enum and Var.
1820         (iq2000_tune): New Enum and EnumValue entries.
1821
1822 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1823
1824         * config/ia64/ia64-opts.h: New.
1825         * config/ia64/ia64.c (ia64_tune): Remove.
1826         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
1827         here.  Use error_at.
1828         (ia64_option_override): Handle deferred OPT_mfixed_range_.
1829         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
1830         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
1831         HeaderInclude entry.
1832         (ia64_tune): New Variable entry.
1833         (mfixed-range=): Use Defer and Var.
1834         (mtune=): Use Enum and Var.
1835         (ia64_tune): New Enum and EnumValue entries.
1836
1837 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1838
1839         * config/frv/frv-opts.h: New.
1840         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
1841         frv-opts.h.
1842         (frv_cpu_type): Remove.
1843         * config/frv/frv.c: Don't include opts.h.
1844         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
1845         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
1846         (frv_cpu_type): New Variable entry.
1847         (frv_cpu): New Enum and EnumValue entries.
1848
1849 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1850
1851         * config/cris/cris.c (cris_handle_option): Access target_flags via
1852         opts pointer.  Don't assert that global structures are in use.
1853         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
1854         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
1855
1856 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1857
1858         * config/bfin/bfin-opts.h: New.
1859         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
1860         bfin_si_revision, bfin_workarounds): Remove.
1861         (bfin_cpus): Make static const.
1862         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
1863         not bfin_lib_id_given.
1864         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
1865         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
1866         pointer. Use error_at.  Don't assert that global structures are in use.
1867         * config/bfin/bfin.h: Include bfin-opts.h.
1868         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
1869         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
1870         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
1871         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
1872         entries.
1873
1874 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1875
1876         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
1877         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
1878         or -msoft-float here.
1879         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
1880         -msoft-float and -mhard-float.
1881         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
1882         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
1883         msoft-float.
1884         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
1885         -msoft-float.
1886         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
1887         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
1888         not mhard-float.
1889         (LIBGCC_SPEC): Don't handle -msoft-float.
1890         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
1891         -mhard-float.
1892         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
1893         msoft-float.
1894         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
1895         -mfloat-abi=*, not -msoft-float and -mhard-float.
1896         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
1897         -msoft-float.
1898         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
1899         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
1900         mhard-float and msoft-float.
1901         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
1902         mfloat-abi=soft in comments, not mhard-float and msoft-float.
1903         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
1904         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
1905         mhard-float.
1906         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
1907         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
1908         msoft-float.
1909         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
1910         not mhard-float.
1911         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
1912         not msoft-float.
1913
1914 2011-03-22  Richard Henderson  <rth@redhat.com>
1915
1916         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
1917         TARGET_ABI_WINDOWS_NT.
1918         (alpha_output_function_end_prologue): Likewise.
1919         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
1920         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
1921         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
1922         (trap, *movsi_nt_vms): Likewise.
1923         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
1924         (*tablejump_osf_nt_internal): Remove.
1925         * config/alpha/predicates.md (input_operand): Only test Pmode.
1926
1927 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1928
1929         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
1930         via opts pointer.  Use error_at.  Don't assert that global
1931         structures are in use.
1932
1933 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1934
1935         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
1936         (ix86_handle_option): Access ix86_isa_flags and
1937         ix86_isa_flags_explicit via opts pointer.  Don't assert that
1938         global structures are in use.
1939         (ix86_function_specific_save, ix86_function_specific_restore):
1940         Update ix86_isa_flags_explicit field name.
1941         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1942         (ix86_isa_flags_explicit): Rename TargetSave entry to
1943         x_ix86_isa_flags_explicit.
1944
1945 2011-03-22  Richard Henderson  <rth@redhat.com>
1946
1947         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
1948         (alpha_option_override, direct_return): Likewise.
1949         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
1950         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
1951         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
1952         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
1953         (alpha_expand_epilogue, alpha_end_function): Likewise.
1954         (alpha_init_libfuncs): Likewise.
1955         (struct machine_function): Remove unicosmk members.
1956         (print_operand) ['t']: Remove.
1957         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
1958         unicosmk_output_module_name, unicosmk_output_common,
1959         current_section_align, unicosmk_output_text_section_asm_op,
1960         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
1961         unicosmk_section_type_flags, unicosmk_unique_section,
1962         unicosmk_asm_named_section, unicosmk_insert_attributes,
1963         unicosmk_output_align, unicosmk_defer_case_vector,
1964         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
1965         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
1966         unicosmk_output_ssib, unicosmk_add_call_info_word,
1967         unicosmk_extern_head, unicosmk_output_default_externs,
1968         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
1969         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
1970         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
1971         * config/alpha/alpha-protos.h: Update.
1972         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
1973         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
1974         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
1975         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
1976         (*mulsi_se, mulvsi3): Likewise.
1977         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
1978         (*divmodsi_internal, call, call_value, realign): Likewise.
1979         (moddi3, umoddi3): Likewise; remove duplicate expander.
1980         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
1981         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
1982         (*movdi_nofix): Remove r/U alternative.
1983         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
1984         * config/alpha/constraints.md ("U"): Remove.
1985         * config/alpha/predicates.md (call_operand"): Don't test
1986         TARGET_ABI_UNICOSMK.
1987
1988 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
1989
1990         * target.def (handle_option): Take gcc_options and
1991         cl_decoded_option pointers and location_t.
1992         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
1993         * doc/tm.texi: Regenerate.
1994         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
1995         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
1996         * lto-opts.c (lto_reissue_options): Generate option structure for
1997         targetm.handle_option call.
1998         * opts.c (target_handle_option): Update call to
1999         targetm.handle_option.  Remove assertions about values now passed
2000         down to hook.
2001         * targhooks.c (default_target_handle_option): New.
2002         * targhooks.h (default_target_handle_option): Declare.
2003         * config/alpha/alpha.c: Include opts.h.
2004         (alpha_handle_option): Update to new hook interface.
2005         * config/arm/arm.c: Include opts.h.
2006         (arm_handle_option): Update to new hook interface.
2007         * config/arm/t-arm (arm.o): Update dependencies.
2008         * config/bfin/bfin.c: Include opts.h.
2009         (bfin_handle_option): Update to new hook interface.
2010         * config/cris/cris.c: Include opts.h.
2011         (cris_handle_option): Update to new hook interface.
2012         * config/frv/frv.c: Include opts.h.
2013         (frv_handle_option): Update to new hook interface.
2014         * config/i386/i386.c: Include opts.h.
2015         (ix86_handle_option): Update to new hook interface.
2016         (ix86_valid_target_attribute_inner_p): Generate option structure
2017         for call to ix86_handle_option.
2018         * config/i386/t-i386 (i386.o): Update dependencies.
2019         * config/ia64/ia64.c: Include opts.h.
2020         (ia64_handle_option): Update to new hook interface.
2021         * config/ia64/t-ia64 (ia64.o): Update dependencies.
2022         * config/iq2000/iq2000.c: Include opts.h.
2023         (iq2000_handle_option): Update to new hook interface.
2024         * config/m32c/m32c.c: Include opts.h.
2025         (m32c_handle_option): Update to new hook interface.
2026         * config/m32r/m32r.c: Include opts.h.
2027         (m32r_handle_option): Update to new hook interface.
2028         * config/m68k/m68k.c: Include opts.h.
2029         (m68k_handle_option): Update to new hook interface.
2030         * config/mep/mep.c: Include opts.h.
2031         (mep_handle_option): Update to new hook interface.
2032         * config/microblaze/microblaze.c: Include opts.h.
2033         (microblaze_handle_option): Update to new hook interface.
2034         * config/mips/mips.c: Include opts.h.
2035         (mips_handle_option): Update to new hook interface.
2036         * config/mn10300/mn10300.c: Include opts.h.
2037         (mn10300_handle_option): Update to new hook interface.
2038         * config/pa/pa.c: Include opts.h.
2039         (pa_handle_option): Update to new hook interface.
2040         * config/pdp11/pdp11.c: Include opts.h.
2041         (pdp11_handle_option): Update to new hook interface.
2042         * config/rs6000/rs6000.c: Include opts.h.
2043         (rs6000_handle_option): Update to new hook interface.
2044         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
2045         * config/rx/rx.c: Include opts.h.
2046         (rx_handle_option): Update to new hook interface.
2047         * config/s390/s390.c: Include opts.h.
2048         (s390_handle_option): Update to new hook interface.
2049         * config/score/score.c: Include opts.h.
2050         (score_handle_option): Update to new hook interface.
2051         * config/sh/sh.c: Include opts.h.
2052         (sh_handle_option): Update to new hook interface.
2053         * config/sparc/sparc.c: Include opts.h.
2054         (sparc_handle_option): Update to new hook interface.
2055         * config/v850/v850.c: Include opts.h.
2056         (v850_handle_option): Update to new hook interface.
2057
2058 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2059
2060         * gcc.c (driver_unknown_option_callback): Only permit and save
2061         unknown -Wno- options.
2062         (driver_wrong_lang_callback): Save options directly instead of via
2063         driver_unknown_option_callback.
2064
2065 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
2066
2067         * combine.c (simplify_set): Try harder to find the best CC mode when
2068         simplifying a nested COMPARE on the RHS.
2069
2070 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2071
2072         * config/alpha/gnu.h: Remove.
2073         * config/arc: Remove directory.
2074         * config/arm/netbsd.h: Remove.
2075         * config/arm/t-pe: Remove.
2076         * config/crx: Remove directory.
2077         * config/i386/netbsd.h: Remove.
2078         * config/m68hc11: Remove directory.
2079         * config/m68k/uclinux-oldabi.h: Remove.
2080         * config/mcore/mcore-pe.h: Remove.
2081         * config/mcore/t-mcore-pe: Remove.
2082         * config/netbsd-aout.h: Remove.
2083         * config/rs6000/gnu.h: Remove.
2084         * config/sh/sh-symbian.h: Remove.
2085         * config/sh/symbian-base.c: Remove.
2086         * config/sh/symbian-c.c: Remove.
2087         * config/sh/symbian-cxx.c: Remove.
2088         * config/sh/symbian-post.h: Remove.
2089         * config/sh/symbian-pre.h: Remove.
2090         * config/sh/t-symbian: Remove.
2091         * config/svr3.h: Remove.
2092         * config/vax/netbsd.h: Remove.
2093         * config.build: Don't handle i[34567]86-*-pe.
2094         * config.gcc: Remove handling of deprecations for most deprecated
2095         targets.
2096         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
2097         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
2098         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
2099         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
2100         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
2101         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
2102         Remove cases.
2103         * config.host: Don't handle i[34567]86-*-pe.
2104         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
2105         (ASM_SPEC32): Don't handle -mcall-gnu.
2106         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
2107         -mcall-gnu.
2108         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
2109         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
2110         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
2111         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
2112         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
2113         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
2114         conditional on SYMBIAN.
2115         * configure.ac: Don't handle powerpc*-*-gnu*.
2116         * configure: Regenerate.
2117         * doc/extend.texi (interrupt attribute): Don't mention CRX.
2118         * doc/install-old.texi (m6811, m6812): Don't mention.
2119         * doc/install.texi (arc-*-elf*): Don't document multilib option.
2120         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
2121         (m68k-uclinuxoldabi): Don't mention.
2122         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
2123         Remove.
2124         (-mcall-gnu): Remove.
2125         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
2126         families): Remove constraint documentation.
2127
2128 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
2129
2130         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
2131         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
2132         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
2133
2134 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
2135
2136         * config/avr/avr-protos.h (expand_epilogue): Change prototype
2137         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
2138         * config/avr/avr.c (init_cumulative_args)
2139         (avr_function_arg_advance): Use it.
2140         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
2141         sibcall epilogues.
2142         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
2143         (avr_function_ok_for_sibcall): ...this new function.
2144         (avr_lookup_function_attribute1): New static Function.
2145         (avr_naked_function_p, interrupt_function_p)
2146         (signal_function_p, avr_OS_task_function_p)
2147         (avr_OS_main_function_p): Use it.
2148         * config/avr/avr.md ("sibcall", "sibcall_value")
2149         ("sibcall_epilogue"): New expander.
2150         ("*call_insn", "*call_value_insn"): New insn.
2151         ("call_insn", "call_value_insn"): Remove
2152         ("call", "call_value", "epilogue"): Change expander to handle
2153         sibling calls.
2154
2155 2011-03-21  Nick Clifton  <nickc@redhat.com>
2156
2157         * doc/invoke.texi (Overall Options): Move closing brace to end of
2158         options list.
2159         (Optimization Options): Add missing @gol.
2160         (Directory Options): Likewise.
2161         (i386 and x86-64 Options): Likewise.
2162         (RS6000 and PowerPC Options): Likewise.
2163         (i386 and x86-64 Windows Options): Likewise.
2164         (V850 Options): Add text missing from descriptions.
2165
2166 2011-03-22  Richard Henderson  <rth@redhat.com>
2167
2168         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
2169         (avr_incoming_return_addr_rtx): New.
2170         (emit_push_byte): New.
2171         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
2172         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
2173         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
2174         (emit_pop_byte): New.
2175         (expand_epilogue): Use it.  Pop frame pointer by bytes.
2176         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
2177         (INCOMING_RETURN_ADDR_RTX): New.
2178         (INCOMING_FRAME_SP_OFFSET): New.
2179         (ARG_POINTER_CFA_OFFSET): New.
2180         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
2181         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
2182         (pophi): Remove.
2183
2184         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
2185
2186 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2187
2188         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
2189         (FUNCTION_ARG_ADVANCE): Likewise.
2190         * tm.texi.in: Change references to them to hook references.
2191         * tm.texi: Regenerate.
2192         * targhooks.c (default_function_arg): Eliminate check for target
2193         macro.
2194         (default_function_incoming_arg): Likewise.
2195         (default_function_arg_advance): Likewise.
2196         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
2197         (function_arg_advance): Likewise.
2198         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
2199
2200 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2201
2202         * tree.c (build_call_1): New function.
2203         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
2204
2205 2011-03-22  Richard Guenther  <rguenther@suse.de>
2206
2207         PR tree-optimization/48228
2208         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
2209         for single-arg PHIs.
2210
2211 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
2212
2213         PR rtl-optimization/48143
2214         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
2215         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
2216         sse2_cvtps2pd): Likewise.
2217
2218 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2219
2220         * recog.c (canonicalize_change_group): Use validate_unshare_change.
2221
2222 2011-03-22  Richard Guenther  <rguenther@suse.de>
2223
2224         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
2225         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
2226         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
2227         and REALIGN_LOAD_EXPR.
2228         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
2229         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
2230         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
2231         DOT_PROD_EXPR case ...
2232         (expand_expr_real_2): ... here.
2233         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
2234         and REALIGN_LOAD_EXPR.
2235         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
2236         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
2237         (vect_create_epilog_for_reduction): Likewise.
2238         (vectorizable_reduction): Likewise.
2239         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
2240         * tree-vect-stmts.c (vectorizable_load): Likewise.
2241
2242 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
2243
2244         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
2245
2246 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2247
2248         * config/s390/s390.c (s390_delegitimize_address): Fix offset
2249         handling for PLTOFF/GOTOFF.
2250
2251 2011-03-22  Nick Clifton  <nickc@redhat.com>
2252
2253         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
2254         trailing backslash from the end of the macro definition.
2255
2256 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2257
2258         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
2259         and PLT unspecs.
2260
2261 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
2262
2263         * expr.h (prepare_operand): Move to...
2264         * optabs.h (prepare_operand): ...here and change the insn code
2265         parameter from "int" to "enum insn_code".
2266         (insn_operand_matches): Declare.
2267         * expr.c (init_expr_target): Use insn_operand_matches.
2268         (compress_float_constant): Likewise.
2269         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
2270         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
2271         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
2272         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
2273         Likewise.
2274         (gen_cond_trap): Likewise.
2275         (prepare_operand): Likewise.  Change icode to an insn_code.
2276         (insn_operand_matches): New function.
2277         * reload.c (find_reloads_address_1): Use insn_operand_matches.
2278         * reload1.c (gen_reload): Likewise.
2279         * targhooks.c (default_secondary_reload): Likewise.
2280
2281 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
2282
2283         * config/alpha/alpha.md (unspec): New define_c_enum.
2284         (unspecv): Ditto.
2285
2286 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
2287
2288         PR debug/48214
2289         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
2290         between a call and its CALL_ARG_LOCATION note.
2291
2292 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
2293
2294         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
2295
2296 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
2297
2298         PR c/42544
2299         PR c/48197
2300         * c-common.c (shorten_compare): If primopN is first sign-extended
2301         to opN and then zero-extended to result type, set primopN to opN.
2302
2303 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
2304
2305         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
2306         for barrier handlers.
2307
2308 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
2309
2310         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
2311         UNSPEC constants to be in the unspec enumeration, and redefine
2312         all UNSPECV constants to be in the unspecv enumeration, so that
2313         dumps print which unspec/unspec_volatile this is.
2314         * config/rs6000/vector.md (UNSPEC_*): Ditto.
2315         * config/rs6000/paired.md (UNSPEC_*): Ditto.
2316         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
2317         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
2318         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
2319
2320         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
2321         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
2322         UNSPECV_LWSYNC, since these are used as unspec_volatile.
2323         * config/rs6000/sync.md (isync, lwsync): Ditto.
2324
2325 2011-03-21  Richard Guenther  <rguenther@suse.de>
2326
2327         * params.def (lto-min-partition): Fix typo.
2328
2329 2011-03-21  Richard Guenther  <rguenther@suse.de>
2330
2331         PR c/47939
2332         * c-decl.c (grokdeclarator): Drop to the main variant only
2333         for array types.  Drop flag_gen_aux_info check.
2334
2335 2011-03-21  Richard Guenther  <rguenther@suse.de>
2336
2337         PR translation/47911
2338         * params.def (lto-partitions): Fix typo.
2339         (lto-min-partition): Fix wording.
2340
2341 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
2342
2343         * config/rs6000/t-freebsd: Remove duplication from file.
2344
2345 2011-03-21  Richard Guenther  <rguenther@suse.de>
2346
2347         PR middle-end/47661
2348         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
2349
2350 2011-03-21  Richard Guenther  <rguenther@suse.de>
2351
2352         PR lto/48210
2353         * params.def (lto-partitions): Require at least 1 partition.
2354
2355 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2356
2357         * gthr-solaris.h: Remove.
2358         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
2359         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
2360         (LIB_SPEC): Likewise.
2361         * config/sol2.opt (threads): Remove.
2362         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
2363         (sparc*-*-solaris2*): Likewise.
2364         * configure.ac (enable_threads): Enable solaris support.
2365         * configure: Regenerate.
2366         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
2367         * doc/install.texi (Configuration, --enable-threads=lib): Remove
2368         solaris.
2369
2370 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2371
2372         * config.gcc: Obsolete *-*-solaris2.8*.
2373         * doc/install.texi (Specific, *-*-solaris2*): Document it.
2374
2375 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2376
2377         PR bootstrap/48135
2378         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
2379         reference.  Solaris 8 perl works.
2380
2381 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2382
2383         PR bootstrap/48135
2384         * doc/install.texi (Prerequisites): Move jar etc. up.
2385         Explain support library version requirements.
2386
2387 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2388
2389         PR bootstrap/48135
2390         * doc/install.texi (Prerequisites): Move Perl to build
2391         requirements.  Always necessary on Solaris 2 with Sun ld.
2392
2393 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2394
2395         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
2396         binutils 2.21.
2397         (Specific, i?86-*-solaris2.[89]): Likewise.
2398         (Specific, i?86-*-solaris2.10): Likewise.
2399         (Specific, mips-sgi-irix6): Likewise.
2400         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
2401         Update for binutils 2.21.
2402
2403 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2404
2405         * configure.ac (gcc_cv_lto_plugin): Fix typo.
2406         Allow -fuse-linker-plugin for non-default plugin linker.
2407         * configure: Regenerate.
2408
2409 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2410
2411         PR bootstrap/48167
2412         * gengtype.c (files_rules): Added rule for cp/parser.h.
2413
2414 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
2415
2416         PR target/48213
2417         * config/s390/s390.c (s390_delegitimize_address): Don't call
2418         lowpart_subreg if orig_x has BLKmode.
2419
2420 2011-03-21  Kai Tietz  <ktietz@redhat.com>
2421
2422         PR target/12171
2423         * doc/plugins.texi: Adjust documentation for plugin register_callback.
2424         * tree.h (attribute_spec): Add new member affects_type_identity.
2425         * attribs.c (empty_attribute_table): Adjust attribute_spec
2426         initializers.
2427         * config/alpha/alpha.c: Likewise.
2428         * config/arc/arc.c: Likewise.
2429         * config/arm/arm.c: Likewise.
2430         * config/avr/avr.c: Likewise.
2431         * config/bfin/bfin.c: Likewise.
2432         * config/crx/crx.c: Likewise.
2433         * config/darwin.h: Likewise.
2434         * config/h8300/h8300.c: Likewise.
2435         * config/i386/cygming.h: Likewise.
2436         * config/i386/i386.c: Likewise.
2437         * config/ia64/ia64.c: Likewise.
2438         * config/m32c/m32c.c: Likewise.
2439         * config/m32r/m32r.c: Likewise.
2440         * config/m68hc11/m68hc11.c: Likewise.
2441         * config/m68k/m68k.c: Likewise.
2442         * config/mcore/mcore.c: Likewise.
2443         * config/mep/mep.c: Likewise.
2444         * config/microblaze/microblaze.c: Likewise.
2445         * config/mips/mips.c: Likewise.
2446         * config/rs6000/rs6000.c: Likewise.
2447         * config/rx/rx.c: Likewise.
2448         * config/sh/sh.c: Likewise.
2449         * config/sol2.h: Likewise.
2450         * config/sparc/sparc.c: Likewise.
2451         * config/spu/spu.c: Likewise.
2452         * config/stormy16/stormy16.c: Likewise.
2453         * config/v850/v850.c: Likewise.
2454
2455 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
2456
2457         * simplify-rtx.c (simplify_binary_operation_1): Handle
2458         (xor (and A B) C) case when B and C are both constants.
2459
2460 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
2461
2462         * tree-dfa.c (add_referenced_var): Fix typo in comment.
2463
2464 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
2465
2466         PR bootstrap/48168
2467         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
2468
2469 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
2470
2471         PR rtl-optimization/48156
2472         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
2473         assume df and df_lr are not NULL.
2474
2475 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2476
2477         PR debug/48023
2478         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
2479         between a call and its CALL_ARG_LOCATION note.
2480
2481 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
2482
2483         PR debug/48178
2484         * config/sh/sh.c (find_barrier): Don't emit a constant pool
2485         between a call and its corresponding CALL_ARG_LOCATION note.
2486
2487 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
2488
2489         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
2490         instead of loop. Use HARD_REGISTER_NUM_P predicate.
2491         * haifa-sched.c (setup_ref_regs): Ditto.
2492         * caller-save.c (add_used_regs_1): Ditto.
2493         * dse.c (look_for_hardregs): Ditto.
2494         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
2495         * sched-rgn.c (check_live_1): Ditto.
2496
2497 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
2498
2499         * c-decl.c (diagnose_mismatched_decls): Give an error for
2500         redefining a typedef with variably modified type.
2501
2502 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
2503
2504         * c-decl.c (grokfield): Don't allow typedefs for structures or
2505         unions with no tag by default.
2506         * doc/extend.texi (Unnamed Fields): Update.
2507
2508 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
2509
2510         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
2511         Rewrite using indirect functions.
2512         (lwp_slwpcb): Ditto.
2513         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
2514         (avx_vinsertf128<mode>): Ditto.
2515
2516 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2517
2518         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
2519         unspecs.
2520
2521 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2522
2523         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
2524         splitting between a call and its corresponding CALL_ARG_LOCATION note.
2525
2526 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2527
2528         PR rtl-optimization/48170
2529         * gcse.c (hoist_code): Remove bogus asserts.
2530
2531 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
2532
2533         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
2534         computation for prologue/epilogue.
2535
2536 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2537
2538         * Makefile.in (check-consistency): Remove.
2539
2540 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
2541
2542         PR debug/48176
2543         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
2544         arange_table_in_use is 0, but either text_section_used or
2545         cold_text_section_used is true.  Don't call it if
2546         !info_section_emitted.
2547
2548 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
2549
2550         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
2551         FUNCTION_VALUE_REGNO_P): Remove.
2552         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
2553         Remove.
2554         * config/avr/avr.c (avr_ret_register): Make static inline.
2555         (avr_function_value_regno_p): New function.
2556         (avr_libcall_value): Make static. Add 'func' argument.
2557         (avr_function_value): Make static. Rename 'func' argument to
2558         'fn_decl_or_type', forward it to avr_libcall_value. Call
2559         avr_ret_register function instead of RET_REGISTER macro.
2560         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
2561
2562 2011-03-18  Jason Merrill  <jason@redhat.com>
2563
2564         PR c++/23372
2565         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
2566
2567 2011-03-18  Richard Guenther  <rguenther@suse.de>
2568
2569         * doc/install.texi (--enable-gold): Remove.
2570         (--with-plugin-ld): Document.
2571         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
2572
2573 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
2574
2575         PR middle-end/47790
2576         * expr.c (optimize_bitfield_assignment_op): Revamp to work
2577         again after expansion changes.
2578
2579 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
2580
2581         * combine.c (try_combine): Do simplification only call of
2582         subst() on i2 even when i1 is present. Update comments.
2583
2584 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2585
2586         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
2587         and UNSPEC_PCREL_SYMOFF.
2588
2589 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2590
2591         * config/s390/s390.md: Use define_c_enum for the unspec constant
2592         definitions.
2593
2594 2011-03-18  Richard Henderson  <rth@redhat.com>
2595             Jakub Jelinek  <jakub@redhat.com>
2596
2597         PR bootstrap/48161
2598         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
2599         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
2600
2601 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
2602
2603         PR middle-end/47725
2604         * combine.c (cant_combine_insn_p): Don't check zero/sign
2605         extended hard registers.
2606
2607 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
2608
2609         PR middle-end/47725
2610         * combine.c (cant_combine_insn_p): Check zero/sign extended
2611         hard registers.
2612
2613 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
2614
2615         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2616         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
2617         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
2618         Change return type to bool.
2619         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2620
2621 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
2622
2623         PR debug/48163
2624         * var-tracking.c (prepare_call_arguments): If CALL target
2625         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
2626         pc instead of looking it up using cselib_lookup and use
2627         Pmode for it if x has VOIDmode.
2628         * dwarf2out.c (gen_subprogram_die): If also both first and
2629         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
2630
2631         PR debug/48163
2632         * function.c (assign_parms): For data.passed_pointer parms
2633         use MEM of data.entry_parm instead of data.entry_parm itself
2634         as DECL_INCOMING_RTL.
2635         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
2636         also when passed and declared mode is the same, DECL_RTL
2637         is a MEM with pseudo as address and DECL_INCOMING_RTL is
2638         a MEM too.
2639
2640 2011-03-16  Jeff Law  <law@redhat.com>
2641
2642         PR rtl-optimization/37273
2643         * ira-costs.c (scan_one_insn): Detect constants living in memory and
2644         handle them like argument loads from stack slots.  Do not double
2645         count memory for memory constants and argument loads from stack slots.
2646
2647 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
2648
2649         PR debug/48160
2650         * var-tracking.c (prepare_call_arguments): Check SUBREG.
2651
2652 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
2653
2654         PR target/48171
2655         * config/i386/i386.opt: Add Save to -mavx and -mfma.
2656
2657 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
2658
2659         PR bootstrap/48153
2660         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
2661         if dwarf_strict.
2662         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
2663         Clear call_arg_locations and call_arg_loc_last always.
2664
2665         PR middle-end/48152
2666         * var-tracking.c (prepare_call_arguments): If argument needs to be
2667         passed by reference, adjust argtype and mode.
2668
2669 2011-03-17  Richard Guenther  <rguenther@suse.de>
2670
2671         PR middle-end/48134
2672         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
2673         a value make sure to fold the statement.
2674
2675 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
2676
2677         PR target/43872
2678         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
2679         return condition with !cfun->calls_alloca.
2680
2681 2011-03-17  Richard Guenther  <rguenther@suse.de>
2682
2683         PR bootstrap/48148
2684         * lto-cgraph.c (input_overwrite_node): Clear the abstract
2685         origin for decls in other ltrans units.
2686         (input_varpool_node): Likewise.
2687
2688 2011-03-17  Richard Guenther  <rguenther@suse.de>
2689
2690         PR middle-end/48165
2691         * tree-object-size.c (compute_object_offset): Properly return
2692         the offset operand of MEM_REFs as sizetype.
2693
2694 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
2695
2696         PR rtl-optimization/48141
2697         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
2698         * dse.c: Include params.h.
2699         (active_local_stores_len): New variable.
2700         (add_wild_read, dse_step1): Clear it when setting active_local_stores
2701         to NULL.
2702         (record_store, check_mem_read_rtx): Decrease it when removing
2703         from the chain.
2704         (scan_insn): Likewise.  Increase it when adding to chain, if it
2705         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
2706         set active_local_stores to NULL before the addition.
2707         * Makefile.in (dse.o): Depend on $(PARAMS_H).
2708
2709         PR rtl-optimization/48141
2710         * dse.c (record_store): If no positions are needed in an insn
2711         that cannot be deleted, at least unchain it from active_local_stores.
2712
2713 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
2714
2715         PR debug/47510
2716         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
2717         (lookup_type_die_strip_naming_typedef): ... here.
2718         (get_context_die): Use it.
2719         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
2720         the anonymous struct named by the naming typedef.
2721
2722 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
2723
2724         PR target/48154
2725         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
2726         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
2727
2728 2011-03-16  Jeff Law  <law@redhat.com>
2729
2730         * tree-vrp.c (identify_jump_threads): Slightly simplify type
2731         check for operands of conditional.  Allow type to be a pointer.
2732
2733 2011-03-16  Richard Guenther  <rguenther@suse.de>
2734
2735         PR tree-optimization/48149
2736         * fold-const.c (fold_binary_loc): Fold
2737         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
2738
2739 2011-03-16  Richard Guenther  <rguenther@suse.de>
2740
2741         PR tree-optimization/26134
2742         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
2743         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
2744         (non_rewritable_mem_ref_base): Handle complex type component
2745         accesses, constrain offsets for vector and complex extracts
2746         more properly.
2747
2748 2011-03-16  Richard Guenther  <rguenther@suse.de>
2749
2750         PR tree-optimization/48146
2751         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
2752         operands avoiding the need for renaming.
2753
2754 2011-03-16  Richard Guenther  <rguenther@suse.de>
2755
2756         * gimple-fold.c (maybe_fold_reference): Open-code relevant
2757         constant folding.  Move MEM_REF canonicalization first.
2758         Rely on fold_const_aggregate_ref for initializer folding.
2759         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
2760
2761 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
2762
2763         PR middle-end/48136
2764         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
2765         arg0/arg1 or their arguments are always fold converted to matching
2766         types.
2767
2768         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
2769         to nargs.
2770
2771 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2772
2773         PR lto/46944
2774         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
2775         Handle in-tree gold.
2776         (ld_vers): Extract binutils version for gold.
2777         (gcc_cv_ld_hidden): Handle gold here.
2778         (gcc_cv_lto_plugin): Determine level of linker plugin support.
2779         * configure: Regenerate.
2780         * config.in: Regenerate.
2781         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
2782         -fuse-linker-plugin otherwise.
2783         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
2784         (LINK_COMMAND_SPEC): Use it.
2785         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
2786
2787 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
2788
2789         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
2790         * calls.c: Remove debug.h include.
2791         (emit_call_1): Don't call virtual_call_token debug hook.
2792         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
2793         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
2794         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
2795         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
2796         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
2797         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
2798         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
2799         dwarf2out_virtual_call): Remove.
2800         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
2801         copy_call_info and virtual_call hooks.
2802         (dwarf2out_init): Don't initialize vcall_insn_table,
2803         debug_dcall_section and debug_vcall_section.
2804         (prune_unused_types): Don't mark nodes from dcall_table.
2805         (dwarf2out_finish): Don't output dcall or vcall tables.
2806         * final.c (final_scan_insn): Don't call direct_call or
2807         virtual_call debug hooks.
2808         * debug.h (struct gcc_debug_hooks): Remove direct_call,
2809         virtual_call_token, copy_call_info and virtual_call hooks.
2810         (debug_nothing_uid): Remove prototype.
2811         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
2812         copy_call_info and virtual_call hooks.
2813         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2814         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
2815         * debug.c (do_nothing_debug_hooks): Likewise.
2816         (debug_nothing_uid): Remove.
2817         * doc/invoke.texi (-fenable-icf-debug): Remove.
2818         * common.opt (-fenable-icf-debug): Likewise.
2819
2820         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
2821         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
2822         call's MEM.  Handle functions returning aggregate through a hidden
2823         first pointer.  For virtual calls add clobbered pc to call arguments
2824         chain.
2825         * dwarf2out.c (gen_subprogram_die): Emit
2826         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
2827         can't be emitted.
2828
2829         PR debug/45882
2830         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
2831         * rtl.h (ENTRY_VALUE_EXP): Define.
2832         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
2833         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
2834         * print-rtl.c (print_rtx): Likewise.
2835         * gengtype.c (adjust_field_rtx_def): Likewise.
2836         * var-tracking.c (vt_add_function_parameter): Adjust
2837         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
2838         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
2839         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
2840         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
2841         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
2842
2843         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
2844         Call var_location debug hook even on CALL_INSNs.
2845         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
2846         * rtl.def (ENTRY_VALUE): New.
2847         * dwarf2out.c: Include cfglayout.h.
2848         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2849         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
2850         (struct call_arg_loc_node): New type.
2851         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
2852         tail_call_site_count): New variables.
2853         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
2854         DW_TAG_GNU_call_site_parameter.
2855         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
2856         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
2857         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
2858         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
2859         and DW_AT_GNU_all_source_call_sites.
2860         (mem_loc_descriptor): Handle ENTRY_VALUE.
2861         (add_src_coords_attributes): Don't add enything if
2862         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
2863         (dwarf2out_abstract_function): Save and clear call_arg_location,
2864         call_site_count and tail_call_site_count around dwarf2out_decl call.
2865         (gen_call_site_die): New function.
2866         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
2867         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
2868         (dwarf2out_function_decl): Clear call_arg_locations,
2869         call_arg_loc_last, set call_site_count and tail_call_site_count
2870         to -1 and free block_map.
2871         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
2872         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
2873         followed by any real instructions.
2874         (dwarf2out_begin_function): Set call_site_count and
2875         tail_call_site_count to 0.
2876         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
2877         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
2878         attempt to force a DIE for it and worst case remove the attribute.
2879         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
2880         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
2881         the decl itself.
2882         * var-tracking.c: Include tm_p.h.
2883         (vt_stack_adjustments): For calls call note_register_arguments.
2884         (argument_reg_set): New variable.
2885         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
2886         ensure the VALUE is resolved.
2887         (call_arguments): New variable.
2888         (prepare_call_arguments): New function.
2889         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
2890         (struct expand_loc_callback_data): Add ignore_cur_loc field.
2891         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
2892         always use the best expression.
2893         (vt_expand_loc): Add ignore_cur_loc argument.
2894         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
2895         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
2896         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
2897         note for all calls.
2898         (vt_add_function_parameter): Use cselib_lookup_from_insn.
2899         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
2900         argument.  Don't call cselib_preserve_only_values and
2901         cselib_reset_table.
2902         (note_register_arguments): New function.
2903         (vt_initialize): Compute argument_reg_set.  Call
2904         vt_add_function_parameters before processing basic blocks instead of
2905         afterwards.  For calls call prepare_call_arguments before calling
2906         cselib_process_insn.
2907         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
2908         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
2909         (var-tracking.o): Depend on $(TM_P_H).
2910         * cfglayout.h (insn_scope): New prototype.
2911         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
2912         * cfglayout.c (insn_scope): No longer static.
2913         * insn-notes.def (CALL_ARG_LOCATION): New.
2914         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
2915         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
2916         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
2917         nothing for DECL_EXTERNAL BLOCK_VARS.
2918
2919 2011-03-16  Alan Modra  <amodra@gmail.com>
2920
2921         PR target/45844
2922         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
2923         create invalid offset address for vsx splat insn.
2924         * config/rs6000/predicates.md (splat_input_operand): New.
2925         * config/rs6000/vsx.md (vsx_splat_*): Use it.
2926
2927 2011-03-15  Xinliang David Li  <davidxl@google.com>
2928
2929         PR c/47837
2930         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
2931         (normalize_preds): New function.
2932         (is_use_properly_guarded): Normalize def predicates.
2933
2934 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2935
2936         PR target/46788
2937         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
2938         in the output template.
2939
2940 2011-03-15  Richard Guenther  <rguenther@suse.de>
2941
2942         PR middle-end/47650
2943         * tree-pretty-print.c (dump_function_declaration): Properly
2944         dump unprototyped and varargs function types.
2945
2946 2011-03-15  Richard Guenther  <rguenther@suse.de>
2947
2948         PR tree-optimization/13954
2949         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
2950         and friends.
2951
2952 2011-03-15  Richard Guenther  <rguenther@suse.de>
2953
2954         PR tree-optimization/48037
2955         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
2956         selects into BIT_FIELD_REFs.
2957         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
2958         vector select.
2959
2960 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
2961
2962         PR tree-optimization/48129
2963         * builtins.c (fold_builtin_snprintf): Convert to type of
2964         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
2965         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
2966
2967 2011-03-15  Richard Guenther  <rguenther@suse.de>
2968
2969         PR tree-optimization/41490
2970         * tree-ssa-dce.c (propagate_necessity): Handle returns without
2971         value but with VUSE.
2972         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
2973         return statements.
2974         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
2975         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
2976         * tree-tailcall.c (find_tail_calls): Ignore returns.
2977
2978 2011-03-15  Richard Guenther  <rguenther@suse.de>
2979
2980         PR middle-end/48031
2981         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
2982         or variable-indexed array accesses when in gimple form.
2983
2984 2011-03-15  Richard Guenther  <rguenther@suse.de>
2985
2986         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
2987
2988 2011-03-15  Alan Modra  <amodra@gmail.com>
2989
2990         PR target/48032
2991         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
2992         presume symbol_refs without a symbol_ref_decl are suitably
2993         aligned, nor other trees we may see here.  Handle anchor symbols.
2994         (legitimate_constant_pool_address_p): Comment.  Add mode param.
2995         Check cmodel=medium addresses.  Adjust all calls.
2996         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
2997         creating cmodel=medium optimized access to locals.
2998         * config/rs6000/constraints.md (R): Pass QImode to
2999         legitimate_constant_pool_address_p.
3000         * config/rs6000/predicates.md (input_operand): Pass mode to
3001         legitimate_constant_pool_address_p.
3002         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
3003         Update prototype.
3004
3005 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
3006
3007         PR target/48053
3008         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
3009         64-bit constants being loaded into registers other than GPRs such
3010         as loading 0 into a VSX register.
3011
3012 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3013
3014         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
3015
3016 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
3017
3018         PR middle-end/47917
3019         * builtins.c (fold_builtin_snprintf): New function.
3020         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
3021         (fold_builtin_4): Likewise.
3022
3023         PR middle-end/38878
3024         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
3025         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
3026         and C - X == X also strip nops from +/-/p+ operand.
3027         When optimizing -X == C, fold C to arg0's type.
3028
3029         PR debug/47946
3030         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
3031         emit it as add_AT_int instead of add_AT_unsigned.
3032
3033 2011-03-14  Tom Tromey  <tromey@redhat.com>
3034
3035         * unwind-dw2.c: Include sys/sdt.h if it exists.
3036         (_Unwind_DebugHook): Use STAP_PROBE2.
3037         * config.in, configure: Rebuild.
3038         * configure.ac: Check for sys/sdt.h.
3039
3040 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
3041
3042         * config/i386/i386.md (ROUND_FLOOR): New constant.
3043         (ROUND_CEIL): Ditto.
3044         (ROUND_TRUNC): Ditto.
3045         (ROUND_MXCSR): Ditto.
3046         (ROUND_NO_EXC): Ditto.
3047         (rint<mode>2): Use new defines instead of numerical constants.
3048         (floor<mode>2): Ditto.
3049         (ceil<mode>2): Ditto.
3050         (btrunc<mode>2): Ditto.
3051         * config/i386/i386-builtin-types.def: Define ROUND function type
3052         aliases.
3053         * config/i386/i386.c (enum ix86_builtins): Add
3054         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
3055         (struct builtin_description): Add
3056         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
3057         (ix86_expand_sse_round): New static function.
3058         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
3059         function types.
3060         (ix86_builtin_vectorized_function): Handle
3061         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
3062
3063 2011-03-14  Tom Tromey  <tromey@redhat.com>
3064
3065         * c-parser.c (c_parser_asm_string_literal): Clear
3066         warn_overlength_strings.
3067
3068 2011-03-14  Tom Tromey  <tromey@redhat.com>
3069
3070         * c-parser.c (disable_extension_diagnostics): Save
3071         warn_overlength_strings.
3072         (restore_extension_diagnostics): Restore warn_overlength_strings.
3073
3074 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
3075
3076         * BASE-VER: Change to 4.7.0.
3077
3078 2011-03-14  Richard Guenther  <rguenther@suse.de>
3079
3080         PR middle-end/48098
3081         * tree.c (build_vector_from_val): Adjust assert to requirements
3082         and reality.
3083
3084 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
3085
3086         PR bootstrap/48102
3087         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
3088
3089 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
3090
3091         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
3092         terms of target_flags_explicit. Adjust copyright year.
3093
3094         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
3095         * config/rs6000/t-freebsd: New file. Add override for
3096         LIB2FUNCS_EXTRA.
3097
3098 2011-03-13  Chris Demetriou  <cgd@google.com>
3099
3100         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
3101         (-fno-diagnostics-show-option): this, to reflect current default.
3102         (-Werror=): Update text about -fno-diagnostics-show-option.
3103
3104 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
3105
3106         PR target/48053
3107         * config/rs6000/predicates.md (easy_vector_constant_add_self,
3108         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
3109         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
3110         mode is not V2DImode or V2DFmode.
3111         (vspltis_constant): Do not handle V2DImode and V2DFmode.
3112         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
3113         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
3114         registers to 0.
3115         (movdi_internal64): Likewise.
3116
3117 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
3118
3119         PR tree-optimization/47127
3120         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
3121         parameter.
3122         (set_cloog_options): Same.
3123         (scop_to_clast): Same.
3124         (print_clast_stmt): Do not call cloog_state_malloc and
3125         cloog_state_free.
3126         (print_generated_program): Same.
3127         (gloog): Same.
3128         * graphite-clast-to-gimple.h (cloog_state): Declared.
3129         (scop_to_clast): Adjust declaration.
3130         * graphite.c (cloog_state): Defined here.
3131         (graphite_initialize): Call cloog_state_malloc.
3132         (graphite_finalize): Call cloog_state_free.
3133
3134 2011-03-11  Jason Merrill  <jason@redhat.com>
3135
3136         * attribs.c (lookup_attribute_spec): Take const_tree.
3137         * tree.h: Adjust.
3138
3139 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
3140
3141         * config/sparc/sparc.c (sparc_option_override): Use
3142         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
3143
3144 2011-03-11  Richard Guenther  <rguenther@suse.de>
3145
3146         PR tree-optimization/48067
3147         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
3148         multiplication result will be only used once on the target
3149         stmt.
3150
3151 2011-03-11  Richard Guenther  <rguenther@suse.de>
3152
3153         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
3154
3155 2011-03-11  Richard Guenther  <rguenther@suse.de>
3156
3157         PR lto/48073
3158         * tree.c (find_decls_types_r): Do not walk types only reachable
3159         from IDENTIFIER_NODEs.
3160
3161 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
3162
3163         PR middle-end/48044
3164         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
3165         all vnode->force_output nodes as needed.
3166
3167 2011-03-11  Jason Merrill  <jason@redhat.com>
3168
3169         PR c++/48069
3170         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
3171         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
3172
3173 2011-03-11  Martin Jambor  <mjambor@suse.cz>
3174
3175         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
3176         cgraph_node.
3177
3178 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
3179
3180         PR tree-optimization/48063
3181         * ipa-inline.c (cgraph_decide_inlining): Don't try to
3182         inline functions called once if !tree_can_inline_p (node->callers).
3183
3184 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
3185
3186         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
3187         extra_objs.
3188         * config/score/score3.c: Delete.
3189         * config/score/score3.h: Delete.
3190         * config/score/mul-div.S: Delete.
3191         * config/score/sfp-machine.h: Add new file.
3192         * config/score/constraints.md: Add new file.
3193         * config/score/t-score-softfp: Add new file.
3194         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
3195         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
3196         (score7_extra_constraint): Delete.
3197         (score7_option_override): Remove unused code.
3198         * config/score/score.c: Remove score3 and score5 define and code.
3199         * config/score/score.h: Remove score3 and score5 define and code.
3200         * config/score/score.md: Remove score3 template and unusual insn.
3201         * config/score/score.opt: Remove score3 and score5 options.
3202
3203 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3204
3205         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
3206         when _HPUX_SOURCE is defined.
3207         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
3208
3209 2011-03-10  Jason Merrill  <jason@redhat.com>
3210
3211         PR c++/48029
3212         * stor-layout.c (layout_type): Don't set structural equality
3213         on arrays of incomplete type.
3214         * tree.c (type_hash_eq): Handle comparing them properly.
3215
3216 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
3217
3218         PR debug/48043
3219         * config/s390/s390.c (s390_delegitimize_address): Make sure the
3220         result mode matches original rtl mode.
3221
3222 2011-03-10  Nick Clifton  <nickc@redhat.com>
3223
3224         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
3225         (andsi3, andsi3_flags): Fix timings for three operand alternative.
3226
3227 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
3228
3229         PR rtl-optimization/47866
3230         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
3231         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
3232         if target wasn't scalar.
3233         * function.c (assign_stack_temp_for_type): Assert that neither
3234         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
3235         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
3236         macro.
3237         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
3238
3239 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3240
3241         * config/s390/s390-protos.h (s390_label_align): New prototype.
3242         * config/s390/s390.c (s390_label_align): New function.
3243         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
3244
3245 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
3246
3247         PR target/47755
3248         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
3249         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
3250         (output_vec_const_move): Ditto.
3251
3252 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
3253
3254         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
3255         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
3256         * config/mips/mips.c (mips_preferred_reload_class): Make static.
3257         Change 'rclass' argument and result type to reg_class_t.
3258         (TARGET_PREFERRED_RELOAD_CLASS): Define.
3259
3260 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
3261
3262         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3263         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
3264         (TARGET_MEMORY_MOVE_COST): Define.
3265         (avr_register_move_cost, avr_memory_move_cost): New Functions.
3266
3267 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
3268
3269         PR debug/47881
3270         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
3271         removed anything.
3272
3273         PR tree-optimization/48022
3274         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
3275         for EQ/NE_EXPR.
3276
3277 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
3278
3279         PR debug/47991
3280         * var-tracking.c (find_use_val): Return NULL for
3281         cui->sets && cui->store_p BLKmode MEMs.
3282
3283 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
3284
3285         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
3286         Remove.
3287         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
3288         xstormy16_print_operand_address): Remove.
3289         * config/stormy16/stormy16.c (xstormy16_print_operand,
3290         xstormy16_print_operand_address): Make static.
3291         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3292
3293 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
3294
3295         PR target/47862
3296         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
3297         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
3298         before definition.
3299
3300 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
3301
3302         PR bootstrap/48000
3303         * cfgloopmanip.c (fix_bb_placements): Return immediately
3304         if FROM is BASE_LOOP's header.
3305
3306 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
3307
3308         * gimplify.c (gimplify_function_tree): Fix building calls
3309         to __builtin_return_address.
3310
3311 2011-03-07  Alan Modra  <amodra@gmail.com>
3312
3313         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
3314         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
3315         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
3316         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
3317         return_mode args.
3318         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
3319         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
3320         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
3321         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
3322         * config/rs6000/rs6000.c
3323         (rs6000_elf_end_indicate_exec_stack): Rename to..
3324         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
3325         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
3326         (rs6000_file_start): ..here.
3327         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
3328         file scope variables.
3329         (call_ABI_of_interest): New function.
3330         (init_cumulative_args): Set above vars when function return value
3331         is a float, vector, or small struct.
3332         (rs6000_function_arg_advance_1): Likewise for function args.
3333         (rs6000_va_start): Set rs6000_passes_float if variable arg function
3334         references float args.
3335
3336 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
3337
3338         * doc/cfg.texi: Remove "See" before @ref.
3339         * doc/invoke.texi: Likewise.
3340
3341 2011-03-05  Jason Merrill  <jason@redhat.com>
3342
3343         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
3344
3345 2011-03-05  Anthony Green  <green@moxielogic.com>
3346
3347         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
3348
3349 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
3350
3351         PR rtl-optimization/47899
3352         * cfgloopmanip.c (fix_bb_placements): Fix first argument
3353         to flow_loop_nested_p when moving the loop upward.
3354
3355 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
3356
3357         PR target/47719
3358         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
3359
3360 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
3361
3362         PR tree-optimization/47967
3363         * ipa-cp.c (build_const_val): Return NULL instead of creating
3364         VIEW_CONVERT_EXPR for mismatching sizes.
3365         (ipcp_create_replace_map): Return NULL if build_const_val failed.
3366         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
3367         give up on versioning.
3368
3369 2011-03-05  Alan Modra  <amodra@gmail.com>
3370
3371         PR target/47986
3372         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3373         full cmodel medium/large lo_sum + high addresses.
3374
3375 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3376
3377         * config/s390/s390.c (s390_decompose_address): Reject non-literal
3378         pool references in UNSPEC_LTREL_OFFSET.
3379
3380 2011-03-04  Jan Hubicka  <jh@suse.cz>
3381
3382         PR lto/47497
3383         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
3384         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
3385         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
3386         Add node pointers.
3387         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
3388         cgraph_add_thunk): Add node pointers.
3389         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
3390         associated to right node.
3391         (input_node): Update use of cgraph_same_body_alias
3392         and cgraph_add_thunk.
3393
3394 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
3395
3396         * config/i386/i386.opt (mprefer-avx128): New flag.
3397         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
3398         modes when the flag -mprefer-avx128 is on.
3399
3400 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
3401
3402         * dwarf2out.c (compare_loc_operands): Fix address handling.
3403
3404 2011-03-04  Alan Modra  <amodra@gmail.com>
3405
3406         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
3407
3408 2011-03-04  Richard Guenther  <rguenther@suse.de>
3409
3410         PR middle-end/47968
3411         * expmed.c (extract_bit_field_1): Prefer vector modes that
3412         vec_extract patterns can handle.
3413
3414 2011-03-04  Richard Guenther  <rguenther@suse.de>
3415
3416         PR middle-end/47975
3417         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
3418
3419 2011-03-04  Richard Henderson  <rth@redhat.com>
3420
3421         * explow.c (emit_stack_save): Remove 'after' parameter.
3422         (emit_stack_restore): Likewise.
3423         * expr.h: Update to match.
3424         * builtins.c, calls.c, stmt.c: Likewise.
3425         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
3426         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
3427         * function.c (expand_function_end): Insert the emit_stack_save
3428         sequence before parm_birth_insn instead of after.
3429
3430 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
3431
3432         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
3433         (ssse3_pmaddubsw128): Ditto.
3434         (ssse3_pmaddubsw): Ditto.
3435
3436 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
3437
3438         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
3439
3440 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
3441
3442         PR c/47963
3443         * gimplify.c (omp_add_variable): Only call omp_notice_variable
3444         on TYPE_SIZE_UNIT if it is a DECL.
3445
3446         PR debug/47283
3447         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
3448         first operand is not is_gimple_mem_ref_addr, try to fold it.
3449         If the operand still isn't is_gimple_mem_ref_addr, clear
3450         MEM_EXPR on op0.
3451
3452 2011-03-03  Richard Guenther  <rguenther@suse.de>
3453
3454         PR middle-end/47283
3455         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
3456         match comment.
3457         (refs_may_alias_p_1): For release branches return true if
3458         we are confused by our input.
3459
3460 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3461
3462         * config/s390/s390.c (s390_function_value): Rename to ...
3463         (s390_function_and_libcall_value): ... this.
3464         (s390_function_value): New function.
3465         (s390_libcall_value): New function.
3466         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
3467         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
3468         target macro definitions.
3469         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
3470
3471 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
3472
3473         * config/i386/freebsd64.h (CC1_SPEC): Define.
3474         * config/i386/linux64.h (CC1_SPEC): Define.
3475         * config/i386/x86-64.h (CC1_SPEC): Don't define.
3476
3477 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
3478
3479         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
3480         Remove.
3481         * config/stormy16/stormy16.c: Include reload.h.
3482         (xstormy16_memory_move_cost): New function.
3483         (TARGET_MEMORY_MOVE_COST): Define.
3484
3485 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
3486
3487         PR rtl-optimization/47925
3488         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
3489         with side effects.  Remove the more-specific check for volatile asms.
3490
3491 2011-03-02  Alan Modra  <amodra@gmail.com>
3492
3493         PR target/47935
3494         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
3495         toc relative addresses for valid offsets.
3496
3497 2011-03-01  Richard Guenther  <rguenther@suse.de>
3498
3499         PR tree-optimization/47890
3500         * tree-vect-loop.c (get_initial_def_for_induction): Set
3501         related stmt properly.
3502
3503 2011-03-01  Richard Guenther  <rguenther@suse.de>
3504
3505         PR lto/47924
3506         * lto-streamer.c (lto_record_common_node): Also register
3507         the canonical type.
3508
3509 2011-03-01  Richard Guenther  <rguenther@suse.de>
3510
3511         PR lto/46911
3512         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
3513         Do not stream DECL_ABSTRACT_ORIGIN.
3514         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
3515         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
3516         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3517         Do not stream DECL_ABSTRACT_ORIGIN.
3518         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
3519         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
3520
3521 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
3522
3523         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
3524         FUNCTION_VALUE_REGNO_P): Remove.
3525         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
3526         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
3527         Add 'outgoing' argument.
3528         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
3529         function.
3530         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3531         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3532
3533 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
3534
3535         PR debug/28047
3536         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
3537         (lookup_filename): Likewise.
3538         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
3539
3540 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
3541             Jakub Jelinek  <jakub@redhat.com>
3542
3543         PR middle-end/47893
3544         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
3545         (assign_stack_local_1): Change last argument type to int.
3546         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
3547         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
3548         don't record padding space into frame_space_list nor use those areas.
3549         (assign_stack_local): Adjust caller.
3550         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
3551         of assign_stack_local, pass 0 as last argument.
3552         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
3553         callers.
3554
3555 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
3556
3557         PR debug/47283
3558         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
3559         Use target address_mode and pointer_mode hooks instead of hardcoded
3560         Pmode and ptr_mode.  Handle some simple cases of extending if
3561         POINTERS_EXTEND_UNSIGNED < 0.
3562         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
3563         Call convert_debug_memory_address.
3564         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
3565         convert_debug_memory_address.
3566
3567         PR middle-end/46790
3568         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
3569         * configure: Regenerated.
3570         * config.in: Regenerated.
3571         * varasm.c (default_function_section): Return NULL
3572         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
3573
3574 2011-02-28  Martin Jambor  <mjambor@suse.cz>
3575
3576         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
3577         the description to match the printed values.
3578
3579 2011-02-28  Richard Guenther  <rguenther@suse.de>
3580
3581         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
3582         of the copied scope tree.
3583
3584 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3585
3586         * doc/extend.texi (Function Attributes): Avoid deeply (and
3587         wrongly) nested tables.
3588
3589 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
3590
3591         PR middle-end/47903
3592         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
3593         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
3594         r isn't op0 nor op1.
3595
3596 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
3597
3598         * config/avr/avr.md: Remove magic comment for emacs.
3599
3600 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
3601
3602         PR target/45261
3603         * config/avr/avr.c (avr_option_override): Use error on bad options.
3604         (avr_help): New function.
3605         (TARGET_HELP): Define.
3606
3607 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
3608
3609         PR target/42240
3610         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
3611         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
3612
3613 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
3614
3615         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
3616         (ARM Options): Ditto.
3617         (i386 and x86-64 Options): Ditto.
3618         (RX Options): Ditto.
3619         (SPARC Options): Ditto.
3620
3621 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
3622
3623         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
3624         FreeBSD 6 and later.  Generally use cpu generic.
3625
3626 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
3627
3628         * doc/cpp.texi: Update copyright years.
3629
3630 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
3631
3632         PR target/46898
3633         * config/lm32/lm32.md (ashrsi3): Added needed variable.
3634
3635 2011-02-25  Jon Beniston  <jon@beniston.com>
3636
3637         PR target/46898
3638         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
3639         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
3640         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
3641         (lm32_block_move_inline): Add type cast to remove warning.
3642         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
3643         (gen_int_relational): Move declarations to start of function.
3644
3645 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
3646
3647         PR tree-optimization/45470
3648         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
3649         can throw internally only.
3650         * tree-vect-stmts.c (vectorizable_call): Likewise.
3651
3652 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
3653
3654         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
3655         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
3656         * config/stormy16/stormy16-protos.h
3657         (xstormy16_preferred_reload_class): Remove.
3658         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
3659         static. Change 'rclass' argument and return type to reg_class_t.
3660         (TARGET_PREFERRED_RELOAD_CLASS,
3661         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3662
3663 2011-02-24  Richard Guenther  <rguenther@suse.de>
3664
3665         * lto-streamer-in.c (input_bb): Do not find referenced vars
3666         in debug statements.
3667
3668 2011-02-23  Jason Merrill  <jason@redhat.com>
3669
3670         * common.opt (fabi-version): Document v5 and v6.
3671
3672 2011-02-23  Richard Guenther  <rguenther@suse.de>
3673
3674         PR tree-optimization/47849
3675         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
3676
3677 2011-02-23  Jie Zhang  <jie@codesourcery.com>
3678
3679         * opts-common.c (decode_cmdline_option): Print empty string
3680         argument as "" in decoded->orig_option_with_args_text.
3681         * gcc.c (execute): Print empty string argument as ""
3682         in the verbose output.
3683         (do_spec_1): Keep empty string argument.
3684
3685 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
3686
3687         * config.gcc: Declare score-* and crx-* obsolete.
3688
3689 2011-02-23  Jie Zhang  <jie@codesourcery.com>
3690
3691         PR rtl-optimization/47763
3692         * web.c (web_main): Ignore naked clobber when replacing register.
3693
3694 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
3695
3696         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
3697         Remove.
3698
3699 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
3700
3701         PR doc/47848
3702         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
3703
3704 2011-02-22  Mike Stump  <mikestump@comcast.net>
3705
3706         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
3707         assembler.
3708         * configure: Regenerate.
3709
3710 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
3711
3712         PR rtl-optimization/46002
3713         * ira-color.c (update_copy_costs): Change class intersection
3714         test to reg_class_contents[] test of 'hard_regno'.
3715
3716 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
3717
3718         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
3719         than Driver option.
3720         * config/hpux11.opt (mt): Likewise.
3721         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
3722         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
3723         * config/vax/elf.opt (mno-asm-pic): Likewise.
3724         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
3725
3726 2011-02-21  Mike Stump  <mikestump@comcast.net>
3727
3728         PR target/47822
3729         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
3730         tree so we can get save the type.
3731         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
3732         for CFString instead of trying to use past the end of the builtins.
3733         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
3734         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
3735         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
3736         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
3737         Rename to darwin_builtin_cfstring.
3738         (darwin_init_cfstring_builtins): Return the built type.
3739
3740 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
3741
3742         PR target/47840
3743         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
3744         (_mm256_insert_epi64): Use _mm_insert_epi64.
3745
3746 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
3747
3748         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3749         * config/stormy16/stormy16-protos.h
3750         (xstormy16_mode_dependent_address_p): Remove.
3751         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
3752         Make static. Change return type to bool. Change argument type to
3753         const_rtx. Remove dead code.
3754         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3755
3756 2011-02-21  Richard Guenther  <rguenther@suse.de>
3757
3758         PR lto/47820
3759         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
3760         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
3761         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
3762         TUs context.
3763         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3764         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
3765
3766 2011-02-20  Richard Guenther  <rguenther@suse.de>
3767
3768         PR lto/47822
3769         * tree.c (free_lang_data_in_decl): Clean builtins from
3770         the TU decl BLOCK_VARS.
3771
3772 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
3773
3774         PR debug/47620
3775         PR debug/47630
3776         * haifa-sched.c (fix_tick_ready): Skip tick computation
3777         for debug insns.
3778
3779 2011-02-19  Richard Guenther  <rguenther@suse.de>
3780
3781         PR lto/47647
3782         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
3783         Remove lazy BLOCK_VARS streaming.
3784         (lto_input_ts_block_tree_pointers): Likewise.
3785         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
3786
3787 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
3788
3789         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
3790
3791 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
3792
3793         * config/i386/biarch32.h, config/i386/mach.h,
3794         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
3795
3796 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
3797
3798         PR target/47800
3799         * config/i386/i386.md (peephole2 for shift and plus): Use
3800         operands[1] original mode in the first insn.
3801
3802 2011-02-18  Mike Stump  <mikestump@comcast.net>
3803
3804         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
3805
3806 2011-02-18  Jan Hubicka  <jh@suse.cz>
3807
3808         PR middle-end/47788
3809         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
3810         to zero when the function is not inlinable at all.
3811
3812 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3813
3814         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
3815         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
3816         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
3817         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
3818         * config/pa/t-pa64: Likewise.
3819         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
3820
3821 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
3822
3823         PR driver/47787
3824         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
3825
3826 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3827
3828         PR target/47792
3829         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
3830
3831 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
3832
3833         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
3834         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
3835         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
3836         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
3837         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
3838         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
3839         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
3840         m32r_load_postinc_p, m32r_store_preinc_predec_p,
3841         m32r_legitimate_address_p): New functions.
3842         * config/m32r/constraints.md (constraint "S"): Don't use
3843         STORE_PREINC_PREDEC_P.
3844         (constraint "U"): Don't use LOAD_POSTINC_P.
3845
3846 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
3847
3848         PR rtl-optimization/46178
3849         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
3850         compute ira_hard_regno_cover_class[].
3851
3852 2011-02-18  Richard Guenther  <rguenther@suse.de>
3853
3854         PR lto/47798
3855         * lto-streamer.h (lto_global_var_decls): Declare.
3856         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
3857         statics for global var processing.
3858
3859 2011-02-18  Richard Guenther  <rguenther@suse.de>
3860
3861         PR tree-optimization/47737
3862         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
3863         edge dominance check.
3864
3865 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
3866
3867         PR debug/47780
3868         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
3869         avoid invalid rtx sharing.
3870
3871 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
3872
3873         * doc/cpp.texi (Obsolete Features): Add background on the
3874         origin of assertions.
3875
3876 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
3877
3878         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
3879         objc_abi == 2.
3880         * config/darwin.c (output_objc_section_asm_op): Added support for
3881         ABI v1 and v2.
3882         (is_objc_metadata): New.
3883         (darwin_objc2_section): New.
3884         (darwin_objc1_section): New.
3885         (machopic_select_section): Added support for ABI v1 and v2.
3886         (darwin_emit_objc_zeroed): New.
3887         (darwin_output_aligned_bss): Detect objc metadata and treat it
3888         appropriately.
3889         (darwin_asm_output_aligned_decl_common): Same.
3890         (darwin_asm_output_aligned_decl_local): Same.
3891         * config/darwin-sections.def: Updated for ABI v1 and v2.
3892         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
3893         compiling Objective-C code for the NeXT runtime, default to using
3894         ABI version 0 for 32-bit, and version 2 for 64-bit.
3895
3896 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
3897
3898         * common.opt (optimize_fast): New Variable.
3899         * opts.c (default_options_optimization): Use opts->x_optimize_fast
3900         instead of local variable ofast.
3901
3902 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
3903
3904         * doc/invoke.texi (fobjc-abi-version): Documented.
3905         (fobjc-nilcheck): Documented.
3906         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
3907         version.
3908
3909 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
3910
3911         PR driver/47390
3912         * common.opt (export-dynamic): New Driver option.
3913         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
3914
3915 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
3916
3917         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
3918
3919 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
3920             Jan Hubicka  <jh@suse.cz>
3921
3922         PR debug/47106
3923         PR debug/47402
3924         * cfgexpand.c (account_used_vars_for_block): Remove.
3925         (estimated_stack_frame_size): Use referenced vars.
3926         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
3927         that were referenced in the original function.  Test src_fn
3928         rather than cfun.  Drop redundant get_var_ann.
3929         (setup_one_parameter): Drop redundant get_var_ann.
3930         (declare_return_variable): Likewise.
3931         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
3932         (copy_arguments_for_versioning): Drop redundant get_var_ann.
3933         * ipa-inline.c (compute_inline_parameters): Do not compute
3934         disregard_inline_limits here.
3935         (compute_inlinable_for_current, pass_inlinable): New.
3936         (pass_inline_parameters): Require PROP_referenced_vars.
3937         * cgraphunit.c (cgraph_process_new_functions): Don't run
3938         compute_inline_parameters explicitly unless function is in SSA form.
3939         (cgraph_analyze_function): Set .disregard_inline_limits.
3940         * tree-sra.c (convert_callers): Compute inliner parameters
3941         only for functions already in SSA form.
3942
3943 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
3944
3945         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
3946         -mlittle-endian-data.
3947
3948 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
3949
3950         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
3951         -mno-fpu, not -fpu and -no-fpu.
3952         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
3953         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
3954
3955 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
3956
3957         PR target/43653
3958         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
3959         input reload with PLUS RTX.
3960
3961 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
3962
3963         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
3964         of InverseVar(MDMX).
3965
3966 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
3967
3968         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
3969         --m4-340.
3970
3971 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
3972
3973         * config/mn10300/mn10300.opt (mno-crt0): New.
3974
3975 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
3976
3977         * config/m68k/uclinux.opt (static-libc): New Driver option.
3978
3979 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
3980
3981         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
3982
3983 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
3984
3985         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
3986         %{muser-extend-enabled}.
3987
3988 2011-02-16  Richard Guenther  <rguenther@suse.de>
3989
3990         PR tree-optimization/47738
3991         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
3992         the TODO from tree_predictive_commoning.
3993
3994 2011-02-15  Jeff Law  <law@redhat.com>
3995
3996         Revert
3997         2011-01-25  Jeff Law  <law@redhat.com>
3998
3999         PR rtl-optimization/37273
4000         * ira-costs.c (scan_one_insn): Detect constants living in memory and
4001         handle them like argument loads from stack slots.  Do not double
4002         count memory for memory constants and argument loads from stack slots.
4003
4004 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
4005
4006         PR middle-end/47725
4007         * combine.c (cant_combine_insn_p): Revert the last change.
4008
4009 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
4010
4011         PR target/47755
4012         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
4013         mode for vector constants.  Remove code that checks for TImode.
4014
4015 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
4016
4017         PR debug/47106
4018         PR debug/47402
4019         * cgraph.h (compute_inline_parameters): Return void.
4020         * ipa-inline.c (compute_inline_parameters): Adjust.
4021
4022 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
4023
4024         PR debug/47106
4025         PR debug/47402
4026         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
4027         rather than decl.
4028         * cfgexpand.c (estimated_stack_frame_size): Likewise.
4029         * ipa-inline.c (compute_inline_parameters): Adjust.
4030
4031 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
4032
4033         PR debug/47106
4034         PR debug/47402
4035         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
4036         Adjust all users.  Pass FN to...
4037         * tree-flow-inline.h (first_referenced_var): ... this.  Add
4038         fn argument.
4039         * ipa-struct-reorg.c: Adjust.
4040         * tree-dfa.c: Adjust.
4041         * tree-into-ssa.c: Adjust.
4042         * tree-sra.c: Adjust.
4043         * tree-ssa-alias.c: Adjust.
4044         * tree-ssa-live.c: Adjust.
4045         * tree-ssa.c: Adjust.
4046         * tree-ssanames.c: Adjust.
4047         * tree-tailcall.c: Adjust.
4048
4049 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
4050
4051         PR debug/47106
4052         PR debug/47402
4053         * tree-flow.h (referenced_var_lookup): Add fn parameter.
4054         Adjust all callers.
4055         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
4056         * tree-flow-inline.h: Adjust.
4057         * gimple-pretty-print.c: Adjust.
4058         * tree-into-ssa.c: Adjust.
4059         * tree-ssa.c: Adjust.
4060         * cfgexpand.c: Adjust.
4061
4062 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
4063
4064         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
4065         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4066         (EXTRA_CONSTRAINT): Delete.
4067         * config/iq2000/constraints.md: New file.
4068         * config/iq2000/iq2000.md: Include it.
4069         (define_insn ""): Delete.
4070         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
4071         unsupported constraint letters from patterns.
4072         (call_value, call_value_internal1): Likewise.
4073         (call_value_multiple_internal1): Likewise.
4074
4075 2011-02-15  Nick Clifton  <nickc@redhat.com>
4076
4077         * config/mn10300/mn10300.c: Include tm-constrs.h.
4078         (struct liw_data): New data structure describing an LIW candidate
4079         instruction.
4080         (extract_bundle): Use struct liw_data.  Allow small integer
4081         operands for some instructions.
4082         (check_liw_constraints): Use struct liw_data.  Remove swapped
4083         parameter.  Add comments describing the checks.  Fix bug when
4084         assigning the source of liw1 to the source of liw2.
4085         (liw_candidate): Delete.  Code moved into extract_bundle.
4086         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
4087         before swapping.
4088         * config/mn10300/predicates.md (liw_operand): New predicate.
4089         Allows registers and small integer constants.
4090         * config/mn10300/constraints.md (O): New constraint.  Accetps
4091         integers in the range -8 to +7 inclusive.
4092         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
4093         for moving a small integer into a register.  Give this alternative
4094         LIW attributes.
4095         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
4096         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
4097         using the J,K,L and M constraints,
4098         (liw): Remove SI mode on second operands to allow for HI and QI
4099         mode values.
4100         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
4101         instruction.
4102
4103 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
4104
4105         PR middle-end/47725
4106         * combine.c (cant_combine_insn_p): Check zero/sign extended
4107         hard registers.
4108
4109 2011-02-15  Richard Guenther  <rguenther@suse.de>
4110
4111         PR tree-optimization/47743
4112         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
4113         for a non-type-compatible VN lookup bail out.
4114
4115 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
4116
4117         * config/fr30/constraints.md: New file.
4118         * config/fr30/fr30.md: Include it.
4119         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
4120         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4121         (EXTRA_CONSTRAINT): Delete.
4122
4123 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
4124
4125         * config/frv/constraints.md: New file.
4126         * config/frv/predicates.md: Include it.
4127         * config/frv/frv.c (reg_class_from_letter): Delete.
4128         (frv_option_override): Don't initialize it.
4129         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
4130         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
4131         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
4132         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
4133         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
4134         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4135         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
4136         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
4137         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
4138         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
4139         (REG_CLASS_FROM_CONSTRAINT): Delete.
4140
4141 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
4142
4143         PR middle-end/47581
4144         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
4145         if frame size is 0 in a leaf function.
4146
4147 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4148
4149         PR pch/14940
4150         * config/alpha/host-osf.c: New file.
4151         * config/alpha/x-osf: New file.
4152         * config.host (alpha*-dec-osf*): Use it.
4153
4154 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
4155
4156         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
4157         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
4158         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
4159         (rx_mode_dependent_address_p): ...this. Make static. Change argument
4160         type to const_rtx.
4161         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
4162
4163 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
4164
4165         * config/stormy16/constraints.md: New file.
4166         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
4167         Use satisfies_constraint_Q and satisfies_constraint_R.
4168         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
4169         Delete.
4170         (xstormy16_legitiamte_address_p): Declare.
4171         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
4172         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4173         (EXTRA_CONSTRAINT): Delete.
4174         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4175         Un-staticize.
4176         (xstormy16_extra_constraint_p): Delete.
4177
4178 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
4179
4180         PR tree-optimization/46494
4181         * loop-unroll.c (split_edge_and_insert): Adjust comment.
4182         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
4183         (pass_rtl_loop_done): Add TODO_verify_flow.
4184         * fwprop.c (pass_rtl_fwprop): Likewise.
4185         * modulo-sched.c (pass_sms): Likewise.
4186         * tree-ssa-dom.c (pass_dominator): Likewise.
4187         * tree-ssa-loop-ch.c (pass_ch): Likewise.
4188         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
4189         (pass_tree_loop_done): Likewise.
4190         * tree-ssa-pre.c (execute_pre): Likewise.
4191         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4192         * tree-ssa-sink.c (pass_sink_code): Likewise.
4193         * tree-vrp.c (pass_vrp): Likewise.
4194
4195 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
4196
4197         * config/v850/constraints.md: New file.
4198         * config/v850/v850.md: Include it.
4199         * config/v850/predicates.md (reg_or_0_operand): Use
4200         satisfies_constraint_G.
4201         (special_symbolref_operand): Use satisfies_constraint_K.
4202         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
4203         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
4204         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
4205         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
4206         (EXTRA_CONSTRAINT): Delete.
4207         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
4208         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
4209         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
4210
4211 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
4212
4213         PR target/47696
4214         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
4215         description.
4216
4217 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
4218
4219         * config/mcore/constraints.md: New file.
4220         * config/mcore/mcore.md: Include it.
4221         * config/mcore/mcore.c (reg_class_from_letter): Delete.
4222         * config/mcore/mcore.h (reg_class_from_letter): Delete.
4223         (REG_CLASS_FROM_LETTER): Delete.
4224         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
4225         insn_const_int_ok_for_constraint.
4226         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
4227         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
4228         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4229         (EXTRA_CONSTRAINT): Delete.
4230
4231 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4232
4233         PR ada/41929
4234         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
4235         (IS_SIGHANDLER): Define.
4236         (sparc64_is_sighandler): New function, split off from
4237         sparc64_fallback_frame_state.
4238         (sparc_is_sighandler): New function, split off from
4239         sparc_fallback_frame_state.
4240         (sparc64_fallback_frame_state): Merge with ...
4241         (sparc_fallback_frame_state): ... this into ...
4242         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
4243         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
4244         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
4245         stack instead of hardcoded offsets.
4246
4247 2011-02-14  Andriy Gapon  <avg@freebsd.org>
4248
4249         PR target/45808
4250         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
4251
4252 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4253
4254         * configure: Regenerate.
4255
4256 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
4257
4258         PR driver/45731
4259         * gcc.c (asm_options): Correct spec matching --target-help.
4260
4261 2011-02-12  Martin Jambor  <mjambor@suse.cz>
4262
4263         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
4264         to gimple call error.
4265
4266 2011-02-12  Mike Stump  <mikestump@comcast.net>
4267
4268         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
4269         comments in backslash regions.
4270
4271 2011-02-12  Mike Stump  <mikestump@comcast.net>
4272             Jakub Jelinek  <jakub@redhat.com>
4273             Iain Sandoe  <iains@gcc.gnu.org>
4274
4275         PR target/47324
4276         * dwarf2out.c (output_cfa_loc): When required, apply the
4277         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
4278         (output_loc_sequence): Likewise.
4279         (output_loc_operands_raw): Likewise.
4280         (output_loc_sequence_raw): Likewise.
4281         (output_cfa_loc): Likewise.
4282         (output_loc_list): Suppress register number adjustment when
4283         calling output_loc_sequence()
4284         (output_die): Likewise.
4285
4286 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
4287
4288         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
4289         Remove macros.
4290         * config/xtensa/xtensa.c (xtensa_register_move_cost,
4291         xtensa_memory_move_cost): New functions.
4292         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
4293
4294 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
4295
4296         PR lto/47225
4297         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
4298         in the current directory.
4299         * configure: Rebuilt.
4300
4301 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
4302
4303         * config/darwin.c (darwin_override_options): Add a hunk missed
4304         from the commit of r168571.  Trim comment line lengths and
4305         correct indents of the preceding block.
4306
4307 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
4308
4309         * gcc.c (driver_handle_option): Concatenate the argument to -F with
4310         the switch.
4311
4312 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
4313
4314         * common.opt (nostartfiles): New Driver option.
4315
4316 2011-02-11  Xinliang David Li  <davidxl@google.com>
4317
4318         PR tree-optimization/47707
4319         * tree-chrec.c (convert_affine_scev): Keep type precision.
4320
4321 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
4322
4323         PR tree-optimization/47420
4324         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
4325
4326 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
4327
4328         PR rtl-optimization/47614
4329         * rtl.h (check_for_inc_dec): Declare.
4330         * dse.c (check_for_inc_dec): Externalize...
4331         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
4332         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
4333
4334 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
4335
4336         PR driver/47678
4337         * gcc.c (main): Do not compile inputs if there were errors in
4338         option handling.
4339         * opts-common.c (read_cmdline_option): Check for wrong language
4340         after other error checks.
4341
4342 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
4343
4344         * cgraph.c: Fix comment typos.
4345         * cgraph.h: Likewise.
4346         * cgraphunit.c: Likewise.
4347         * ipa-cp.c: Likewise.
4348         * ipa-inline.c: Likewise.
4349         * ipa-prop.c: Likewise.
4350         * ipa-pure-const.c: Likewise.
4351         * ipa-ref.c: Likewise.
4352         * ipa-reference.c: Likewise.
4353
4354 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
4355
4356         PR debug/47684
4357         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
4358
4359 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4360
4361         PR testsuite/47400
4362         * doc/sourcebuild.texi (Require Support): Document
4363         dg-require-ascii-locale.
4364
4365 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
4366
4367         * doc/lto.texi (Write summary): Fix missing parentheses.
4368
4369 2011-02-10  DJ Delorie  <dj@redhat.com>
4370
4371         * config/m32c/m32c.c (m32c_option_override): Disable
4372         -fcombine-stack-adjustments until flag value tracking and compare
4373         optimization can be rewritten.
4374
4375 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
4376
4377         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
4378         PROCESSOR_POWER7.
4379         (PROCESSOR_DEFAULT64): Likewise.
4380
4381 2011-02-10  Richard Henderson  <rth@redhat.com>
4382
4383         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
4384         change from 2011-02-03.
4385         * config/rx/rx.c (flags_from_code): Likewise.
4386         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
4387         is valid, n/pz otherwise.
4388         (rx_select_cc_mode): Return CCmode if Y is not zero.
4389
4390 2011-02-10  Richard Guenther  <rguenther@suse.de>
4391
4392         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
4393
4394 2011-02-10  Richard Guenther  <rguenther@suse.de>
4395
4396         PR tree-optimization/47677
4397         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
4398
4399 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
4400
4401         PR target/47665
4402         * combine.c (make_compound_operation): Only change shifts into
4403         multiplication for SCALAR_INT_MODE_P.
4404
4405 2011-02-10  Jie Zhang  <jie@codesourcery.com>
4406
4407         PR testsuite/47622
4408         Revert
4409         2011-02-05  Jie Zhang  <jie@codesourcery.com>
4410         PR debug/42631
4411         * web.c (entry_register): Don't clobber the number of the
4412         first uninitialized reference in used[].
4413
4414 2011-02-09  Richard Guenther  <rguenther@suse.de>
4415
4416         PR tree-optimization/47664
4417         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
4418         all edges again.
4419
4420 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
4421
4422         PR target/46481
4423         PR target/47032
4424         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
4425         PROCESSOR_POWER7.
4426         (PROCESSOR_DEFAULT64): Same.
4427         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
4428
4429 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4430
4431         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
4432
4433 2011-02-09  Martin Jambor  <mjambor@suse.cz>
4434
4435         PR middle-end/45505
4436         * tree-sra.c (struct access): New flags grp_scalar_read and
4437         grp_scalar_write.  Changed description of assignment read and write
4438         flags.
4439         (dump_access): Dump new flags, reorder all of them.
4440         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
4441         to detect multiple scalar reads.
4442         (analyze_access_subtree): Use the new scalar read write flags instead
4443         of the old flags.  Adjusted comments.
4444
4445 2011-02-08  DJ Delorie  <dj@redhat.com>
4446
4447         PR target/47548
4448         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
4449         patterns.
4450
4451 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4452
4453         * config/m68k/uclinux.opt: New.
4454         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
4455
4456 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4457
4458         * config/cris/elf.opt (sim): New Driver option.
4459
4460 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4461
4462         * config/xtensa/elf.opt: New.
4463         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
4464
4465 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4466
4467         * config/vax/elf.opt: New.
4468         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
4469
4470 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4471
4472         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
4473
4474 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4475
4476         * config/gnu-user.opt: New.
4477         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
4478         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
4479         *-*-uclinux*): Use gnu-user.opt.
4480
4481 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
4482
4483         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
4484         * config/i386/gnu.h (CPP_SPEC): Likewise.
4485
4486 2011-02-08  Ian Lance Taylor  <iant@google.com>
4487
4488         * common.opt (fcx-limited-range): Add SetByCombined flag.
4489         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
4490         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
4491         (fassociative-math, freciprocal-math): Likewise.
4492         (funsafe-math-optimizations): Likewise.
4493         * opth-gen.awk: Handle SetByCombined.
4494         * optc-gen.awk: Likewise.
4495         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
4496         (set_unsafe_math_optimizations_flags): Likewise.
4497         * doc/options.texi (Option properties): Document SetByCombined.
4498
4499 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4500
4501         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
4502         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
4503         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
4504         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
4505         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
4506
4507 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
4508
4509         PR tree-optimization/46834
4510         PR tree-optimization/46994
4511         PR tree-optimization/46995
4512         * graphite-sese-to-poly.c (used_outside_reduction): New.
4513         (detect_commutative_reduction): Call used_outside_reduction.
4514         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
4515         translate_scalar_reduction_to_array only when at least one
4516         loop-phi/close-phi tuple has been detected.
4517
4518 2011-02-08  Richard Guenther  <rguenther@suse.de>
4519
4520         PR middle-end/47639
4521         * tree-vect-generic.c (expand_vector_operations_1): Update
4522         stmts here ...
4523         (expand_vector_operations): ... not here.  Cleanup EH info
4524         and the CFG if required.
4525
4526 2011-02-08  Richard Guenther  <rguenther@suse.de>
4527
4528         PR tree-optimization/47641
4529         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
4530         require type compatibility.
4531
4532 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4533
4534         * gimple-low.c (lower_function_body): Don't remove the location of
4535         the return statement here.
4536         (lower_gimple_return): Do it here instead but only if the return
4537         statement is actually used twice.
4538
4539 2011-02-08  Richard Guenther  <rguenther@suse.de>
4540
4541         PR tree-optimization/47632
4542         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
4543         unused up_to_stmt parameter, return whether cfg-cleanup is
4544         necessary, remove EH info properly.
4545         (forward_propagate_into_gimple_cond): Adjust caller.
4546         (forward_propagate_into_cond): Likewise.
4547         (forward_propagate_comparison): Likewise.
4548         (tree_ssa_forward_propagate_single_use_vars): Make
4549         forward_propagate_comparison case similar to the two others.
4550
4551 2011-02-08  Nick Clifton  <nickc@redhat.com>
4552
4553         * config/mn10300/mn10300.opt (mliw): New command line option.
4554         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
4555         (liw_bundling): New automaton.
4556         (liw): New attribute.
4557         (liw_op): New attribute.
4558         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
4559         (movsi_internal): Add LIW attributes.
4560         (andsi3): Likewise.
4561         (iorsi3): Likewise.
4562         (xorsi3): Likewise.
4563         (addsi3): Separate register and immediate alternatives.
4564         Add LIW attributes.
4565         (subsi3): Likewise.
4566         (cmpsi): Likewise.
4567         (aslsi3): Likewise.
4568         (lshrsi3): Likewise.
4569         (ashrsi3): Likewise.
4570         (liw): New pattern.
4571         * config/mn10300/mn10300.c (liw_op_names): New
4572         (mn10300_print_operand): Handle 'W' operand descriptor.
4573         (extract_bundle): New function.
4574         (check_liw_constraints): New function.
4575         (liw_candidate): New function.
4576         (mn10300_bundle_liw): New function.
4577         (mn10300_reorg): New function.
4578         (TARGET_MACHINE_DEPENDENT_REORG): Define.
4579         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
4580         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
4581         __LIW__ or __NO_LIW__.
4582         * doc/invoke.texi: Describe the -mliw command line option.
4583
4584 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4585
4586         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
4587         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
4588         pthread_mutex_unlock): Remove.
4589         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
4590         * config/pa/t-pa64: Likewise.
4591         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
4592         shared libc if not linking against libpthread.
4593         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
4594
4595 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
4596
4597         PR target/47558
4598         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
4599         on 10.6 and later to ensure that we always use the unwinder from
4600         the system.  Only add -no_compact_unwind when tarteting darwin
4601         10.6 or later.
4602
4603 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
4604
4605         PR target/46997
4606         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
4607         (vec_interleave_lowv2sf): Ditto.
4608         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
4609         (vec_extract_oddv2sf): Ditto.
4610
4611 2011-02-07  Mike Stump  <mikestump@comcast.net>
4612
4613         PR target/42333
4614         Add __ieee_divdc3 entry point.
4615         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
4616         entry point.
4617         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
4618         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
4619         * config/darwin.c (darwin_rename_builtins): Add.
4620         * config/darwin-protos.h (darwin_rename_builtins): Add.
4621
4622 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
4623
4624         PR target/47636
4625         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
4626         for the condition.
4627
4628 2011-02-07  Mike Stump  <mikestump@comcast.net>
4629
4630         * config/darwin.opt (mmacosx-version-min): Update default OS version.
4631
4632 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
4633
4634         PR target/47534
4635         * config/avr/libgcc.S (exit): Move .endfunc
4636
4637 2011-02-07  Richard Guenther  <rguenther@suse.de>
4638
4639         PR tree-optimization/47615
4640         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
4641         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
4642         (run_scc_vn): Initialize it.
4643         (visit_reference_op_load): Use it.
4644         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
4645
4646 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4647
4648         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
4649         DImode trapping arithmetic libfuncs.
4650
4651 2011-02-07  Richard Guenther  <rguenther@suse.de>
4652
4653         PR tree-optimization/47621
4654         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
4655         two duplicates ...
4656         (execute_update_addresses_taken): ... here.  Make it more
4657         conservative in what we accept.
4658
4659 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
4660
4661         * config/sparc/freebsd.h (ASM_SPEC): Define.
4662         * config/sparc/vxworks.h (ASM_SPEC): Define.
4663
4664 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
4665
4666         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
4667
4668 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
4669
4670         * doc/invoke.texi: Remove reference to compiler internals from
4671         user documentation.
4672
4673         * reg-notes.def: Remove REG_VALUE_PROFILE.
4674         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
4675
4676 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
4677
4678         PR middle-end/47610
4679         * varasm.c (default_section_type_flags): If decl is NULL,
4680         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
4681
4682 2011-02-05  Jie Zhang  <jie@codesourcery.com>
4683
4684         PR debug/42631
4685         * web.c (entry_register): Don't clobber the number of the
4686         first uninitialized reference in used[].
4687
4688 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
4689
4690         PR tree-optimization/46194
4691         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
4692         (build_classic_dist_vector_1): Do not represent classic distance
4693         vectors when the access functions are variating in different loops.
4694
4695 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
4696
4697         * config/mips/iris6.opt: New.
4698         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
4699
4700 2011-02-04  Richard Henderson  <rth@redhat.com>
4701             Steve Ellcey  <sje@cup.hp.com>
4702
4703         PR target/46997
4704         * config/ia64/predicates.md (mux1_brcst_element): New.
4705         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
4706         * config/ia64/ia64.c (ia64_unpack_assemble): New.
4707         (ia64_unpack_sign): New.
4708         (ia64_expand_unpack): Rewrite using new routines.
4709         (ia64_expand_widen_sum): Ditto.
4710         (ia64_expand_dot_prod_v8qi): Ditto.
4711         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
4712         routines, add endian check.
4713         (pmpy2_even): Rename from pmpy2_r, add endian check.
4714         (pmpy2_odd): Rename from pmpy2_l, add endian check.
4715         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
4716         (vec_widen_smult_hi_v4hi): Ditto.
4717         (vec_widen_umult_lo_v4hi): Ditto.
4718         (vec_widen_umult_hi_v4hi): Ditto.
4719         (mulv2si3): Change endian checks.
4720         (sdot_prodv4hi): Rewrite with new calls.
4721         (udot_prodv4hi): New.
4722         (vec_pack_ssat_v4hi): Add endian check.
4723         (vec_pack_usat_v4hi): Ditto.
4724         (vec_pack_ssat_v2si): Ditto.
4725         (max1_even): Rename from max1_r, add endian check.
4726         (max1_odd): Rename from max1_l, add endian check.
4727         (*mux1_rev): Format change.
4728         (*mux1_mix): Ditto.
4729         (*mux1_shuf): Ditto.
4730         (*mux1_alt): Ditto.
4731         (*mux1_brcst_v8qi): Use new predicate.
4732         (vec_extract_evenv8qi): Remove endian check.
4733         (vec_extract_oddv8qi): Ditto.
4734         (vec_interleave_lowv4hi): Format change.
4735         (vec_interleave_highv4hi): Ditto.
4736         (mix2_even): Rename from mix2_r, add endian check.
4737         (mix2_odd): Rename from mux2_l, add endian check.
4738         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
4739         (vec_extract_evenodd_helper): Format change.
4740         (vec_extract_evenv4hi): Remove endian check.
4741         (vec_extract_oddv4hi): Remove endian check.
4742         (vec_interleave_lowv2si): Format change.
4743         (vec_interleave_highv2si): Format change.
4744         (vec_initv2si): Remove endian check.
4745         (vecinit_v2si): Add endian check.
4746         (reduc_splus_v2sf): Add endian check.
4747         (reduc_smax_v2sf): Ditto.
4748         (reduc_smin_v2sf): Ditto.
4749         (vec_initv2sf): Remove endian check.
4750         (fpack): Add endian check.
4751         (fswap): Add endian check.
4752         (vec_interleave_highv2sf): Add endian check.
4753         (vec_interleave_lowv2sf): Add endian check.
4754         (fmix_lr): Add endian check.
4755         (vec_setv2sf): Format change.
4756         (*vec_extractv2sf_0_be): Use shift to extract operand.
4757         (*vec_extractv2sf_1_be): New.
4758         (vec_pack_trunc_v4hi): Add endian check.
4759         (vec_pack_trunc_v2si): Format change.
4760
4761 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
4762
4763         PR inline-asm/23200
4764         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
4765         do bb, locus and block comparison and disallow loads if it is not set.
4766         (stmt_is_replaceable_p): New function.
4767         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
4768         callers.
4769         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
4770         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
4771         SSA_NAME_DEF_STMT.
4772         * tree-flow.h (stmt_is_replaceable_p): New prototype.
4773
4774 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
4775
4776         * config/rs6000/xilinx.opt: New.
4777         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
4778
4779 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
4780
4781         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
4782
4783 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
4784
4785         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
4786         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4787         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
4788         secondary_reload_info, xtensa_secondary_reload): Remove.
4789         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
4790         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4791         (xtensa_preferred_reload_class): Make static. Change return and
4792         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
4793         Use CONST_DOUBLE_P predicate.
4794         (xtensa_preferred_output_reload_class): New function.
4795         (xtensa_secondary_reload): Make static.
4796
4797 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
4798
4799         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
4800         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
4801         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
4802
4803 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
4804
4805         PR middle-end/31490
4806         * output.h (SECTION_RELRO): Define.
4807         (SECTION_MACH_DEP): Adjust.
4808         (get_variable_section): New prototype.
4809         * varpool.c (varpool_finalize_named_section_flags): New function.
4810         (varpool_assemble_pending_decls): Call it.
4811         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
4812         * cgraphunit.c (cgraph_output_in_order): Call
4813         varpool_finalize_named_section_flags.
4814         * varasm.c (get_section): Allow section flags conflicts between
4815         relro and read-only sections if the section hasn't been declared yet.
4816         Set SECTION_OVERRIDE after diagnosing section type conflict.
4817         (get_variable_section): No longer static.
4818         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
4819         readonly sections that need relocations.
4820         (decl_readonly_section_1): New function.
4821         (decl_readonly_section): Use it.
4822
4823         Revert:
4824         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
4825                     Steve Ellcey  <sje@cup.hp.com>
4826
4827         PR middle-end/31490
4828         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
4829         if section attribute used.
4830
4831 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
4832
4833         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
4834         * config/darwin.c (SECTION_NO_ANCHOR): Define.
4835         (darwin_init_sections): Remove assertion.
4836
4837 2011-02-03  Nick Clifton  <nickc@redhat.com>
4838
4839         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
4840         lt and ge.
4841         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
4842         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
4843         instead of "n" and "pz".
4844         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
4845         CC_FLAG_S.
4846
4847 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
4848
4849         PR target/47312
4850         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
4851         fma, expand FMA_EXPR as fma{,f,l} call.
4852
4853         PR lto/47274
4854         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
4855         copy them into a unsigned char variable and pass address of it to
4856         lto_output_data_stream.
4857
4858         PR target/47564
4859         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
4860         around backend_init_target and lang_dependent_init_target calls.
4861         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
4862         (verify_cgraph_node): Don't call set_cfun here.  Use
4863         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
4864         Set error_found for incorrectly represented calls to thunks.
4865
4866 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
4867
4868         PR debug/43092
4869         PR rtl-optimization/43494
4870         * rtl.h (for_each_inc_dec_fn): New type.
4871         (for_each_inc_dec): Declare.
4872         * rtlanal.c (struct for_each_inc_dec_ops): New type.
4873         (for_each_inc_dec_find_inc_dec): New fn.
4874         (for_each_inc_dec_find_mem): New fn.
4875         (for_each_inc_dec): New fn.
4876         * dse.c (struct insn_size): Remove.
4877         (replace_inc_dec, replace_inc_dec_mem): Remove.
4878         (emit_inc_dec_insn_before): New fn.
4879         (check_for_inc_dec): Use it, along with for_each_inc_dec.
4880         (canon_address): Pass mem modes to cselib_lookup.
4881         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
4882         (cselib_lookup_from_insn): Likewise.
4883         (cselib_subst_to_values): Likewise.
4884         * cselib.c (find_slot_memmode): New var.
4885         (cselib_find_slot): New fn.  Use it instead of
4886         htab_find_slot_with_hash everywhere.
4887         (entry_and_rtx_equal_p): Use find_slot_memmode.
4888         (autoinc_split): New fn.
4889         (rtx_equal_for_cselib_p): Rename and implement in terms of...
4890         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
4891         Deal with autoinc.  Special-case recursion into MEMs.
4892         (cselib_hash_rtx): Likewise.
4893         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
4894         address and MEM modes.
4895         (cselib_subst_to_values): Add memmode, pass it on.
4896         Deal with autoinc.
4897         (cselib_lookup): Add memmode argument, pass it on.
4898         (cselib_lookup_from_insn): Add memmode.
4899         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
4900         (struct cselib_record_autoinc_data): New.
4901         (cselib_record_autoinc_cb): New fn.
4902         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
4903         mode to cselib_lookup.  Reset autoinced REGs here instead of...
4904         (cselib_process_insn): ... here.
4905         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
4906         to cselib_lookup.
4907         (add_uses): Likewise, also to cselib_subst_to_values.
4908         (add_stores): Likewise.
4909         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
4910         cselib_subst_to_values.
4911         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
4912         * gcse.c (do_local_cprop): Adjusted.
4913         * postreload.c (reload_cse_simplify_set): Adjusted.
4914         (reload_cse_simplify_operands): Adjusted.
4915         * sel-sched-dump (debug_mem_addr_value): Pass mode.
4916
4917 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
4918
4919         PR tree-optimization/45122
4920         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
4921         unsafe assumptions when there's more than one loop exit.
4922
4923 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
4924
4925         PR target/47272
4926         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
4927         Document using vector double with the load/store builtins, and
4928         that the load/store builtins always use Altivec instructions.
4929
4930         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
4931         to use altivec memory instructions, even on VSX.
4932         (vector_altivec_store_<mode>): Ditto.
4933
4934         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
4935         function.
4936
4937         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4938         V2DF, V2DI support to load/store overloaded builtins.
4939
4940         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
4941         altivec load/store builtins for V2DF/V2DI types.
4942
4943         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4944         set avoid indexed addresses on power6 if -maltivec.
4945         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
4946         vector_altivec_load/vector_altivec_store builtins.
4947         (altivec_expand_st_builtin): Ditto.
4948         (altivec_expand_builtin): Add VSX memory builtins.
4949         (rs6000_init_builtins): Add V2DI types to internal types.
4950         (altivec_init_builtins): Add support for V2DF/V2DI altivec
4951         load/store builtins.
4952         (rs6000_address_for_altivec): Insure memory address is appropriate
4953         for Altivec.
4954
4955         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
4956         vec_vsx_ld and vec_vsx_st.
4957         (vsx_store_<mode>): Ditto.
4958
4959         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
4960         variables to hold long long types for VSX vector memory builtins.
4961         (RS6000_BTI_unsigned_long_long): Ditto.
4962         (long_long_integer_type_internal_node): Ditti.
4963         (long_long_unsigned_type_internal_node): Ditti.
4964
4965         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
4966         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
4967         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
4968
4969         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
4970         short cuts.
4971         (vec_vsx_st): Ditto.
4972
4973 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
4974
4975         * config/pa/pa-hpux10.opt: New.
4976         * config/hpux11.opt (pthread): New Driver option.
4977         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
4978         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
4979
4980 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
4981
4982         * config/ia64/vms.opt: New.
4983         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
4984
4985 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
4986
4987         PR target/47580
4988         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
4989         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
4990         generator functions.
4991         (vsx_floatuns<VSi><mode>2): Ditto.
4992         (vsx_fix_trunc<mode><VSi>2): Ditto.
4993         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
4994
4995 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
4996
4997         * config/i386/djgpp.opt (posix): New Driver option.
4998
4999 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
5000
5001         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
5002         Move to the unsupported targets list.
5003
5004 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
5005
5006         PR rtl-optimization/47525
5007         * df-scan.c: Update copyright years.
5008         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
5009         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
5010
5011 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5012
5013         * config/i386/sysv4.h (TARGET_VERSION): Remove.
5014         (SUBTARGET_RETURN_IN_MEMORY): Remove.
5015         (ASM_OUTPUT_ASCII): Remove.
5016         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
5017
5018 2011-02-02  Jeff Law  <law@redhat.com>
5019
5020         PR middle-end/47543
5021         * reload.c (find_reloads_address): Handle reg+d address where both
5022         components are invalid by reloading the entire address.
5023
5024 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
5025             Richard Guenther  <rguenther@suse.de>
5026
5027         PR tree-optimization/40979
5028         PR bootstrap/47044
5029         * passes.c (init_optimization_passes): After LIM call copy_prop
5030         and DCE to clean up.
5031         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
5032
5033 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
5034
5035         PR tree-optimization/47576
5036         PR tree-optimization/47555
5037         * doc/invoke.texi (scev-max-expr-complexity): Documented.
5038         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
5039         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
5040         * tree-scalar-evolution.c (follow_ssa_edge): Use
5041         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
5042
5043 2011-02-02  Richard Guenther  <rguenther@suse.de>
5044
5045         PR tree-optimization/47566
5046         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
5047
5048 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
5049
5050         PR debug/47106
5051         PR debug/47402
5052         * tree-inline.c (declare_return_variable): Remove unused caller
5053         variable.
5054
5055         PR debug/47106
5056         PR debug/47402
5057         * tree-flow-inline.h (clear_is_used, is_used_p): New.
5058         * cfgexpand.c (account_used_vars_for_block): Use them.
5059         * tree-nrv.c (tree_nrv): Likewise.
5060         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
5061         (dump_scope_block): Likewise.
5062         (remove_unused_locals): Likewise.
5063
5064         PR debug/47106
5065         PR debug/47402
5066         * tree-inline.c (declare_return_variable): Add result decl to
5067         local decls only once.
5068         * gimple-low.c (record_vars_into): Mark newly-created variables
5069         as referenced.
5070
5071 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
5072
5073         PR debug/47498
5074         PR debug/47501
5075         PR debug/45136
5076         PR debug/45130
5077         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
5078         debug insns.
5079         (no_real_insns_p, schedule_block, set_priorities): Drop special
5080         treatment of boundary debug insns.
5081         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
5082         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
5083         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
5084         (BOUNDARY_DEBUG_INSN_P): Likewise.
5085         (SCHEDULE_DEBUG_INSN_P): Likewise.
5086         * sched-rgn.c (init_ready_list): Drop special treatment of
5087         boundary debug insns.
5088         * final.c (rest_of_clean_state): Clear notes' BB.
5089
5090 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5091
5092         * config/openbsd.opt (assert=): New Driver option.
5093
5094 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5095
5096         * config/i386/nto.opt: New.
5097         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
5098
5099 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5100
5101         * config/i386/netware.opt: New.
5102         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
5103
5104 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5105
5106         * config/interix.opt (posix): New Driver option.
5107
5108 2011-02-01  DJ Delorie  <dj@redhat.com>
5109
5110         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
5111
5112         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
5113         class for A0/A1.
5114
5115 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
5116
5117         PR tree-optimization/47561
5118         * toplev.c (process_options): Print the Graphite flags.  Add
5119         flag_loop_flatten to the list of options requiring Graphite.
5120
5121 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5122
5123         * config/i386/cygming.opt (posix): New Driver option.
5124
5125 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5126
5127         * config/arm/vxworks.opt: New.
5128         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
5129
5130 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5131
5132         * config/alpha/elf.opt: New.
5133         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
5134         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
5135
5136 2011-02-01  Richard Guenther  <rguenther@suse.de>
5137
5138         PR tree-optimization/47559
5139         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
5140         store-motion on references that can throw.
5141
5142 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
5143
5144         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
5145         * tree-pass.h (TDF_CSELIB): New macro.
5146         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
5147         cselib_lookup): Check for it rather than for TDF_DETAILS.
5148
5149 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
5150
5151         PR driver/47547
5152         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
5153         is HOST_BIT_BUCKET.
5154
5155         * opts.c (finish_options): Don't add x_aux_base_name if it is
5156         HOST_BIT_BUCKET.
5157
5158 2011-02-01  Richard Guenther  <rguenther@suse.de>
5159
5160         PR tree-optimization/47555
5161         Revert
5162         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
5163
5164         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
5165
5166 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
5167
5168         PR gcc/46692
5169         * config/lm32/t-lm32: Add multilib for all CPU options.
5170
5171 2011-02-01  Richard Guenther  <rguenther@suse.de>
5172
5173         PR tree-optimization/47541
5174         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
5175         sure to have a field at offset zero.
5176
5177 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
5178
5179         * config/arc/arc.opt (EB, EL): New Driver options.
5180
5181 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
5182
5183         * config/alpha/osf5.opt: New.
5184         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
5185
5186 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
5187
5188         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
5189
5190 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
5191
5192         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
5193         -floop-interchange.
5194         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
5195         is an alias of -floop-interchange and that it requires the
5196         Graphite infrastructure.
5197         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
5198         flag_loop_interchange based on the value of flag_tree_loop_linear.
5199
5200 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
5201             Richard Guenther  <rguenther@suse.de>
5202
5203         PR tree-optimization/47538
5204         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
5205         type instead of r1type, except for comparisons.  For right
5206         shifts and comparisons punt if there are mismatches in
5207         sizetype vs. non-sizetype types.
5208
5209 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5210
5211         * doc/sourcebuild.texi (Effective-Target Keywords): Document
5212         avx_runtime.
5213
5214 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5215
5216         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
5217         version number.
5218         * configure: Regenerate.
5219
5220 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5221
5222         * configure.ac (gcc_cv_ld_static_option): Define.
5223         (gcc_cv_ld_dynamic_option): Define.
5224         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
5225         instead.
5226         (HAVE_LD_STATIC_DYNAMIC): Update message.
5227         (LD_STATIC_OPTION): Define.
5228         (LD_DYNAMIC_OPTION): Define.
5229         * configure: Regenerate.
5230         * config.in: Regenerate.
5231         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
5232         HAVE_LD_STATIC_DYNAMIC]: Use them.
5233
5234 2011-01-31  Nick Clifton  <nickc@redhat.com>
5235
5236         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
5237         registers inside interrupt handlers if the handler is not a leaf
5238         function.
5239
5240 2011-01-31  Nick Clifton  <nickc@redhat.com>
5241
5242         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
5243         reg_renumber returning an INVALID_REGNUM.
5244
5245 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
5246
5247         PR libgcj/44341
5248         * doc/install.texi: Document host options discarded when cross
5249         configuring target libraries.
5250
5251 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
5252
5253         Reverted:
5254         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
5255         PR debug/45136
5256         PR debug/45130
5257         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
5258         debug insns.
5259         (no_real_insns_p, schedule_block, set_priorities): Drop special
5260         treatment of boundary debug insns.
5261         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
5262         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
5263         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
5264         (BOUNDARY_DEBUG_INSN_P): Likewise.
5265         (SCHEDULE_DEBUG_INSN_P): Likewise.
5266         * sched-rgn.c (init_ready_list): Drop special treatment of
5267         boundary debug insns.
5268         * final.c (rest_of_clean-state): Clear notes' BB.
5269
5270 2011-01-31  Alan Modra  <amodra@gmail.com>
5271
5272         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
5273         toc relative expressions as we do in print_operand_address.
5274
5275 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
5276
5277         * doc/extend.texi: Follow spelling conventions.
5278         * doc/invoke.texi: Fix a typo.
5279
5280 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
5281
5282         * config/hpux11.opt: New.
5283         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
5284         ia64*-*-hpux*): Use hpux11.opt.
5285
5286 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
5287
5288         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
5289         to tmake_file.
5290
5291 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
5292
5293         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
5294         support sites.
5295
5296 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
5297
5298         * doc/install.texi (Binaries): Remove outdated reference for
5299         Motorola 68HC11/68HC12 downloads.
5300
5301 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
5302
5303         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
5304         Drepper's paper.
5305
5306 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
5307
5308         PR bootstrap/47147
5309         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
5310         used by NetBSD.
5311
5312 2011-01-28  Ahmad Sharif  <asharif@google.com>
5313
5314         * value-prof.c (check_counter): Corrected error message.
5315
5316 2011-01-29  Jie Zhang  <jie@codesourcery.com>
5317
5318         * config/arm/arm.c (arm_legitimize_reload_address): New.
5319         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
5320         arm_legitimize_reload_address.
5321         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
5322
5323 2011-01-28  Ian Lance Taylor  <iant@google.com>
5324
5325         * godump.c (go_define): Ignore macros whose definitions include
5326         two adjacent operands.
5327
5328 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
5329
5330         PR target/42894
5331         * varasm.c (force_const_mem): Store copy of x in desc->constant
5332         instead of x itself.
5333         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
5334         itself into REG_EQUAL note.
5335
5336 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
5337
5338         * config/freebsd.opt (posix, rdynamic): New Driver options.
5339
5340 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5341
5342         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
5343         -Bstatic/-Bdynamic.
5344         * configure: Regenerate.
5345
5346 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
5347
5348         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
5349         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
5350
5351 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
5352
5353         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
5354         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
5355         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
5356         (s390_preferred_reload_class): Make static. Change return and
5357         'rclass' argument type to reg_class_t.
5358
5359 2011-01-27  Jan Hubicka  <jh@suse.cz>
5360
5361         PR middle-end/46949
5362         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
5363         (process_function_and_variable_attributes): Check defined weakrefs.
5364
5365 2011-01-27  Martin Jambor  <mjambor@suse.cz>
5366
5367         PR tree-optimization/47228
5368         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
5369         build_ref_for_offset.
5370
5371 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5372
5373         * config/spu/spu-elf.h (ASM_SPEC): Remove.
5374
5375 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
5376
5377         PR rtl-optimization/46856
5378         * postreload.c (reload_combine_recognize_const_pattern): Do not
5379         separate cc0 setter and user on cc0 targets.
5380
5381 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
5382
5383         PR c/43082
5384         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
5385         passed a VOID_TYPE expression, immediately emit an error and
5386         return error_mark_node.
5387
5388 2011-01-26  Jeff Law  <law@redhat.com>
5389
5390         PR rtl-optimization/47464
5391         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
5392         rather than may_trap_p as needed.
5393
5394 2011-01-26  DJ Delorie  <dj@redhat.com>
5395
5396         PR rtl-optimization/46878
5397         * combine.c (insn_a_feeds_b): Check for the implicit cc0
5398         setter/user dependency as well.
5399
5400 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
5401
5402         PR rtl-optimization/44469
5403         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
5404         after removing trivially dead basic blocks.
5405
5406 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
5407
5408         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
5409         * config/frv/frv.h (LINK_SPEC): Likewise.
5410         * config/i386/netware.h (LINK_SPEC): Likewise.
5411         * config/m68k/linux.h (ASM_SPEC): Likewise.
5412         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
5413         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
5414         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
5415         * config/sparc/linux.h (ASM_SPEC): Likewise.
5416         * config/sparc/linux64.h (ASM_SPEC): Likewise.
5417         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
5418
5419 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
5420
5421         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
5422         * config/frv/frv.h (ASM_SPEC): Likewise.
5423         * config/m68k/linux.h (ASM_SPEC): Likewise.
5424         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
5425         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
5426         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
5427         * config/sparc/linux.h (ASM_SPEC): Likewise.
5428         * config/sparc/linux64.h (ASM_SPEC): Likewise.
5429         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
5430
5431 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
5432
5433         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
5434         * config/frv/frv.h (LINK_SPEC): Likewise.
5435         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
5436
5437 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
5438
5439         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
5440         * config/frv/frv.h (ASM_SPEC): Likewise.
5441         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
5442         * config/m68k/linux.h (ASM_SPEC): Likewise.
5443         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
5444         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
5445         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
5446         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
5447         * config/sparc/linux.h (ASM_SPEC): Likewise.
5448         * config/sparc/linux64.h (ASM_SPEC): Likewise.
5449         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
5450         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
5451
5452 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
5453
5454         PR target/46997
5455         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
5456         (*mux2): Ditto.
5457         (vec_extract_evenodd_help): Ditto.
5458         (vec_extract_evenv4hi): Ditto.
5459         (vec_extract_oddv4hi): Ditto.
5460         (vec_interleave_lowv2si): Ditto.
5461         (vec_interleave_highv2si): Ditto.
5462         (vec_extract_evenv2si): Ditto.
5463         (vec_extract_oddv2si: Ditto.
5464         (vec_pack_trunc_v2si): Ditto.
5465
5466 2011-01-22  Jan Hubicka  <jh@suse.cz>
5467
5468         PR target/47237
5469         * cgraph.h (cgraph_local_info): New field can_change_signature.
5470         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
5471         signature can change.
5472         (ipcp_estimate_growth): Call sequence simplify only if calle signature
5473         can change.
5474         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
5475         (cgraph_function_versioning): We can not change signature of functions
5476         that don't allow that.
5477         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
5478         (lto_input_node): Likewise.
5479         * ipa-inline.c (compute_inline_parameters): Compute
5480         local.can_change_signature.
5481         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
5482         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
5483         functions that can not change signature.
5484         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
5485         init_cumulative_args): Do not use local calling conventions
5486         for functions that can not change signature.
5487
5488 2011-01-22  Jan Hubicka  <jh@suse.cz>
5489
5490         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
5491
5492 2011-01-26  Richard Guenther  <rguenther@suse.de>
5493
5494         PR tree-optimization/47190
5495         * cgraphunit.c (process_common_attributes): New function.
5496         (process_function_and_variable_attributes): Use it.
5497
5498 2011-01-26  Richard Guenther  <rguenther@suse.de>
5499
5500         PR lto/47423
5501         * cgraphbuild.c (record_eh_tables): Record reference to personality
5502         function.
5503
5504 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
5505
5506         PR debug/45454
5507         * sel-sched.c (moveup_expr): Don't let debug insns prevent
5508         non-debug insns from moving up.
5509
5510 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
5511
5512         PR target/40125
5513         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
5514         t-dlldir{,-x} fragment for build and add it to tmake_file.
5515         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
5516         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
5517         * config/i386/t-dlldir: New file.
5518         (SHLIB_DLLDIR): Define.
5519         * config/i386/t-dlldir-x: New file.
5520         (SHLIB_DLLDIR): Define.
5521         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
5522         (SHLIB_INSTALL): Use it.
5523
5524 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
5525
5526         PR target/47246
5527         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
5528         lower bound of the allowed Thumb-2 coprocessor load/store
5529         index range to -256. Add explaining comment.
5530
5531 2011-01-25  Ian Lance Taylor  <iant@google.com>
5532
5533         * godump.c (go_define): Improve lexing of macro expansion to only
5534         accept expressions which match Go spec.
5535
5536 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
5537
5538         PR c++/43601
5539         * tree.c (handle_dll_attribute): Handle it.
5540         * doc/extend.texi (@item dllexport): Mention it.
5541         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
5542
5543 2011-01-25  Ian Lance Taylor  <iant@google.com>
5544
5545         PR tree-optimization/26854
5546         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
5547         (decl_jump_unsafe): Move higher in file, with no other change.
5548         (bind): Set has_jump_unsafe_decl if appropriate.
5549         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
5550         (check_earlier_gotos): Likewise.
5551         (c_check_switch_jump_warnings): Likewise.
5552
5553 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
5554
5555         * doc/invoke.texi (Warning Options): Add missing hyphen.
5556         (-fprofile-dir): Minor grammatical fixes.
5557         (-fbranch-probabilities): Likewise.
5558
5559 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
5560
5561         PR debug/45136
5562         PR debug/45130
5563         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
5564         debug insns.
5565         (no_real_insns_p, schedule_block, set_priorities): Drop special
5566         treatment of boundary debug insns.
5567         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
5568         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
5569         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
5570         (BOUNDARY_DEBUG_INSN_P): Likewise.
5571         (SCHEDULE_DEBUG_INSN_P): Likewise.
5572         * sched-rgn.c (init_ready_list): Drop special treatment of
5573         boundary debug insns.
5574         * final.c (rest_of_clean-state): Clear notes' BB.
5575
5576 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5577
5578         * Makefile.in (LAMBDA_H): Removed.
5579         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
5580         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
5581         lambda-trans.o, and tree-loop-linear.o.
5582         (lto-symtab.o): Remove dependence on LAMBDA_H.
5583         (tree-loop-linear.o): Remove rule.
5584         (lambda-mat.o): Same.
5585         (lambda-trans.o): Same.
5586         (lambda-code.o): Same.
5587         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
5588         (tree-vect-slp.o): Same.
5589         * hwint.h (gcd): Moved here.
5590         (least_common_multiple): Same.
5591         * lambda-code.c: Removed.
5592         * lambda-mat.c: Removed.
5593         * lambda-trans.c: Removed.
5594         * lambda.h: Removed.
5595         * tree-loop-linear.c: Removed.
5596         * lto-symtab.c: Do not include lambda.h.
5597         * omega.c (gcd): Removed.
5598         * passes.c (init_optimization_passes): Remove pass_linear_transform.
5599         * tree-data-ref.c (print_lambda_vector): Moved here.
5600         (lambda_vector_copy): Same.
5601         (lambda_matrix_copy): Same.
5602         (lambda_matrix_id): Same.
5603         (lambda_vector_first_nz): Same.
5604         (lambda_matrix_row_add): Same.
5605         (lambda_matrix_row_exchange): Same.
5606         (lambda_vector_mult_const): Same.
5607         (lambda_vector_negate): Same.
5608         (lambda_matrix_row_negate): Same.
5609         (lambda_vector_equal): Same.
5610         (lambda_matrix_right_hermite): Same.
5611         * tree-data-ref.h: Do not include lambda.h.
5612         (lambda_vector): Moved here.
5613         (lambda_matrix): Same.
5614         (dependence_level): Same.
5615         (lambda_transform_legal_p): Removed declaration.
5616         (lambda_collect_parameters): Same.
5617         (lambda_compute_access_matrices): Same.
5618         (lambda_vector_gcd): Same.
5619         (lambda_vector_new): Same.
5620         (lambda_vector_clear): Same.
5621         (lambda_vector_lexico_pos): Same.
5622         (lambda_vector_zerop): Same.
5623         (lambda_matrix_new): Same.
5624         * tree-flow.h (least_common_multiple): Removed declaration.
5625         * tree-parloops.c (lambda_trans_matrix): Moved here.
5626         (LTM_MATRIX): Same.
5627         (LTM_ROWSIZE): Same.
5628         (LTM_COLSIZE): Same.
5629         (LTM_DENOMINATOR): Same.
5630         (lambda_trans_matrix_new): Same.
5631         (lambda_matrix_vector_mult): Same.
5632         (lambda_transform_legal_p): Same.
5633         * tree-pass.h (pass_linear_transform): Removed declaration.
5634         * tree-ssa-loop.c (tree_linear_transform): Removed.
5635         (gate_tree_linear_transform): Removed.
5636         (pass_linear_transform): Removed.
5637         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
5638         flag_loop_interchange.
5639
5640 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
5641
5642         PR tree-optimization/47265
5643         PR tree-optimization/47443
5644         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
5645         if name still has some uses.
5646
5647 2011-01-25  Martin Jambor  <mjambor@suse.cz>
5648
5649         PR tree-optimization/47382
5650         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
5651         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
5652
5653 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
5654
5655         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
5656         sjlj_except_unwind_info.
5657
5658 2011-01-25  Richard Guenther  <rguenther@suse.de>
5659
5660         PR tree-optimization/47426
5661         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
5662         visible functions results escape.
5663
5664 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
5665
5666         PR target/45701
5667         * config/arm/arm.c (any_sibcall_uses_r3): New function.
5668         (arm_get_frame_offsets): Use it.
5669
5670 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5671             Jakub Jelinek  <jakub@redhat.com>
5672
5673         PR tree-optimization/47271
5674         * tree-if-conv.c (bb_postdominates_preds): New.
5675         (if_convertible_bb_p): Call bb_postdominates_preds.
5676         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
5677         (predicate_scalar_phi): Call bb_postdominates_preds.
5678
5679 2011-01-25  Nick Clifton  <nickc@redhat.com>
5680
5681         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
5682         * config/rx/rx.c (rx_function_value): Likewise.
5683         (rx_promote_function_mode): Likewise.
5684         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
5685         in order to make it legitimate.
5686         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
5687         make sure that the first operand is the same as the result register.
5688         (addsi3_unspec): Delete.
5689         (subdi3): Do not accept immediate operands.
5690         (subdi3_internal): Likewise.
5691
5692 2011-01-25  Jeff Law  <law@redhat.com>
5693
5694         PR rtl-optimization/37273
5695         * ira-costs.c (scan_one_insn): Detect constants living in memory and
5696         handle them like argument loads from stack slots.  Do not double
5697         count memory for memory constants and argument loads from stack slots.
5698
5699 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
5700
5701         PR tree-optimization/47427
5702         PR tree-optimization/47428
5703         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
5704         coalesce if the new root var would be TREE_READONLY.
5705
5706 2011-01-25  Richard Guenther  <rguenther@suse.de>
5707
5708         PR middle-end/47414
5709         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
5710         correct type for TBAA.
5711
5712 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5713
5714         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
5715         (close_phi_written_to_memory): Call for_each_index with
5716         dr_indices_valid_in_loop.
5717
5718 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5719
5720         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
5721         when it is initialized.
5722
5723 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5724
5725         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
5726         call to graphite_find_data_references_in_stmt.
5727         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
5728         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
5729         call to graphite_find_data_references_in_stmt.
5730         (analyze_drs_in_stmts): Same.
5731         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
5732         in which the scalar analysis of indices is performed.
5733         (create_data_ref): Same.  Update call to dr_analyze_indices.
5734         (find_data_references_in_stmt): Update call to create_data_ref.
5735         (graphite_find_data_references_in_stmt): Same.
5736         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
5737         declaration.
5738         (create_data_ref): Same.
5739         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
5740         call to create_data_ref.
5741
5742 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5743
5744         * graphite-sese-to-poly.c (build_poly_scop): Move
5745         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
5746
5747 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5748
5749         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
5750         VAR_DECL, PARM_DECL, and RESULT_DECL.
5751
5752 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5753
5754         * graphite-dependences.c (reduction_dr_1): Allow several reductions
5755         in a reduction PBB.
5756         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
5757         that have already been marked as PBB_IS_REDUCTION.
5758
5759 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5760
5761         * graphite-scop-detection.c (same_close_phi_node): New.
5762         (remove_duplicate_close_phi): New.
5763         (make_close_phi_nodes_unique): New.
5764         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
5765
5766 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5767
5768         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
5769         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
5770         of both data references to be the same.
5771
5772 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5773
5774         * graphite-dependences.c (build_lexicographical_constraint): Remove
5775         the gdim parameter.
5776         (build_lexicographical_constraint): Adjust call to
5777         ppl_powerset_is_empty.
5778         (dependence_polyhedron): Same.
5779         (graphite_legal_transform_dr): Same.
5780         (graphite_carried_dependence_level_k): Same.
5781         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
5782         parameter.
5783         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
5784
5785 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5786
5787         * graphite-sese-to-poly.c
5788         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
5789         (close_phi_written_to_memory): New.
5790         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
5791         and unshare_expr.
5792
5793 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5794
5795         * doc/install.texi: Update the expected version number of PPL to 0.11.
5796         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
5797         #if PPL_VERSION_MINOR < 11.
5798
5799 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5800
5801         * graphite-dependences.c: Include graphite-cloog-util.h.
5802         (new_poly_ddr): Inlined into dependence_polyhedron.
5803         (free_poly_ddr): Moved close by new_poly_ddr.
5804         (dependence_polyhedron_1): Renamed dependence_polyhedron.
5805         Early return NULL when ppl_powerset_is_empty returns true.
5806         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
5807         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
5808         (graphite_legal_transform_dr): Call new_poly_ddr.
5809         (graphite_carried_dependence_level_k): Same.
5810         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
5811         (dot_transformed_deps_stmt_1): Removed.
5812         (dot_deps_stmt_1): Call dot_deps_stmt_2.
5813         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
5814         (dot_deps_1): Call dot_deps_2.
5815         * Makefile.in (graphite-dependences.o): Add missing dependence on
5816         graphite-cloog-util.h.
5817
5818 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5819
5820         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
5821         (build_lexicographical_constraint): Same.
5822         (dependence_polyhedron_1): Same.
5823         (graphite_legal_transform_dr): Same.
5824         (graphite_carried_dependence_level_k): Same.
5825         * graphite-ppl.c (ppl_powerset_is_empty): New.
5826         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
5827         * tree-data-ref.c (dump_data_reference): Print the basic block index.
5828
5829 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5830
5831         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
5832         the "a followed by b" relation and document it.
5833
5834 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5835
5836         * graphite-dependences.c (build_lexicographical_constraint): Stop the
5837         iteration when the bag of constraints is empty.
5838
5839 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5840
5841         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
5842
5843 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5844
5845         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
5846         nest and two loop depths as parameters.
5847         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
5848         lst_perfect_nestify.
5849
5850 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5851
5852         * graphite-dependences.c (print_pddr): Call
5853         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
5854
5855 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5856
5857         * graphite-ppl.c (debug_gmp_value): New.
5858         * graphite-ppl.h (debug_gmp_value): Declared.
5859
5860 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
5861
5862         * doc/install.texi: Document availability of cloog-0.16.
5863
5864 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
5865
5866         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
5867         invalid postdominance info.
5868
5869 2011-01-24  Jan Hubicka  <jh@suse.cz>
5870
5871         PR c/21659
5872         * doc/extend.texi (weak pragma): Drop claim that it must
5873         appear before definition.
5874         * varasm.c (merge_weak, declare_weak): Only sanity check
5875         that DECL is not output at a time it is declared weak.
5876
5877 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
5878
5879         * machmode.def: Fixed comments.
5880
5881 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
5882
5883         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
5884
5885 2011-01-24  Paul Koning  <ni1d@arrl.net>
5886
5887         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
5888         WORDS_BIG_ENDIAN.
5889
5890 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
5891
5892         PR target/46519
5893         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
5894         (block_info): Add scanned and prev.
5895         (move_or_delete_vzeroupper_2): Return if the basic block
5896         has been scanned and the upper 128bit state is unchanged
5897         from the last scan.
5898         (move_or_delete_vzeroupper_1): Return true if the exit
5899         state is changed.
5900         (move_or_delete_vzeroupper): Visit basic blocks using the
5901         work-list based algorithm based on vt_find_locations in
5902         var-tracking.c.
5903
5904         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
5905
5906 2011-01-24  Nick Clifton  <nickc@redhat.com>
5907
5908         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
5909         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
5910         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
5911         then define __v850e1__.
5912         * doc/invoke.texi: Document -mv850es.
5913
5914 2011-01-24  Richard Henderson  <rth@redhat.com>
5915
5916         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
5917         compound unordered comparisons.
5918         * config/rx/rx.c (rx_split_fp_compare): Remove.
5919         * config/rx/rx-protos.h: Update.
5920         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
5921         (cbranchsf4): Don't call rx_split_fp_compare.
5922         (*cbranchsf4): Use rx_split_cbranch.
5923         (*cmpsf): Don't accept "i" constraint.
5924         (*conditional_branch): Only valid after reload.
5925         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
5926
5927 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
5928
5929         PR target/47385
5930         * config/rs6000/altivec.md (vector constant splitters): Add
5931         support for creating vector single precision constants if -mvsx is
5932         used and we would create the constant using Altivec primitives.
5933
5934 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
5935             Richard Sandiford  <rdsandiford@googlemail.com>
5936
5937         PR rtl-optimization/47166
5938         * reload1.c (emit_reload_insns): Disable the spill_reg_store
5939         mechanism for PRE_MODIFY and POST_MODIFY.
5940         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
5941         reloadreg.
5942
5943 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
5944
5945         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
5946
5947 2011-01-22  Jan Hubicka  <jh@suse.cz>
5948
5949         PR lto/47333
5950         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
5951
5952 2011-01-22  Jan Hubicka  <jh@suse.cz>
5953
5954         PR tree-optimization/43884
5955         PR lto/44334
5956         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
5957         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
5958
5959 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
5960
5961         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
5962         * config/s390/s390.c (s390_register_move_cost,
5963         s390_memory_move_cost): New.
5964         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
5965
5966 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5967
5968         PR middle-end/47401
5969         * except.c (sjlj_assign_call_site_values): Move setting the
5970         crtl->uses_eh_lsda flag to ...
5971         (sjlj_mark_call_sites): ... here.
5972         (sjlj_emit_function_enter): Support NULL dispatch label.
5973         (sjlj_build_landing_pads): In a function with no landing pads
5974         that still has must-not-throw regions, generate code to register
5975         a personality function with empty LSDA.
5976
5977 2011-01-21  Richard Henderson  <rth@redhat.com>
5978
5979         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
5980
5981         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
5982
5983         * compare-elim.c: New file.
5984         * Makefile.in (OBJS-common): Add it.
5985         (compare-elim.o): New.
5986         * common.opt (fcompare-elim): New.
5987         * opts.c (default_options_table): Add OPT_fcompare_elim.
5988         * tree-pass.h (pass_compare_elim_after_reload): New.
5989         * passes.c (init_optimization_passes): Add it.
5990         * recog.h: Protect against re-inclusion.
5991         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
5992         * doc/invoke.texi (-fcompare-elim): Document it.
5993         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
5994         * doc/tm.texi: Rebuild.
5995
5996 2011-01-22  Nick Clifton  <nickc@redhat.com>
5997
5998         * config/rx/rx.md (cstoresf4): Pass comparison operator to
5999         rx_split_fp_compare.
6000
6001 2011-01-22  Nick Clifton  <nickc@redhat.com>
6002
6003         * config/rx/rx.md (UNSPEC_CONST): New.
6004         (deallocate_and_return): Wrap the amount popped off the stack in
6005         an UNSPEC_CONST in order to stop it being rejected by
6006         -mmax-constant-size.
6007         (pop_and_return): Add a "(return)" rtx.
6008         (call): Drop the immediate operand.
6009         (call_internal): Likewise.
6010         (call_value): Likewise.
6011         (call_value_internal): Likewise.
6012         (sibcall_internal): Likewise.
6013         (sibcall_value_internal): Likewise.
6014         (sibcall): Likewise.  Generate an explicit call using
6015         sibcall_internal.
6016         (sibcall_value): Likewise.
6017         (mov<>): FAIL if a constant operand is not legitimate.
6018         (addsi3_unpsec): New pattern.
6019
6020         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
6021         (ok_for_max_constant): New function.
6022         (gen_safe_add): New function.
6023         (rx_expand_prologue): Use gen_safe_add.
6024         (rx_expand_epilogue): Likewise.
6025         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
6026         UNSPEC CONSTs.
6027
6028 2011-01-21  Jeff Law  <law@redhat.com>
6029
6030         PR tree-optimization/47053
6031         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
6032         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
6033         statements are deleted.
6034         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
6035         is nonempty, then purge dead edges and cleanup the CFG.
6036
6037 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
6038
6039         PR debug/47402
6040         Temporarily revert:
6041         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
6042         PR debug/47106
6043         * tree-dfa.c (create_var_ann): Mark variable as used.
6044
6045 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
6046
6047         PR middle-end/45566
6048         * except.c (convert_to_eh_region_ranges): Emit queued no-region
6049         notes from other section in hot/cold partitioning even if
6050         last_action is -3.  Increment call_site_base.
6051
6052         PR rtl-optimization/47366
6053         * fwprop.c (forward_propagate_into): Return bool.  If
6054         any changes are made, -fnon-call-exceptions is used and
6055         REG_EH_REGION note is present, call purge_dead_edges
6056         and return true if it purged anything.
6057         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
6058         any EH edges were purged.
6059
6060 2011-01-21  Jeff Law  <law@redhat.com>
6061
6062         PR rtl-optimization/41619
6063         * caller-save.c (setup_save_areas): Break out code to determine
6064         which hard regs are live across calls by examining the reload chains
6065         so that it is always used.
6066         Eliminate code which checked REG_N_CALLS_CROSSED.
6067
6068 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
6069
6070         PR tree-optimization/47355
6071         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
6072         NOP has non-debug uses beyond PHIs in new_bb.
6073
6074 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
6075
6076         PR debug/47106
6077         * cfgexpand.c (account_used_vars_for_block): Only account vars
6078         that are annotated as used.
6079         (estimated_stack_frame_size): Don't set TREE_USED.
6080         * tree-dfa.c (create_var_ann): Mark variable as used.
6081
6082 2011-01-21  Richard Guenther  <rguenther@suse.de>
6083
6084         PR middle-end/47395
6085         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
6086
6087 2011-01-21  Richard Guenther  <rguenther@suse.de>
6088
6089         PR tree-optimization/47365
6090         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
6091         (vn_reference_lookup_pieces): Adjust.
6092         (vn_reference_lookup): Likewise.
6093         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
6094         (vn_reference_lookup_3): Only look through kills if in
6095         VN_WALKREWRITE mode.
6096         (vn_reference_lookup_pieces): Adjust.
6097         (vn_reference_lookup): Likewise.
6098         (visit_reference_op_load): Likewise.
6099         (visit_reference_op_store): Likewise.
6100         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
6101         (compute_avail): Likewise.
6102         (eliminate): Likewise.
6103
6104 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
6105
6106         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
6107         DECL_IGNORED_P non-reg vars if they are used.
6108
6109         PR tree-optimization/47391
6110         * varpool.c (const_value_known_p): Return false if
6111         decl is volatile.
6112
6113 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
6114
6115         PR bootstrap/47215
6116         * config/i386/i386.c (ix86_local_alignment): Handle
6117         case for va_list_type_node is nil.
6118         (ix86_canonical_va_list_type): Likewise.
6119
6120 2011-01-21  Alan Modra  <amodra@gmail.com>
6121
6122         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
6123         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
6124
6125 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6126
6127         * config/arm/arm.md (define_attr type): Rename f_load
6128         and f_store to f_fpa_load and f_fpa_store. Update.
6129         (write_conflict): Deal with rename fallout.
6130         (*push_fp_multi): Likewise.
6131         * config/arm/fpa.md (f_load): Use f_fpa_load.
6132         (f_store): Use f_fpa_store.
6133         (*movsf_fpa): Likewise.
6134         (*movdf_fpa): Likewise.
6135         (*movxf_fpa): Likewise.
6136         (*thumb2_movsf_fpa): Likewise.
6137         (*thumb2_movdf_fpa): Likewise.
6138         (*thumb2_movxf_fpa): Likewise.
6139         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
6140         f_loadd and f_stored.
6141         (*thumb2_movdi_vfp): Likewise.
6142         (*thumb2_movsf_vfp): Fix attribute to f_loads.
6143         (*thumb2_movsi_vfp): Likewise.
6144         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
6145         Use f_loads instead of f_load.
6146         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
6147
6148 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
6149
6150         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6151         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
6152         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6153         (xtensa_mode_dependent_address_p): New function.
6154         (constantpool_address_p): Make static. Change return type to bool.
6155         Change argument type to const_rtx. Use CONST_INT_P predicate.
6156
6157 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
6158
6159         PR debug/46583
6160         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
6161
6162 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
6163
6164         PR debug/47283
6165         * cfgexpand.c (expand_debug_expr): Instead of generating
6166         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
6167         etc. handling.
6168
6169 2011-01-20  Richard Guenther  <rguenther@suse.de>
6170
6171         PR middle-end/47370
6172         * tree-inline.c (remap_gimple_op_r): Recurse manually for
6173         the pointer operand of MEM_REFs.
6174
6175 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
6176
6177         PR tree-optimization/46130
6178         * ipa-split.c (consider_split): If return_bb contains non-virtual
6179         PHIs other than for retval or if split_function would not adjust it,
6180         refuse to split.
6181
6182 2011-01-20  Richard Guenther  <rguenther@suse.de>
6183
6184         PR tree-optimization/47167
6185         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
6186         Revert previous change, only avoid enumeral type changes.
6187
6188 2011-01-19  Mike Stump  <mikestump@comcast.net>
6189
6190         * doc/tm.texi.in (BRANCH_COST): Englishify.
6191         * doc/tm.texi (BRANCH_COST): Likewise.
6192
6193 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
6194
6195         PR c++/47291
6196         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
6197         (gen_scheduled_generic_parms_dies): New functions.
6198         (gen_struct_or_union_type_die): Schedule template parameters DIEs
6199         generation for the end of CU compilation.
6200         (dwarf2out_finish): Generate template parameters DIEs here.
6201
6202 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
6203
6204         PR debug/46240
6205         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
6206         debug bind stmt on merge edges.
6207
6208 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
6209
6210         PR debug/47079
6211         PR debug/46724
6212         * function.c (instantiate_expr): Instantiate incoming rtl of
6213         implicit arguments, and recurse on VALUE_EXPRs.
6214         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
6215         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
6216
6217 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
6218
6219         * c-parser.c (c_parser_for_statement): Initialize
6220         collection_expression.
6221
6222 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
6223
6224         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
6225
6226 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
6227
6228         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
6229         (LINK_SHLIB_SPEC): Don't use %(link_path).
6230         (SUBTARGET_EXTRA_SPECS): Remove link_path.
6231
6232 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
6233
6234         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
6235         (NO_SHARED_LIB_SUPPORT): Remove.
6236         (LINK_SHLIB_SPEC): Remove one conditional definition.
6237
6238 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
6239
6240         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
6241         %{call_shared}.
6242         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
6243         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
6244         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
6245         %{call_shared} and conditionals on these options not being passed.
6246         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
6247         %{call_shared}.
6248
6249 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
6250
6251         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
6252         simplify.
6253
6254         * ipa-split.c: Spelling fixes.
6255
6256 2011-01-19  Richard Henderson  <rth@redhat.com>
6257
6258         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
6259         (*mulsi3): Likewise.
6260
6261         * longlong.h [__mn10300__] (count_leading_zeros): New.
6262         [__mn10300__] (umul_ppmm, smul_ppmm): New.
6263         [__mn10300__] (add_ssaaaa, subddmmss): New.
6264         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
6265         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
6266
6267 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6268
6269         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
6270
6271 2011-01-19  Richard Henderson  <rth@redhat.com>
6272
6273         * config/mn10300/mn10300.md (addsi3_flags): New.
6274         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
6275         (subsi3_flags, subc_internal, subdi3): New.
6276         (subdi3_internal, *subdi3_degenerate): New.
6277         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
6278
6279         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
6280         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
6281         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
6282         * config/mn10300/mn10300-protos.h: Update.
6283         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
6284         (return_ret): Likewise.  Rename from return_internal_regs.
6285         (return_internal): Remove.
6286
6287         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
6288         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
6289         (mn10300_legitimate_constant_p): Likewise.
6290         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
6291         (mn10300_frame_size): New.
6292         (mn10300_expand_prologue): Use it.
6293         (mn10300_expand_epilogue): Likewise.
6294         (mn10300_initial_offset): Likewise.
6295         * config/mn10300/mn10300-protos.h: Update.
6296         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
6297         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
6298         (prologue, epilogue, return_internal): Tidy output code.
6299         (mn10300_store_multiple_operation, return): Likewise.
6300         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
6301         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
6302         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
6303         (load_pic, am33_load_pic): New.
6304         (mn10300_load_pic0, mn10300_load_pic1): New.
6305
6306         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
6307         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
6308         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
6309         (cc_flags_for_mode, cc_flags_for_code): New.
6310         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
6311         overflow flag is not valid.  Validate that the flags we need
6312         for the comparison are valid.
6313         (mn10300_output_cmp): Remove.
6314         (mn10300_output_add): New.
6315         (mn10300_select_cc_mode): Use cc_flags_for_code.
6316         (mn10300_split_cbranch): New.
6317         (mn10300_match_ccmode): New.
6318         (mn10300_split_and_operand_count): New.
6319         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
6320         to the function.
6321         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
6322         (addsi3): ... here.  Use mn10300_output_add.
6323         (*addsi3_flags): New.
6324         (*am33_subsi3, *mn10300_subsi3): Merge...
6325         (subsi3): ... here.  Use attribute isa.
6326         (*subsi3_flags): New.
6327         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
6328         when possible.
6329         (*am33_andsi3, *mn10300_andsi3): Merge...
6330         (andsi3): ... here.
6331         (*andsi3_flags): New.
6332         (andsi3 splitters): New.
6333         (*am33_iorsi3, *mn10300_iorsi3): Merge...
6334         (iorsi3): ... here.
6335         (*iorsi3_flags): New.
6336         (*am33_xorsi3, *mn10300_xorsi3): Merge...
6337         (xorsi3): ... here.
6338         (*xorsi3_flags): New.
6339         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
6340         (one_cmplsi2): ... here.
6341         (*one_cmplsi2_flags): New.
6342         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
6343         instead of "dax" in constraints.  Use mn10300_split_cbranch.
6344         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
6345         use matching constraints to eliminate a self-comparison.
6346         (*integer_conditional_branch): Rename from integer_conditional_branch.
6347         Use int_mode_flags to match CC_REG.
6348         (*cbranchsi4_btst, *btstsi): New.
6349         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
6350         mn10300_split_cbranch.
6351         (*am33_cmpsf): Rename from am33_cmpsf.
6352         (*float_conditional_branch): Rename from float_conditional_branch.
6353         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
6354         (zero_extendqisi2): ... here.
6355         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
6356         (zero_extendhisi2): ... here.
6357         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
6358         (extendqisi2): ... here.
6359         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
6360         (extendhisi2): ... here.
6361         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
6362         (ashlsi3): ... here.
6363         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
6364         (lshrsi3): ... here.
6365         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
6366         (ashrsi3): ... here.
6367         (consecutive add peephole): Remove.
6368         * config/mn10300/predicates.md (label_ref_operand): New.
6369         (int_mode_flags): New.
6370         (CCZN_comparison_operator): New.
6371
6372         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
6373         (throughput_42_latency_43): New reservation.
6374         (mulsidi3, umulsidi3): New expanders.
6375         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
6376         the MDR register to allocation; separately allocate the low and
6377         high parts of the DImode result.
6378         (umulsidi3_internal): Similarly.
6379         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
6380         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
6381         (udivsi3, umodsi3): Remove.
6382         (udivmodsi4, divmodsi4): New expanders.
6383         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
6384         (*divmodsi4): Simiarly.
6385         (ext_internal): New.
6386
6387         * config/mn10300/constraints.md ("z"): New constraint.
6388         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
6389         (FIXED_REGISTERS): Don't fix MDR.
6390         (CALL_USED_REGSITERS): Reformat nicely.
6391         (REG_ALLOC_ORDER): Add MDR.
6392         (enum regclass): Add MDR_REGS.
6393         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
6394         (IRA_COVER_CLASSES): Add MDR_REGS.
6395         (REGNO_REG_CLASS): Handle MDR_REG.
6396         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
6397         (mn10300_register_move_cost): Likewise.
6398         * config/mn10300/mn10300.md (MDR_REG): New.
6399         (*movsi_internal): Handle moves to/from MDR_REGS.
6400
6401         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
6402         POST_MODIFY.
6403         (mn10300_secondary_reload): Tidy combination reload classes.
6404         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
6405         addresses for AM33.  Allow symbolic offsets for reg+imm.
6406         (mn10300_regno_in_class_p): New.
6407         (mn10300_legitimize_reload_address): New.
6408         * config/mn10300/mn10300.h (enum reg_class): Remove
6409         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
6410         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
6411         SP_OR_GENERAL_REGS.
6412         (REG_CLASS_NAMES): Update to match.
6413         (REG_CLASS_CONTENTS): Likewise.
6414         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
6415         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
6416         (REGNO_IN_RANGE_P): Remove.
6417         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
6418         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
6419         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
6420         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
6421         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
6422         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
6423         (REGNO_GENERAL_P): New.
6424         (HAVE_POST_MODIFY_DISP): New.
6425         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
6426         (LEGITIMIZE_RELOAD_ADDRESS): New.
6427         * config/mn10300/mn10300-protos.h: Update.
6428
6429         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
6430         DATA_REGS for AM33 stack-pointer destination.
6431         (mn10300_preferred_output_reload_class): Likewise.
6432         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
6433         into a form appropriate for ...
6434         (TARGET_SECONDARY_RELOAD): New.
6435         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
6436         * config/mn10300/mn10300-protos.h: Update.
6437         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
6438         reload_insi; use the "A" constraint for the scratch; handle AM33
6439         moves of sp to non-address registers.
6440
6441         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
6442         (*movqi_internal): ... here.
6443         (*am33_movhi, *mn10300_movhi): Merge into...
6444         (*movhi_internal): ... here.
6445         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
6446         as the source/destination of moves from/to SP.
6447         (movsf): Only allow for AM33-2.
6448         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
6449         any integer constant constraint.  Only allow for AM33-2.  Tidy
6450         all of the alternative outputs.
6451         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
6452         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
6453         for MN103.
6454         (udivsi3, umodsi3): New patterns for MN103 only.
6455
6456 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
6457
6458         * doc/tm.texi.in: Spell out that a lack of register class unions
6459         can lead to ICEs.
6460         * doc/tm.texi: Regenerate.
6461
6462 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
6463
6464         PR rtl-optimization/47337
6465         * dce.c (check_argument_store): New function.
6466         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
6467
6468         PR tree-optimization/47290
6469         * tree-eh.c (infinite_empty_loop_p): New function.
6470         (cleanup_empty_eh): Use it.
6471
6472 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
6473
6474         PR target/46997
6475         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
6476         (a64_expand_widen_sum): Ditto.
6477         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
6478         (vec_extract_evenodd_help): Ditto.
6479         (vec_extract_evenv4hi): Ditto.
6480         (vec_extract_oddv4hi): Ditto.
6481         (vec_extract_evenv2si): Ditto.
6482         (vec_extract_oddv2si): Ditto.
6483         (vec_extract_evenv2sf): Ditto.
6484         (vec_extract_oddv2sf): Ditto.
6485         (vec_pack_trunc_v4hi: Ditto.
6486         (vec_pack_trunc_v2si): Ditto.
6487         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
6488         (vec_interleave_highv8qi): Ditto.
6489         (mix1_r): Ditto.
6490         (vec_extract_oddv8qi): Ditto.
6491         (vec_interleave_lowv4hi): Ditto.
6492         (vec_interleave_highv4hi): Ditto.
6493         (vec_interleave_lowv2si): Ditto.
6494         (vec_interleave_highv2si): Ditto.
6495
6496 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6497
6498         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
6499         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
6500         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
6501         (pa_c_mode_for_suffix): New.
6502         (TARGET_EXPAND_BUILTIN): Define.
6503         (TARGET_C_MODE_FOR_SUFFIX): Define.
6504         (pa_builtins): Define.
6505         (pa_init_builtins): Register __float128 type and init new support
6506         builtins.
6507         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
6508         * config/pa/quadlib.c (_U_Qfcopysign): New.
6509
6510 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
6511
6512         PR middle-end/46894
6513         * explow.c (allocate_dynamic_stack_space): Do not assume more than
6514         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
6515         are defined.
6516
6517 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6518
6519         PR tree-optimization/47179
6520         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
6521         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
6522
6523 2011-01-18  Richard Guenther  <rguenther@suse.de>
6524
6525         PR rtl-optimization/47216
6526         * emit-rtl.c: Include tree-flow.h.
6527         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
6528         of replicating it with different semantics.
6529         * Makefile.in (emit-rtl.o): Adjust.
6530
6531 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6532
6533         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
6534         (cortex_a9_dp): Handle neon types correctly.
6535
6536 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
6537
6538         PR rtl-optimization/47299
6539         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
6540         subtarget.  Use normal multiplication if both operands are constants.
6541         * expmed.c (expand_widening_mult): Don't try to optimize constant
6542         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
6543         before using it.
6544
6545 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6546
6547         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
6548         spacing after 'e.g.', typos, comma, hyphenation.
6549
6550 2011-01-17  Richard Henderson  <rth@redhat.com>
6551
6552         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
6553         (rx_restricted_mem_operand): New.
6554         (rx_shift_operand): Use register_operand.
6555         (rx_source_operand, rx_compare_operand): Likewise.
6556         * config/rx/rx.md (addsi3_flags): New expander.
6557         (adddi3): Rewrite as expander.
6558         (adc_internal, *adc_flags, adddi3_internal): New patterns.
6559         (subsi3_flags): New expander.
6560         (subdi3): Rewrite as expander.
6561         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
6562
6563         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
6564         (rx_init_builtins): Remove sat builtin.
6565         (rx_expand_builtin): Likewise.
6566         * config/rx/rx.md (ssaddsi3): New.
6567         (*sat): Rename from sat.  Represent the CC_REG input.
6568
6569         * config/rx/predicates.md (rshift_operator): New.
6570         * config/rx/rx.c (rx_expand_insv): Remove.
6571         * config/rx/rx-protos.h: Update.
6572         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
6573         operand to the canonical position.
6574         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
6575         (*bitclr, *bitclr_in_memory): Similarly.
6576         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
6577         (insv): Retain the zero_extract in the expansion.
6578
6579         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
6580         (bswaphi2, bitinvert, revw): Likewise.
6581
6582         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
6583         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
6584         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
6585         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
6586         (bitset, bitset_in_memory): Likewise.
6587         (bitinvert, bitinvert_in_memory): Likewise.
6588         (bitclr, bitclr_in_memory): Likewise.
6589         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
6590         (rx_strend, rx_cmpstrn): Likewise.
6591         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
6592         (bitop peep2 patterns): Remove.
6593
6594         * config/rx/rx.c (rx_match_ccmode): New.
6595         * config/rx/rx-protos.h: Update.
6596         * config/rx/rx.md (abssi2): Clobber, don't set flags.
6597         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
6598         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
6599         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
6600         (fix_truncsfsi2, floatsisf2): Likewise.
6601         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
6602         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
6603         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
6604         (*subsi3_flags, *xorsi3_flags): New.
6605
6606         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
6607
6608         * config/rx/rx.c (rx_print_operand): Remove workaround for
6609         unsplit comparison operations.
6610
6611         * config/rx/rx.md (movsicc): Split after reload.
6612         (*movsicc): Merge *movsieq and *movsine via match_operator.
6613         (*stcc): New pattern.
6614
6615         * config/rx/rx.c (rx_float_compare_mode): Remove.
6616         * config/rx/rx.h (rx_float_compare_mode): Remove.
6617         * config/rx/rx.md (cstoresi4): Split after reload.
6618         (*sccc): New pattern.
6619
6620         * config/rx/predicates.md (label_ref_operand): New.
6621         (rx_z_comparison_operator): New.
6622         (rx_zs_comparison_operator): New.
6623         (rx_fp_comparison_operator): New.
6624         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
6625         Validate that the flags are set properly for the comparison.
6626         (rx_gen_cond_branch_template): Remove.
6627         (rx_cc_modes_compatible): Remove.
6628         (mode_from_flags): New.
6629         (flags_from_code): Rename from flags_needed_for_conditional.
6630         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
6631         (rx_select_cc_mode): Likewise.
6632         (rx_split_fp_compare): New.
6633         (rx_split_cbranch): New.
6634         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
6635         (*cbranchsi4): Use match_operator and rx_split_cbranch.
6636         (*cbranchsf4): Similarly.
6637         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
6638         match_operator and rx_split_cbranch.
6639         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
6640         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
6641         (*cmpsi): Rename from cmpsi.
6642         (*tstsi): Rename from tstsi.
6643         (*cmpsf): Rename from cmpsf; use CC_Fmode.
6644         (*conditional_branch): Rename from conditional_branch.
6645         (*reveresed_conditional_branch): Remove.
6646         (b<code>): Remove expander.
6647         * config/rx/rx-protos.h: Update.
6648
6649         * config/rx/rx.c (rx_compare_redundant): Remove.
6650         * config/rx/rx.md (cmpsi): Don't use it.
6651         * config/rx/rx-protos.h: Update.
6652
6653         * config/rx/rx-modes.def (CC_F): New mode.
6654         * config/rx/rx.c (rx_select_cc_mode): New.
6655         * config/rx/rx.h (SELECT_CC_MODE): Use it.
6656         * config/rx/rx-protos.h: Update.
6657
6658 2011-01-17  Richard Henderson  <rth@redhat.com>
6659
6660         * except.c (dump_eh_tree): Fix stray ; after for statement.
6661
6662 2011-01-17  Richard Guenther  <rguenther@suse.de>
6663
6664         PR tree-optimization/47313
6665         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
6666         handling before copying the body.  Properly deal with
6667         by-reference result in SSA form.
6668
6669 2011-01-17  Ian Lance Taylor  <iant@google.com>
6670
6671         PR target/47219
6672         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
6673         (struct_value_alias_set): Don't define.
6674         (sparc_option_override): Don't set sparc_sr_alias_set and
6675         struct_value_alias_set.
6676         (save_or_restore_regs): Use gen_frame_mem rather than calling
6677         set_mem_alias_set.
6678         (sparc_struct_value_rtx): Likewise.
6679
6680 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
6681
6682         PR target/47318
6683         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
6684         (_mm_maskstore_pd): Likewise.
6685         (_mm_maskload_ps): Likewise.
6686         (_mm_maskstore_ps): Likewise.
6687         (_mm256_maskload_pd): Change mask to __m256i.
6688         (_mm256_maskstore_pd): Likewise.
6689         (_mm256_maskload_ps): Likewise.
6690         (_mm256_maskstore_ps): Likewise.
6691
6692         * config/i386/i386-builtin-types.def: Updated.
6693         (ix86_expand_special_args_builtin): Likewise.
6694
6695         * config/i386/i386.c (bdesc_special_args): Update
6696         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
6697         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
6698         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
6699         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
6700
6701         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
6702         Use <avxpermvecmode> on mask register.
6703         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
6704
6705 2011-01-17  Olivier Hainque  <hainque@adacore.com>
6706             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
6707             Eric Botcazou  <ebotcazou@adacore.com>
6708
6709         PR target/46655
6710         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
6711         if <= USHRT_MAX in 32-bit mode.
6712
6713 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6714
6715         * doc/install.texi (Configuration, Specific): Wrap long
6716         lines in examples.  Allow line wrapping in long options
6717         and URLs where beneficial for PDF output.
6718
6719 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
6720
6721         * config/mips/mips.c (mips_classify_symbol): Don't return
6722         SYMBOL_PC_RELATIVE for nonlocal labels.
6723
6724 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
6725
6726         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
6727
6728 2011-01-15  Jan Hubicka  <jh@suse.cz>
6729
6730         PR tree-optimization/47276
6731         * ipa.c (function_and_variable_visibility): Do not try to mark alias
6732         declarations as needed.
6733
6734 2011-01-15  Martin Jambor  <mjambor@suse.cz>
6735
6736         * common.opt (fdevirtualize): New flag.
6737         * doc/invoke.texi (Option Summary): Document it.
6738         * opts.c (default_options_table): Add devirtualize flag.
6739         * ipa-prop.c (detect_type_change): Return immediately if
6740         devirtualize flag is not set.
6741         (detect_type_change_ssa): Likewise.
6742         (compute_known_type_jump_func): Likewise.
6743         (ipa_analyze_virtual_call_uses): Likewise.
6744
6745 2011-01-14  Martin Jambor  <mjambor@suse.cz>
6746
6747         PR tree-optimization/45934
6748         PR tree-optimization/46302
6749         * ipa-prop.c (type_change_info): New type.
6750         (stmt_may_be_vtbl_ptr_store): New function.
6751         (check_stmt_for_type_change): Likewise.
6752         (detect_type_change): Likewise.
6753         (detect_type_change_ssa): Likewise.
6754         (compute_complex_assign_jump_func): Check for dynamic type change.
6755         (compute_complex_ancestor_jump_func): Likewise.
6756         (compute_known_type_jump_func): Likewise.
6757         (compute_scalar_jump_functions): Likewise.
6758         (ipa_analyze_virtual_call_uses): Likewise.
6759         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
6760
6761 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6762
6763         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
6764         * config/i386/i386.opt (msse5): New Alias.
6765
6766 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6767
6768         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
6769         * config/sparc/linux64.h (CC1_SPEC): Likewise.
6770         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
6771         * config/sparc/sparc.h (CC1_SPEC): Likewise.
6772
6773 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6774
6775         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
6776         -mcpu options.
6777         * config/sparc/linux64.h (CC1_SPEC): Likewise.
6778         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
6779         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
6780         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
6781         Likewise.
6782         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
6783
6784 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6785
6786         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
6787
6788 2011-01-14  Mike Stump  <mikestump@comcast.net>
6789
6790         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
6791         * config/fr30/fr30.md: Likweise
6792         (movsi_push): Likewise.
6793         (movsi_pop): Likewise.
6794         (enter_func): Likewise.
6795         * config/moxie/moxie.md (movsi_push): Likewise.
6796         (movsi_pop): Likewise.
6797
6798 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6799
6800         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
6801         %{no_archive} %{exact_version}.
6802         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
6803         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
6804         %{no_archive} %{exact_version}.
6805         * config/mips/openbsd.h (LINK_SPEC): Likewise.
6806         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
6807         * config/mips/vxworks.h: Likewise.
6808
6809 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6810
6811         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
6812
6813 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6814
6815         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
6816         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
6817
6818 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6819
6820         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
6821         -nodefaultlib.
6822
6823 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6824
6825         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
6826         for mcpu not cpu.
6827         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
6828         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
6829         not cpu.
6830         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
6831         Don't handle -shlib.
6832
6833 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6834
6835         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
6836         (CC1_SPEC): Don't handle -profile.
6837
6838 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6839
6840         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
6841         * config/mips/mips.h (CC1_SPEC): Likewise.
6842
6843 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6844
6845         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
6846         * config/mips/mips.h (CC1_SPEC): Likewise.
6847
6848 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6849
6850         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
6851         * config/m32r/linux.h (LINK_SPEC): Likewise.
6852         * config/mips/linux.h (LINK_SPEC): Likewise.
6853         * config/mips/linux64.h (LINK_SPEC): Likewise.
6854         * config/sparc/linux.h (LINK_SPEC): Likewise.
6855         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
6856         LINK_SPEC): Likewise.
6857         * config/xtensa/linux.h (LINK_SPEC): Likewise.
6858
6859 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6860
6861         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
6862         %{version:-v}.
6863         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
6864
6865 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6866
6867         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
6868         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
6869
6870 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
6871
6872         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
6873
6874 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6875
6876         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
6877         supports -Bstatic/-Bdynamic.
6878         * configure: Regenerate.
6879
6880 2011-01-14  Jan Hubicka  <jh@suse.cz>
6881             Jack Howarth  <howarth@bromo.med.uc.edu>
6882
6883         PR target/46037
6884         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
6885         when checking debug_info_level. Test write_symbols instead of
6886         debug_hooks->var_location when setting flag_var_tracking_uninit.
6887
6888 2011-01-14  Richard Guenther  <rguenther@suse.de>
6889
6890         PR tree-optimization/47179
6891         * target.def (ref_may_alias_errno): New target hook.
6892         * targhooks.h (default_ref_may_alias_errno): Declare.
6893         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
6894         (default_ref_may_alias_errno): New function.
6895         * target.h (struct ao_ref_s): Declare.
6896         * tree-ssa-alias.c: Include target.h.
6897         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
6898         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
6899         (targhooks.o): Likewise.
6900         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
6901         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
6902
6903 2011-01-14  Richard Guenther  <rguenther@suse.de>
6904
6905         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
6906
6907 2011-01-14  Richard Guenther  <rguenther@suse.de>
6908
6909         PR tree-optimization/47280
6910         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
6911         return CFG changes.
6912         (tree_ssa_forward_propagate_single_use_vars): Deal with
6913         CFG changes from associate_plusminus.
6914
6915 2011-01-14  Richard Guenther  <rguenther@suse.de>
6916
6917         PR middle-end/47281
6918         Revert
6919         2011-01-11  Richard Guenther  <rguenther@suse.de>
6920
6921         PR tree-optimization/46076
6922         * tree-ssa.c (useless_type_conversion_p): Conversions from
6923         unprototyped to empty argument list function types are useless.
6924
6925 2011-01-14  Richard Guenther  <rguenther@suse.de>
6926
6927         PR tree-optimization/47286
6928         * tree-ssa-structalias.c (new_var_info): Register variables are global.
6929
6930 2011-01-14  Martin Jambor  <mjambor@suse.cz>
6931
6932         PR middle-end/46823
6933         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
6934
6935 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
6936
6937         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
6938         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
6939         * config/xtensa/xtensa.c (xtensa_libcall_value,
6940         xtensa_function_value_regno_p): New functions.
6941         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
6942
6943 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
6944
6945         PR c++/47213
6946         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
6947         PE specific hook.
6948         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
6949         New function prototype.
6950         * config/i386/winnt.c (i386_pe_assemble_visibility):
6951         Warn only if attribute was specified by user.
6952
6953 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
6954
6955         PR target/47251
6956         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
6957         floating point.
6958         (floatunsdidf2_fcfidu): Ditto.
6959
6960 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6961
6962         * config/s390/s390.c (print_operand_address): Replace 'error' with
6963         'output_operand_lossage'.
6964         (print_operand): Likewise.
6965
6966 2011-01-13  Jeff Law  <law@redhat.com>
6967
6968         PR rtl-optimization/39077
6969         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
6970         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
6971         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
6972         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
6973         * gcse.c (prune_insertions_deletions): New function.
6974         (compute_pre_data): Use it.
6975
6976 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
6977
6978         PR debug/PR46973
6979         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
6980         static function.
6981         (prune_unused_types_mark): Use it.
6982
6983 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
6984
6985         PR rtl-optimization/45352
6986         * sel-sched.c: Update copyright years.
6987         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
6988         in the advancing loop when we have issued issue_rate insns.
6989
6990 2011-01-12  Richard Henderson  <rth@redhat.com>
6991
6992         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
6993         (TARGET_MD_ASM_CLOBBERS): New.
6994
6995         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
6996         (TARGET_DELEGITIMIZE_ADDRESS): New.
6997
6998         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
6999         (clzsi2, *bsch): New patterns.
7000
7001         * config/mn10300/mn10300.md (INT): New mode iterator.
7002         (*mov<INT>_clr): New pattern, and peep2 to generate it.
7003
7004         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
7005         flag_split_wide_types.
7006
7007         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
7008         (mn10300_trampoline_init): Rewrite without a template, an immediate
7009         load and a direct branch.
7010         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
7011
7012 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
7013
7014         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
7015         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
7016         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
7017         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7018
7019 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
7020
7021         PR debug/47209
7022         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
7023         of type.
7024
7025 2011-01-12  Jan Hubicka  <jh@suse.cz>
7026
7027         PR driver/47244
7028         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
7029         (PLUGIN_COND_CLOSE): New macro.
7030         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
7031
7032 2011-01-12  Richard Guenther  <rguenther@suse.de>
7033
7034         PR lto/47259
7035         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
7036         register variables in a MEM_REF.
7037
7038 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
7039
7040         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
7041         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
7042         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
7043         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
7044         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
7045         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
7046         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
7047         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
7048         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
7049         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
7050         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
7051         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
7052         * config/gnu-user.h: New.  Copied from linux.h.
7053         (LINUX_TARGET_STARTFILE_SPEC): Rename to
7054         GNU_USER_TARGET_STARTFILE_SPEC.
7055         (LINUX_TARGET_ENDFILE_SPEC): Rename to
7056         GNU_USER_TARGET_ENDFILE_SPEC.
7057         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
7058         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
7059         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
7060         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
7061         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
7062         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
7063         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
7064         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
7065         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
7066         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
7067         * config/arm/linux-eabi.h (CC1_SPEC): Use
7068         GNU_USER_TARGET_CC1_SPEC.
7069         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
7070         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
7071         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
7072         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
7073         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
7074         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
7075         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
7076         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
7077
7078 2011-01-12  Richard Guenther  <rguenther@suse.de>
7079
7080         PR other/46946
7081         * doc/invoke.texi (ffast-math): Document it is turned on
7082         with -Ofast.
7083
7084 2011-01-12  Jan Hubicka  <jh@suse.cz>
7085
7086         PR tree-optimization/47233
7087         * opts.c (common_handle_option): Disable ipa-reference with profile
7088         feedback.
7089
7090 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
7091
7092         * c-parser.c (c_parser_objc_at_property_declaration): Improved
7093         error message.
7094
7095 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
7096
7097         * c-parser.c (c_lex_one_token): Updated and reindented some
7098         comments.  No changes in code.
7099
7100 2011-01-11  Ian Lance Taylor  <iant@google.com>
7101
7102         * godump.c (go_output_var): Don't output the variable if there is
7103         already a type with the same name.
7104
7105 2011-01-11  Ian Lance Taylor  <iant@google.com>
7106
7107         * godump.c (go_format_type): Don't generate float80.
7108
7109 2011-01-11  Richard Henderson  <rth@redhat.com>
7110
7111         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
7112         declaration.  Rewrite for both speed and size.
7113         (mn10300_address_cost_1): Remove.
7114         (mn10300_register_move_cost): New.
7115         (mn10300_memory_move_cost): New.
7116         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
7117         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
7118         extensions, shifts, BSWAP, CLZ.
7119         (mn10300_wide_const_load_uses_clr): Remove.
7120         (TARGET_REGISTER_MOVE_COST): New.
7121         (TARGET_MEMORY_MOVE_COST): New.
7122         * config/mn10300/mn10300-protos.h: Update.
7123         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
7124
7125         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
7126         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
7127         * config/mn10300/mn10300-protos.h: Update.
7128         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
7129         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
7130         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
7131         (*test_int_bitfield, *test_byte_bitfield): Remove.
7132         (*bit_test, *subreg_bit_test): Remove.
7133         * config/mn10300/predicates.md (const_8bit_operand): Remove.
7134
7135         * config/mn10300/constraints.md ("c"): Rename from "A".
7136         ("A", "D"): New constraint letters.
7137         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
7138         (fmssf4, fnmasf4, fnmssf4): Likewise.
7139
7140         * config/mn10300/mn10300.md (isa): New attribute.
7141         (enabled): New attribute.
7142
7143         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
7144         (abssf2, negsf2): Define only for hardware fp.
7145         (sqrtsf2): Reformat.
7146         (addsf3, subsf3, mulsf3): Merge expander and insn.
7147
7148         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
7149         (DEBUGGER_AUTO_OFFSET): Remove.
7150         (DEBUGGER_ARG_OFFSET): Remove.
7151
7152         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
7153         Emit register stores with the same offsets as the hardware.
7154         (mn10300_store_multiple_operation): Don't check that the register
7155         save offsets are monotonic.
7156         * config/mn10300/mn10300-protos.h: Update.
7157
7158         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
7159
7160         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
7161         in terms of the value on the stack, not the MDR register.
7162
7163 2011-01-11  Jan Hubicka  <jh@suse.cz>
7164
7165         PR lto/45721
7166         PR lto/45375
7167         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
7168         (symbol_alias_set_destroy, symbol_alias_set_contains,
7169         propagate_aliases_backward): Declare.
7170         * lto-streamer-out.c (struct sets): New sturcture.
7171         (trivally_defined_alias): New function.
7172         (output_alias_pair_p): Rewrite.
7173         (output_unreferenced_globals): Fix output of alias pairs.
7174         (produce_symtab): Likewise.
7175         * ipa.c (function_and_variable_visibility): Set weak alias destination
7176         as needed in lto.
7177         * varasm.c (symbol_alias_set_t): Remove.
7178         (symbol_alias_set_destroy): Export.
7179         (propagate_aliases_forward, propagate_aliases_backward): New functions
7180         based on ...
7181         (compute_visible_aliases): ... this one; remove.
7182         (trivially_visible_alias): New
7183         (trivially_defined_alias): New.
7184         (remove_unreachable_alias_pairs): Rewrite.
7185         (finish_aliases_1): Reorganize code checking if alias is defined.
7186         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
7187         in LTO mode.
7188
7189 2011-01-11  Richard Guenther  <rguenther@suse.de>
7190
7191         PR tree-optimization/46076
7192         * tree-ssa.c (useless_type_conversion_p): Conversions from
7193         unprototyped to empty argument list function types are useless.
7194
7195 2011-01-11  Richard Guenther  <rguenther@suse.de>
7196
7197         PR middle-end/45235
7198         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
7199         volatile MEMs as MEM_READONLY_P.
7200
7201 2011-01-11  Richard Guenther  <rguenther@suse.de>
7202
7203         PR tree-optimization/47239
7204         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
7205
7206 2011-01-11  Jeff Law  <law@redhat.com>
7207
7208         PR tree-optimization/47086
7209         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
7210         IVs from statements that might throw.
7211
7212 2011-01-10  Jan Hubicka  <jh@suse.cz>
7213
7214         PR lto/45375
7215         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
7216
7217 2011-01-10  Jan Hubicka  <jh@suse.cz>
7218
7219         PR lto/45375
7220         * profile.c (read_profile_edge_counts): Ignore profile inconistency
7221         when correcting profile.
7222
7223 2011-01-10  Jan Hubicka  <jh@suse.cz>
7224
7225         PR lto/46083
7226         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
7227         DECL_FINI_PRIORITY.
7228         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
7229         Restore DECL_FINI_PRIORITY.
7230
7231 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7232
7233         * doc/gimple.texi: Fix quoting of multi-word return values in
7234         @deftypefn statements.  Ensure presence of return value.  Wrap
7235         overlong @deftypefn lines.
7236         (is_gimple_operand, is_gimple_min_invariant_address): Remove
7237         descriptions of removed functions.
7238         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
7239         of multi-word return value in @deftypefn statement.
7240
7241 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7242
7243         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
7244         (Conditional Expressions, Logical Operators)
7245         (Statement and operand traversals): Do not indent smallexample
7246         code.  Fix duplicate function argument in example.
7247
7248 2011-01-10  Jeff Law  <law@redhat.com>
7249
7250         PR tree-optimization/47141
7251         * ipa-split.c (split_function): Handle case where we are
7252         returning a value and the return block has a virtual operand phi.
7253
7254 2011-01-10  Jan Hubicka  <jh@suse.cz>
7255
7256         PR tree-optimization/47234
7257         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
7258         (pass_feedback_split_functions): Declare.
7259         * passes.c (init_optimization_passes): Add ipa-split as subpass of
7260         tree-profile.
7261         * ipa-split.c (gate_split_functions): Update comments; disable
7262         split-functions for profile_arc_flag and branch_probabilities.
7263         (gate_feedback_split_functions): New function.
7264         (execute_feedback_split_functions): New function.
7265         (pass_feedback_split_functions): New global var.
7266
7267 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
7268
7269         PR lto/46760
7270         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
7271         calling gimple_call_set_cannot_inline.
7272
7273 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
7274
7275         * config/darwin-sections.def: Remove unused section.
7276
7277 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
7278
7279         PR c++/47218
7280         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
7281
7282 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
7283
7284         PR objc/47232
7285         * c-parser.c (c_parser_declaration_or_fndef): Improved
7286         error message.
7287
7288 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
7289
7290         * config/i386/winnt.c (i386_pe_start_function): Make sure
7291         to switch back to function's section.
7292
7293 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
7294
7295         PR gcc/46902
7296         PR testsuite/46912
7297         * plugin.c: Move include of dlfcn.h from here...
7298         * system.h: ... to here.
7299
7300 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7301
7302         * doc/cpp.texi (C++ Named Operators): Fix markup for header
7303         file name.
7304         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
7305         two extra empty pages in PDF output.
7306
7307 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
7308
7309         PR objc/47078
7310         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
7311         for error recovery purposes behave as if it was not specified so
7312         that the default type is usd.
7313
7314 2011-01-07  Jan Hubicka  <jh@suse.cz>
7315
7316         PR tree-optmization/46469
7317         * ipa.c (function_and_variable_visibility): Clear needed flags on
7318         nodes with external decls; handle weakrefs merging correctly.
7319
7320 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
7321
7322         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
7323         not false.
7324
7325 2011-01-07  Jan Hubicka  <jh@suse.cz>
7326
7327         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
7328         and no longer claim that gold is required for linker plugin.
7329         * configure: Regenerate.
7330         * gcc.c (PLUGIN_COND): New macro.
7331         (LINK_COMMAND_SPEC): Use it.
7332         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
7333         * config.in (HAVE_LTO_PLUGIN): New.
7334         * configure.ac (--with-lto-plugin): New parameter; autodetect
7335         HAVE_LTO_PLUGIN.
7336
7337 2011-01-07  Jan Hubicka  <jh@suse.cz>
7338
7339         PR tree-optimization/46367
7340         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
7341         when we can update original.
7342         (cgraph_mark_inline_edge): Sanity check.
7343         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
7344
7345 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7346
7347         * config/spu/spu.h (ASM_COMMENT_START): Define.
7348
7349 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
7350
7351         PR driver/42445
7352         * gcc.c (%>S): New.
7353         (SWITCH_KEEP_FOR_GCC): Likewise.
7354         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
7355         (do_spec_1): Handle "%>".
7356
7357         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
7358
7359 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
7360
7361         PR target/47201
7362         * config/i386/i386.c (ix86_delegitimize_address): If
7363         simplify_gen_subreg fails, return orig_x.
7364
7365         PR bootstrap/47187
7366         * value-prof.c (gimple_stringop_fixed_value): Handle
7367         lhs of the call properly.
7368
7369 2011-01-07  Jan Hubicka  <jh@suse.cz>
7370
7371         PR lto/45375
7372         * lto-opt.c (lto_reissue_options): Set flag_shlib.
7373
7374 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
7375
7376         * target.def (function_switched_text_sections): New hook.
7377         * doc/tm.texi: Regenerated.
7378         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
7379         * final.c (default_function_switched_text_sections): New.
7380         (final_scan_insn): Call function_switched_text_sections when a
7381         mid-function section change occurs.
7382         * output.h (default_function_switched_text_sections): Declare.
7383         * config/darwin-protos.h (darwin_function_switched_text_sections):
7384         Likewise.
7385         * config/darwin.c (darwin_function_switched_text_sections): New.
7386         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
7387
7388 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
7389
7390         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
7391         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
7392         the secondary code fragment when outputting for DWARF == 2.
7393
7394 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
7395
7396         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
7397         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
7398         Remove.
7399         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
7400         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7401
7402 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
7403
7404         PR debug/46704
7405         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
7406         when it is not empty.
7407
7408 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
7409
7410         Bobcat Enablement
7411         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
7412         (case ${target}): Add btver1.
7413         * config/i386/driver-i386.c (host_detect_local_cpu): Let
7414         -march=native recognize btver1 processors.
7415         * config/i386/i386-c.c (ix86_target_macros_internal): Add
7416         btver1 def_and_undef
7417         * config/i386/i386.c (struct processor_costs btver1_cost): New
7418         btver1 cost table.
7419         (m_BTVER1): New definition.
7420         (m_AMD_MULTIPLE): Includes m_BTVER1.
7421         (initial_ix86_tune_features): Add btver1 tune.
7422         (processor_target_table): Add btver1 entry.
7423         (static const char *const cpu_names): Add btver1 entry.
7424         (software_prefetching_beneficial_p): Add btver1.
7425         (ix86_option_override_internal): Add btver1 instruction sets.
7426         (ix86_issue_rate): Add btver1.
7427         (ix86_adjust_cost): Add btver1.
7428         * config/i386/i386.h (TARGET_BTVER1): New definition.
7429         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
7430         (enum processor_type): Add PROCESSOR_BTVER1.
7431         * config/i386/i386.md (define_attr "cpu"): Add btver1.
7432
7433 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7434
7435         PR target/43309
7436         * config/i386/i386.c (legitimize_tls_address)
7437         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
7438         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
7439         (tls_initial_exec_64_sun): New pattern.
7440
7441 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
7442
7443         * doc/invoke.texi (Overall Options): Improve wording and markup
7444         of the description of -wrapper.
7445
7446 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
7447
7448         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
7449         rdynamic, threads): New Driver options.
7450
7451 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7452
7453         PR target/38118
7454         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
7455         if coming from .tdata.
7456         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
7457
7458 2011-01-06  Jan Hubicka  <jh@suse.cz>
7459
7460         PR lto/47188
7461         * collect2.c (main): Do not enable LTOmode when plugin is active.
7462
7463 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7464
7465         PR other/45915
7466         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
7467         --version output if supported.
7468         * configure: Regenerate.
7469
7470 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
7471
7472         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
7473         Driver options.
7474
7475 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
7476
7477         PR c/47150
7478         * c-convert.c (convert): When converting a complex expression
7479         other than COMPLEX_EXPR to a different complex type, ensure
7480         c_save_expr is called instead of save_expr, unless in_late_binary_op.
7481         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
7482         when converting COMPLEX_TYPE.
7483
7484 2011-01-06  Ira Rosen  <irar@il.ibm.com>
7485
7486         PR tree-optimization/47139
7487         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
7488         only the last reduction value is used outside the loop.  Update
7489         documentation.
7490
7491 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
7492
7493         * config/rtems.opt: New.
7494         * config.gcc (*-*-rtems*): Use rtems.opt.
7495
7496 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
7497
7498         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
7499         processors do not support 3DNow instructions.
7500
7501 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7502
7503         * config/spu/spu.c (spu_option_override): Set parameter
7504         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
7505
7506 2011-01-05  Jan Hubicka  <jh@suse.cz>
7507
7508         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
7509         at the command line.
7510
7511 2011-01-05  Martin Jambor  <mjambor@suse.cz>
7512
7513         PR lto/47162
7514         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
7515         deltas on streamed outgoing edges.
7516         (output_node_opt_summary): Output info for outgoing edges only when
7517         the node is in new parameter set.
7518         (output_cgraph_opt_summary): New parameter set, passed to the two
7519         aforementioned functions.  Update its forward declaration and its
7520         callee too.
7521
7522 2011-01-05  Tom Tromey  <tromey@redhat.com>
7523
7524         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
7525         operator to c_finish_omp_atomic.
7526         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
7527         (build_unary_op): Update.
7528         (build_modify_expr): Update.
7529         (build_asm_expr): Update.
7530
7531 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7532
7533         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
7534         newly inserted insns.
7535         (pad_bb): Likewise.
7536         (spu_emit_branch_hint): Likewise.
7537         (insert_hbrp_for_ilb_runout): Likewise.
7538         (spu_machine_dependent_reorg): Call df_finish_pass after
7539         schedule_insns returns.
7540
7541 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7542
7543         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
7544
7545 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
7546
7547         PR tree-optimization/47005
7548         * tree-sra.c (struct access): Add 'non_addressable' bit.
7549         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
7550         (decide_one_param_reduction): Return 0 if the parameter is passed by
7551         reference and one of the accesses in the group is non_addressable.
7552
7553 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
7554
7555         PR tree-optimization/47056
7556         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
7557         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
7558         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
7559
7560 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
7561
7562         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
7563         initializer.  Skip view conversions from aggregate types.
7564
7565 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
7566
7567         PR bootstrap/47055
7568         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
7569
7570 2011-01-04  Philipp Thomas  <pth@suse.de>
7571
7572         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
7573         obvious typo.
7574
7575 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7576
7577         * function.c (thread_prologue_and_epilogue_insns): Do not crash
7578         on empty epilogue sequences.
7579
7580 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
7581
7582         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
7583         non-static): New Driver options.
7584
7585 2011-01-04  Jie Zhang  <jie@codesourcery.com>
7586
7587         PR driver/47137
7588         * gcc.c (default_compilers[]): Set combinable field to 0
7589         for all assembly languages.
7590
7591 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
7592
7593         * config/mips/loongson3a.md: New file.
7594         * config/mips/mips.md: Include loongson3a.md.
7595         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
7596         TUNE_LOONGSON_3A.
7597
7598 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
7599
7600         PR middle-end/47017
7601         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
7602         instead of convert_memory_address_addr_space on the base expression.
7603
7604 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7605
7606         * config/spu/spu.c (spu_option_override): Update error text
7607         for bad -march= / -mtune= values.
7608
7609 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7610
7611         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
7612         if branch-hint optimization will be performed.
7613
7614 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
7615
7616         PR tree-optimization/47148
7617         * ipa-split.c (split_function): Convert arguments to
7618         DECL_ARG_TYPE if possible.
7619
7620         PR tree-optimization/47155
7621         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
7622         when computing uns.
7623
7624         PR rtl-optimization/47157
7625         * combine.c (try_combine): If undobuf.other_insn becomes
7626         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
7627         and set *new_direct_jump_p too.
7628
7629 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
7630
7631         PR tree-optimization/47021
7632         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
7633
7634 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
7635
7636         * gcc.c (process_command): Update copyright notice dates.
7637         * gcov.c (print_version): Likewise.
7638         * gcov-dump.c (print_version): Likewise.
7639         * mips-tfile.c (main): Likewise.
7640         * mips-tdump.c (main): Likewise.
7641
7642 2011-01-03  Martin Jambor  <mjambor@suse.cz>
7643
7644         PR tree-optimization/46801
7645         * tree-sra.c (type_internals_preclude_sra_p): Check whether
7646         aggregate fields start at byte boundary instead of the bit-field flag.
7647
7648 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
7649
7650         PR driver/47137
7651         * gcc.c (main): Revert revision 168407.
7652
7653 2011-01-03  Martin Jambor  <mjambor@suse.cz>
7654
7655         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
7656
7657 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7658
7659         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
7660         vector optab to expand vector/scalar shift, update gimple to vector.
7661
7662 2011-01-03  Martin Jambor  <mjambor@suse.cz>
7663
7664         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
7665         a thunk.
7666
7667 2011-01-03  Martin Jambor  <mjambor@suse.cz>
7668
7669         PR tree-optimization/46984
7670         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
7671         HOST_WIDE_INT.
7672         (cgraph_create_indirect_edge): Fixed line length.
7673         (cgraph_indirect_call_info): Declare.
7674         (cgraph_make_edge_direct) Update declaration.
7675         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
7676         (cgraph_create_indirect_edge): Use it.
7677         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
7678         callees.
7679         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
7680         the new thunk_delta representation.
7681         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
7682         HOST_WIDE_INT.
7683         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
7684         (ipa_read_indirect_edge_info): Likewise.
7685         * lto-cgraph.c (output_edge_opt_summary): New function.
7686         (output_node_opt_summary): Call it on all outgoing edges.
7687         (input_edge_opt_summary): New function.
7688         (input_node_opt_summary): Call it on all outgoing edges.
7689
7690 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
7691
7692         PR driver/47137
7693         * gcc.c (main): Don't check have_o when settting combine_inputs.
7694
7695 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
7696
7697         * regrename.c: Add general comment describing the pass.
7698         (struct du_head): Remove 'length' field.
7699         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
7700         (regrename_optimize): Do not sort chains.  Rework comments, add others.
7701         Force renaming to the preferred class (if any) in the first pass and do
7702         not consider registers that belong to it in the second pass.
7703         (create_new_chain): Do not set 'length' field.
7704         (scan_rtx_reg): Likewise.
7705
7706 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
7707
7708         PR tree-optimization/47140
7709         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
7710         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
7711         to bit_value_binop.
7712
7713         PR rtl-optimization/47028
7714         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
7715         parm_birth_insn instead of at the beginning of first bb.
7716
7717 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
7718
7719         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
7720         Remove the word "see" before "@pxref".
7721         * doc/rtl.texi: Remove the word "see" before "@pxref".
7722
7723 2011-01-01  Jan Hubicka  <jh@suse.cz>
7724
7725         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
7726         memory.
7727
7728 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
7729
7730         PR target/38662
7731         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
7732
7733 \f
7734 Copyright (C) 2011 Free Software Foundation, Inc.
7735
7736 Copying and distribution of this file, with or without modification,
7737 are permitted in any medium without royalty provided the copyright
7738 notice and this notice are preserved.