OSDN Git Service

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