OSDN Git Service

Remove the unused demangle_flag in collect2.c.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR bootstrap/49835
4         * collect2.c (demangle_flag): Removed.
5
6 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
7
8         * configure.ac (demangler_in_ld): Default to yes.
9         * configure: Regenerated.
10         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
11         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
12         --no-demangle options straight through to ld.  When
13         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
14         way that has the intended effect on Windows.
15
16 2011-07-23  Richard Henderson  <rth@redhat.com>
17
18         * dwarf2cfi.c: Include basic-block.h.
19         (dw_label_info): Remove.
20         (trace_work_list, trace_index): New.
21         (remember_row, emit_cfa_remember): Remove.
22         (dw_trace_info_hash, dw_trace_info_eq): New.
23         (get_trace_index, get_trace_info): New.
24         (save_point_p): New.
25         (free_cfi_row): Remove.
26         (add_cfi): Do not emit DW_CFA_remember_state.
27         (cfa_row_equal_p): New.
28         (barrier_args_size): Remove.
29         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
30         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
31         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
32         (dwarf2out_cfi_begin_epilogue): Remove.
33         (dwarf2out_frame_debug_restore_state): Remove.
34         (connect_traces, create_pseudo_cfg): New.
35         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
36         * Makefile.in (dwarf2cfi.o): Update.
37
38 2011-07-23  Richard Henderson  <rth@redhat.com>
39
40         * dwarf2cfi.c (dw_trace_info): New.
41         (dw_label_info): New.
42         (cie_return_save): New.
43         (cur_trace): New.
44         (queued_args_size): Rename from args_size.  Update all users.
45         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
46         (def_cfa_1): Use cur_trace instead of cfa_*.
47         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
48         (clobbers_queued_reg_save, reg_saved_in): Likewise.
49         (dwarf2out_frame_debug_expr): Likewise.
50         (create_cie_data): Split out from ...
51         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
52
53 2011-07-23  Richard Henderson  <rth@redhat.com>
54
55         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
56         Update all users to match.
57         (execute_dwarf2_frame): Free reg_saved_in_data.
58
59 2011-07-23  Richard Henderson  <rth@redhat.com>
60
61         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
62         (queued_reg_saves): Don't GTY.  Change to a VEC.
63         (queue_reg_save): Update to match.
64         (dwarf2out_flush_queued_reg_saves): Likewise.
65         (clobbers_queued_reg_save): Likewise.
66         (reg_saved_in): Likewise.
67         (execute_dwarf2_frame): Free queued_reg_saves.
68
69 2011-07-23  Richard Henderson  <rth@redhat.com>
70
71         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
72
73 2011-07-23  Richard Henderson  <rth@redhat.com>
74
75         * dwarf2cfi.c (add_cfi_args_size): Split out from...
76         (dwarf2out_args_size): ... here.
77         (add_cfi_restore): Split out from ...
78         (dwarf2out_frame_debug_cfa_restore): ... here.
79         (def_cfa_0): Split out from ...
80         (def_cfa_1): ... here.
81         (cfi_oprnd_equal_p, cfi_equal_p): New.
82         (change_cfi_row): New.
83         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
84         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
85         (output_cfis): Remove.
86         * dwarf2out.c (output_fde): Simplify output_cfi loop.
87         (dwarf2out_switch_text_section): Don't call output_cfis.
88         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
89         * dwarf2out.h: Update decls.
90         (enum dw_val_class): Add dw_val_class_none.
91
92 2011-07-23  Richard Henderson  <rth@redhat.com>
93
94         * dwarf2cfi.c (update_row_reg_save): New.
95         (dwarf2out_frame_debug_cfa_expression): Use it.
96         (dwarf2out_frame_debug_cfa_restore): Likewise.
97         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
98
99 2011-07-23  Richard Henderson  <rth@redhat.com>
100
101         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
102
103 2011-07-23  Richard Henderson  <rth@redhat.com>
104
105         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
106         (cie_cfi_row): New.
107         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
108         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
109         (cur_row, remember_row): New.
110         (def_cfa_1): Use cur_row instead of the old_* variables.
111         (dwarf2out_frame_debug_restore_state): Similarly.
112         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
113         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
114         (dwarf2out_frame_debug_adjust_cfa): Likewise.
115         (dwarf2out_frame_debug_cfa_offset): Likewise.
116         (dwarf2out_frame_debug_expr): Likewise.
117         (execute_dwarf2_frame): Set up cur_row.
118         * dwarf2out.h (struct cfa_loc): Mark for GTY.
119
120 2011-07-23  Richard Henderson  <rth@redhat.com>
121
122         * basic-block.h (EDGE_PRESERVE): New.
123         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
124         * bb-reorder.c: Include except.h.
125         (fix_up_crossing_landing_pad): New.
126         (find_rarely_executed_basic_blocks_and_crossing_edges): Place 
127         landing pads in the right partition.  Duplicate as necessary.
128         (partition_hot_cold_basic_blocks): Fix up DF info after
129         duplicating landing pads.
130         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
131         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
132         is set properly.  Validate that EH edges are not CROSSING.
133         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
134         (dw2_build_landing_pads): ... here.
135         (convert_to_eh_region_ranges): Remove code to fixup crossing
136         landing pads.
137         * except.h (expand_dw2_landing_pad_for_region): Declare.
138         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
139
140 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
141
142         PR target/49816
143         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
144
145 2011-07-22  Jason Merrill  <jason@redhat.com>
146
147         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
148
149 2011-07-22  Richard Henderson  <rth@redhat.com>
150
151         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
152
153 2011-07-22  Richard Henderson  <rth@redhat.com>
154
155         * jump.c (maybe_propagate_label_ref): Split out of...
156         (mark_all_labels): ... here.  Do not attempt label_ref
157         propagation while in cfglayout mode.
158
159 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
160
161         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
162         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
163         (dwarf_attr_name): Handle DW_AT_GNU_macros.
164         (dwarf2out_define): If the vector is empty and
165         lineno is 0, emit a dummy entry first.
166         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
167         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
168         optimize_macinfo_range): New functions.
169         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
170         mergeable, optimize longer strings using
171         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
172         optimize longer sequences of define/undef ops from headers
173         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
174         emit a section headers.
175         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
176         and macinfo_section_label to DEBUG_MACRO_SECTION
177         resp. DEBUG_MACRO_SECTION_LABEL.
178         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
179         instead of DW_AT_macro_info.
180
181         PR other/32998
182         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
183         options.
184         * dwarf2out.c: Include opts.h.
185         (dchar_p): New typedef.  Define heap VEC for it.
186         (producer_string): New variable.
187         (gen_producer_string): New function.
188         (gen_compile_unit_die): Use it.
189         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer
190         if needed.
191         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
192         * doc/invoke.texi: Document -grecord-gcc-switches and
193         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
194         to -frecord-gcc-switches description.
195
196 2011-07-22  Jason Merrill  <jason@redhat.com>
197
198         PR c++/30112
199         * c-decl.c (c_linkage_bindings): Define.
200
201 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
202
203         PR debug/49815
204         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
205
206 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
207
208         * config/i386/i386.c (ix86_option_override_internal): Disallow
209         MS ABI in x32 mode.
210         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
211         only for TARGET_LP64.
212         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of
213         TARGET_64BIT.
214
215 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
216
217         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
218         avoid warnings when GCC is built with a C++ compiler.
219
220 2011-07-22  Martin Jambor  <mjambor@suse.cz>
221
222         PR lto/49796
223         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
224         if decl node is in another partition, call cgraph_get_node only
225         once.
226
227 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
228
229         * config.gcc (x86_64-*-linux*): Set
230         default_gnu_indirect_function to yes.
231
232 2011-07-22  Richard Guenther  <rguenther@suse.de>
233
234         PR tree-optimization/45819
235         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
236         preserve volatile and notrap flags.
237
238 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
239             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
240
241         PR bootstrap/49794
242         * configure.ac: Test AM_ICONV with CXX.
243         * configure: Regenerate.
244         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
245
246 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
247
248         PR bootstrap/49797
249         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
250         (set_cloog_options): Use it.
251
252 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
253
254         PR c++/49756
255         * gcc.c (main): Call stack_limit_increase (64MB).
256         * toplev.c (toplev_main): Likewise.
257
258 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
259
260         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
261         instead of force_reg.
262
263 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
264
265         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
266         needed and use force_reg after convert.
267         (ix86_expand_call): Likewise.
268         (ix86_expand_special_args_builtin): Likewise.
269         (ix86_expand_builtin): Likewise.
270
271 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
272
273         PR middle-end/47654
274         PR middle-end/49649
275         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
276         in parameter.  Initialize v1 and v2 based on the values returned
277         by clast_name_to_lb_ub.
278         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
279         values.
280         (type_for_clast_bin): Same.
281         (type_for_clast_expr): Same.
282         (type_for_clast_eq): Update calls to type_for_clast_expr.
283         (type_for_clast_for): Same.
284         (build_iv_mapping): Same.
285         * graphite-ppl.h (value_min): New.
286
287 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
288
289         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
290         types whenever possible.
291
292 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
293
294         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
295         and ub fields.
296         (new_clast_name_index): Add lb and ub parameters.
297         (free_clast_name_index): New.
298         (clast_name_to_lb_ub): New.
299         (save_clast_name_index): Add lb and ub parameters.
300         (compute_bounds_for_param): New.
301         (type_for_level): Removed.
302         (type_for_clast_for): Removed level parameter.  Do not call
303         type_for_level.
304         (graphite_create_new_loop): Store the lb and ub for the clast_name
305         of the iterator of the loop that has been generated.
306         (graphite_create_new_loop_guard): Remove parameter level.
307         (create_params_index): Store the lb and ub of each parameter.
308         (gloog): Use free_clast_name_index.  Pass to create_params_index
309         the current scop.
310
311 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
312
313         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
314         (max_precision_type): Inline max_signed_precision_type.
315         (type_for_clast_red): Use max_precision_type.
316         (type_for_clast_bin): Same.
317         (type_for_clast_for): Same.
318
319 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
320
321         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
322         type_for_interval.
323         (gcc_type_for_value): Renamed type_for_value.
324         (gcc_type_for_clast_term): Renamed type_for_clast_term.
325         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
326         (gcc_type_for_clast_red): Renamed type_for_clast_red.
327         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
328         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
329         (graphite_translate_clast_equation): Update calls.
330         (compute_type_for_level): Renamed type_for_level.
331         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
332         (build_iv_mapping): Update calls.
333         (graphite_create_new_loop_guard): Same.
334
335 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
336
337         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
338         comment.
339
340 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
341
342         * graphite-clast-to-gimple.c (struct ivs_params): New.
343         (clast_name_to_gcc): Use ivs_params to pass around parameters.
344         (clast_to_gcc_expression): Same.
345         (clast_to_gcc_expression_red): Same.
346         (gcc_type_for_clast_term): Same.
347         (gcc_type_for_clast_expr): Same.
348         (gcc_type_for_clast_red): Same.
349         (gcc_type_for_clast_bin): Same.
350         (gcc_type_for_clast_eq): Same.
351         (graphite_translate_clast_equation): Same.
352         (graphite_create_guard_cond_expr): Same.
353         (graphite_create_new_guard): Same.
354         (graphite_create_new_loop): Same.
355         (build_iv_mapping): Same.
356         (translate_clast_user): Same.
357         (graphite_create_new_loop_guard): Same.
358         (translate_clast): Same.
359         (translate_clast_for_loop): Same.
360         (translate_clast_for): Same.
361         (translate_clast_guard): Same.
362         (initialize_cloog_names): Fix typo.
363         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
364
365 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
366
367         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
368         (new_clast_name_index): Add level parameter.
369         (clast_name_to_level): New.
370         (save_clast_name_index): Add level parameter.
371         (newivs_to_depth_to_newiv): Removed.
372         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
373         (graphite_create_new_loop): Add level parameter.  Pass level to
374         save_clast_name_index.
375         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
376         (create_params_index): Pass level to save_clast_name_index.
377
378 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
379
380         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
381         recompute type, lb, and ub.  Get them from...
382         (graphite_create_new_loop_guard): ...here.  Pass in parameter
383         pointers to type, lb, and ub.
384         (translate_clast_for_loop): Update function calls.
385         (translate_clast_for): Same.
386
387 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
388
389         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
390         psct_dynamic_dim.
391         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
392         (gcc_type_for_iv_of_clast_loop): Update use of level.
393         (gloog): Start counting nesting level from 0.
394         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
395         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
396         psct_dynamic_dim on level.
397
398 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
399
400         * config/i386/i386.c (ix86_legitimize_address): Convert to
401         Pmode if needed.
402
403 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
404
405         * config/i386/i386.c (function_value_64): Always return pointers
406         in Pmode.
407         (ix86_promote_function_mode): New.
408         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
409
410 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
411
412         PR tree-optimization/49749
413         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
414         remove no-longer-used maxrank variable.
415
416 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
417
418         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
419
420 2011-07-21  Jason Merrill  <jason@redhat.com>
421
422         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
423         * recog.h (struct insn_data_d): Check it instead of
424         HAVE_DESIGNATED_INITIALIZERS.
425         * genoutput.c (output_insn_data): Likewise.
426
427 2011-07-21  Richard Guenther  <rguenther@suse.de>
428
429         PR tree-optimization/49770
430         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
431         valueized any operand.  Renamed from ...
432         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
433         (valueize_shared_reference_ops_from_ref): Return whether we
434         valueized any operand.
435         (vn_reference_lookup): Only when we valueized any operand
436         use the valueized reference for alias analysis.  Do not preserve
437         the original reference tree in this case.
438
439 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
440
441         * config/i386/i386.c (ix86_decompose_address): Reject all but
442         register operands and subregs of DImode hard registers in index.
443
444 2011-07-21  Kai Tietz  <ktietz@redhat.com>
445
446         * fold-const.c (fold_unary_loc): Preserve indirect
447         comparison cast to none-boolean type.
448         * tree-ssa.c (useless_type_conversion_p): Preserve cast
449         from/to boolean-type.
450         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
451         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
452         * tree-cfg.c (verify_gimple_comparison): Check result
453         type of comparison expression.
454         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
455         of condition result and disallow type-cast sinking into comparison.
456
457 2011-07-21  Richard Guenther  <rguenther@suse.de>
458
459         * tree-ssa-forwprop.c (combine_conversions): Return whether
460         we have to run cfg-cleanup.  Properly remove dead stmts.
461         (ssa_forward_propagate_and_combine): Adjust.
462
463 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
464
465         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
466
467 2011-07-21  Kai Tietz  <ktietz@redhat.com>
468
469         * tree-ssa-propagate.c (substitute_and_fold): Use
470         do_dce flag to deside, if BB's statements are scanned
471         in last to first, or first to last order.
472
473 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
474
475         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
476
477 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
478             Uros Bizjak  <ubizjak@gmail.com>
479             Richard Henderson  <rth@redhat.com>
480
481         * config/i386/constraints.md (w): New.
482
483         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
484         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
485
486         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
487         instead of TARGET_64BIT.
488
489         * config/i386/i386.md (indirect_jump): Replace
490         nonimmediate_operand with indirect_branch_operand.
491         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
492         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
493         Convert operand 0 to Pmode for x32 if not PIC.
494         (*tablejump_1): Replace nonimmediate_operand with
495         indirect_branch_operand.  Replace constraint "m" with "w".
496         (*call_vzeroupper): Replace constraint "m" with "w".
497         (*call): Likewise.
498         (*call_rex64_ms_sysv_vzeroupper): Likewise.
499         (*call_rex64_ms_sysv): Likewise.
500         (*call_value_vzeroupper): Likewise.
501         (*call_value): Likewise.
502         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
503         (*call_value_rex64_ms_sysv): Likewise.
504         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
505
506         * config/i386/predicates.md (indirect_branch_operand): New.
507         (call_insn_operand): Support x32.
508
509 2011-07-20  Michael Eager  <eager@eagercon.com>
510
511         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
512
513 2011-07-20  Richard Henderson  <rth@redhat.com>
514
515         * cfg.c (dump_bb_info): Dump basic_block->flags.
516         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
517
518 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
519
520         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
521         of DImode hard registers in index.
522         (ix86_legitimate_address_p): Allow subregs of base and index to span
523         more than a word.  Assert that subregs of base and index satisfy
524         register_no_elim_operand predicates.  Reject addresses where
525         base and index have different modes.
526
527 2011-07-20  Robert Millan  <rmh@gnu.org>
528
529         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
530
531 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
532
533         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
534         removing now-unnecessary assignment.
535
536 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
537
538         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
539         memory address space to the type's address space.
540
541 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
542
543         PR target/36467
544         PR target/49687
545         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
546         and expand appropriately if there is a CONST_INT in operand2.
547         (usmulqihi3): New insn.
548         (*sumulqihi3): New insn.
549         (*osmulqihi3): New insn.
550         (*oumulqihi3): New insn.
551         (*muluqihi3.uconst): New insn_and_split.
552         (*muluqihi3.sconst): New insn_and_split.
553         (*mulsqihi3.sconst): New insn_and_split.
554         (*mulsqihi3.uconst): New insn_and_split.
555         (*mulsqihi3.oconst): New insn_and_split.
556         (*ashifthi3.signx.const): New insn_and_split.
557         (*ashifthi3.signx.const7): New insn_and_split.
558         (*ashifthi3.zerox.const): New insn_and_split.
559         (mulsqihi3): New insn.
560         (muluqihi3): New insn.
561         (muloqihi3): New insn.
562         * config/avr/predicates.md (const_2_to_7_operand): New.
563         (const_2_to_6_operand): New.
564         (u8_operand): New.
565         (s8_operand): New.
566         (o8_operand): New.
567         (s9_operand): New.
568         (register_or_s9_operand): New.
569
570 2011-07-20  Kai Tietz  <ktietz@redhat.com>
571
572         * builtins.c (fold_builtin_expect): See through the cast
573         from truthvalue_type_node to long.
574
575 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
576
577         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
578         where we can use them from the standard and altivec instruction
579         sets, instead of always using the 3 operand VSX forms that require
580         the destination to overlap one of the inputs.
581         (vsx_fms*): Ditto.
582         (vsx_fnma*): Ditto.
583         (vsx_fnms*): Ditto.
584
585         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
586         for DF types.
587         (fmsdf4_fpr): Ditto.
588         (nfmadf4_fpr): Ditto.
589         (nfmsdf4_fpr): Ditto.
590
591 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
592
593         * genrecog.c (make_insn_sequence): Correct position numbering
594         when filtering out match_scratch and match_dup.
595
596 2011-07-20  Richard Guenther  <rguenther@suse.de>
597
598         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
599         against already removed statements.
600         (forward_propagate_into_comparison): Remove dead defining stmts.
601         (forward_propagate_into_gimple_cond): Likewise.
602         (forward_propagate_into_cond): Simplify.
603         (ssa_forward_propagate_and_combine): Handle changed cfg from
604         forward_propagate_into_comparison.
605         * tree-ssa-phiopt.c (conditional_replacement): Use proper
606         locations for newly built statements.
607
608 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
609
610         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
611
612 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
613
614         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
615         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
616
617 2011-07-20  Richard Guenther  <rguenther@suse.de>
618
619         PR middle-end/18908
620         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
621         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
622         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
623
624 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
625
626         * config/frv/frv.c (frv_register_move_cost): Define explicitly
627         costs for subclasses of GR_REGS.
628
629 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
630
631         PR target/49780
632         * config/i386/predicates.md (no_seg_addres_operand): No more special.
633         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
634         of DImode hard registers in base.
635         (ix86_legitimate_address_p): Allow SImode and DImode base and index
636         registers.
637
638 2011-07-20  Richard Guenther  <rguenther@suse.de>
639
640         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
641         (unify_nodes): Deal with that.
642         (solve_graph): Likewise.
643
644 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
645
646         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
647         canonicalize left operand from ZERO_EXTEND to AND.
648
649 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
650
651         * target.def (class_max_nregs): New hook.
652         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
653         * doc/tm.texi: Regenerate.
654         * targhooks.c (default_class_max_nregs): New function.
655         * targhooks.h (default_class_max_nregs): Declare.
656         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
657         x_ira_reg_class_min_nregs arrays to unsigned char.
658         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
659         hook instead of CLASS_MAX_NREGS macro.
660         * reginfo.c (restore_register_info): Ditto.
661         * ira-conflicts.c (process_regs_for_copy): Use
662         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
663         Change type rclass and aclass vars to reg_class_t.
664         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
665         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
666         reg_class_t.
667         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
668         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
669
670         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
671         * config/i386/i386.c (ix86_class_max_nregs): New function.
672         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
673         instead of CLASS_MAX_NREGS macro.
674         (TARGET_CLASS_MAX_NREGS): Define.
675         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
676         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
677         * config/avr/avr.c (class_max_nregs): Remove function.
678         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
679         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
680         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
681         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
682         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
683         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
684         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
685         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
686         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
687         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
688         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
689         * config/score/score.h (CLASS_MAX_NREGS): Remove.
690         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
691         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
692         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
693
694 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
695
696         * cif-code.def (OVERWRITABLE): Fix typo and move around.
697         (TARGET_OPTIMIZATION_MISMATCH): Delete.
698         (EH_PERSONALITY): Fix typo.
699         (NON_CALL_EXCEPTIONS): Fix message.
700         (OPTIMIZATION_MISMATCH): Adjust message.
701         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
702
703 2011-07-19  Ian Lance Taylor  <iant@google.com>
704
705         * doc/install.texi (Configuration): Document
706         --enable-build-poststage1-with-cxx.
707
708 2011-07-19  Robert Millan  <rmh@gnu.org>
709
710         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
711         (GLIBC_DYNAMIC_LINKER): Remove.
712
713         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
714         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
715         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
716         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
717         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
718         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
719
720         * config/mips/linux.h: Remove everything except for ...
721         (GLIBC_DYNAMIC_LINKER): ... this macro.
722
723         * config/mips/linux64.h: Remove everything except for ...
724         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
725         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
726         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
727         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
728         (GNU_USER_LINK_EMULATIONN32): New macros.
729
730         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
731         Use the new headers.
732
733 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
734
735         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
736         Add offset_known_p and size_known_p fields.
737         (MEM_OFFSET_KNOWN_P): Update accordingly.
738         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
739         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
740         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
741         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
742         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
743         (init_emit_regs): Likewise.
744
745 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
746
747         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
748         (MEM_OFFSET): Change from returning an rtx to returning a
749         HOST_WIDE_INT.
750         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
751         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
752         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
753         (clear_mem_offset): Declare.
754         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
755         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
756         MEM_OFFSET to get a HOST_WIDE_INT offset.
757         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
758         (adjust_offset_for_component_ref): Take a bool "known_p"
759         parameter and a HOST_WIDE_INT "offset" parameter.
760         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
761         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
762         than an rtx.  Use clear_mem_offset to clear the offset.
763         * cfgcleanup.c (merge_memattrs): Likewise.
764         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
765         * function.c (assign_parm_find_stack_rtl): Likewise.
766         (assign_parm_setup_stack): Likewise.
767         * print-rtl.c (print_rtx): Likewise.
768         * reload.c (find_reloads_subreg_address): Likewise.
769         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
770         * var-tracking.c (INT_MEM_OFFSET): Likewise.
771         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
772         (get_mem_align_offset): Likewise.
773         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
774         (clear_mem_offset): New function.
775         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
776         offset rather than an rtx.  Assume both the expressio and offset
777         are available.
778         (r10k_needs_protection_p_1): Update accordingly, checking the
779         expression and offset availability here instead.
780
781 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
782
783         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
784         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
785         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
786         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
787         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
788         (clear_mem_size): Declare.
789         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
790         (clear_mem_size): New function.
791         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
792         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
793         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
794         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
795         to clear the size.
796         (nonoverlapping_memrefs_p): Likewise.
797         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
798         (expand_builtin_init_trampoline): Likewise.
799         * calls.c (compute_argument_addresses): Likewise.
800         * cfgcleanup.c (merge_memattrs): Likewise.
801         * dce.c (find_call_stack_args): Likewise.
802         * dse.c (record_store, scan_insn): Likewise.
803         * dwarf2out.c (dw_sra_loc_expr): Likewise.
804         * expr.c (emit_block_move_hints): Likewise.
805         * function.c (assign_parm_find_stack_rtl): Likewise.
806         * print-rtl.c (print_rtx): Likewise.
807         * reload.c (find_reloads_subreg_address): Likewise.
808         * rtlanal.c (may_trap_p_1): Likewise.
809         * var-tracking.c (track_expr_p): Likewise.
810         * varasm.c (assemble_trampoline_template): Likewise.
811         * config/arm/arm.c (arm_print_operand): Likewise.
812         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
813         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
814         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
815         (expand_constant_setmem_prologue): Likewise.
816         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
817         * config/rs6000/rs6000.c (expand_block_move): Likewise.
818         (adjacent_mem_locations): Likewise.
819         * config/s390/s390.c (s390_expand_setmem): Likewise.
820         (s390_expand_insv): Likewise.
821         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
822         (*extendqi<mode>2_short_displ): Likewise.
823         * config/sh/sh.c (expand_block_move): Likewise.
824         * config/sh/sh.md (extv, extzv): Likewise.
825
826 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
827
828         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
829         (mem_attrs_htab_eq): ...here.
830         (find_mem_attrs): Replace with...
831         (set_mem_attrs): ...this function.  Take a mem_attrs structure
832         rather than individual fields.
833         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
834         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
835         (set_mem_size, change_address, adjust_address_1, offset_address)
836         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
837         Update accordingly.
838
839 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
840
841         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
842         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
843         Provide a dummy definition of MEM_ADDR_SPACE for generators.
844         (target_rtl): Add x_mode_mem_attrs.
845         (mode_mem_attrs): New macro.
846         (get_mem_attrs): New function.
847         * emit-rtl.c (get_mem_attrs): Rename to...
848         (find_mem_attrs): ...this.
849         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
850         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
851         (set_mem_size, change_address, adjust_address_1, offset_address)
852         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
853         Update accordingly.
854         (init_emit_regs): Initialize mode_mem_attrs.
855
856 2011-07-19  Richard Guenther  <rguenther@suse.de>
857
858         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
859         TRUTH_*_EXPR handling.
860         * tree-ssa-operands.c (get_expr_operands): Likewise.
861         * tree-ssa-pre.c (fully_constant_expression): Likewise.
862         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
863         Likewise.
864         (is_and_or_or): Likewise.
865         (is_norm_cond_subset_of): Likewise.
866
867 2011-07-19  Richard Guenther  <rguenther@suse.de>
868
869         * tree.h (fold_build_pointer_plus_loc): New helper function.
870         (fold_build_pointer_plus_hwi_loc): Likewise.
871         (fold_build_pointer_plus): Define.
872         (fold_build_pointer_plus_hwi): Likewise.
873         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
874         (fold_builtin_memory_op): Likewise.
875         (fold_builtin_stpcpy): Likewise.
876         (fold_builtin_memchr): Likewise.
877         (fold_builtin_strstr): Likewise.
878         (fold_builtin_strchr): Likewise.
879         (fold_builtin_strrchr): Likewise.
880         (fold_builtin_strpbrk): Likewise.
881         (fold_builtin_strcat): Likewise.
882         (expand_builtin_memory_chk): Likewise.
883         (fold_builtin_memory_chk): Likewise.
884         * c-typeck.c (build_unary_op): Likewise.
885         * cgraphunit.c (thunk_adjust): Likewise.
886         * fold-const.c (build_range_check): Likewise.
887         (fold_binary_loc): Likewise.
888         * omp-low.c (extract_omp_for_data): Likewise.
889         (expand_omp_for_generic): Likewise.
890         (expand_omp_for_static_nochunk): Likewise.
891         (expand_omp_for_static_chunk): Likewise.
892         * tree-affine.c (add_elt_to_tree): Likewise.
893         * tree-data-ref.c (split_constant_offset_1): Likewise.
894         * tree-loop-distribution.c (generate_memset_zero): Likewise.
895         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
896         * tree-predcom.c (ref_at_iteration): Likewise.
897         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
898         (add_to_parts): Likewise.
899         (create_mem_ref): Likewise.
900         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
901         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
902         (number_of_iterations_le): Likewise.
903         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
904         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
905         (vect_create_addr_base_for_vector_ref): Likewise.
906         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
907         (vect_create_cond_for_alias_checks): Likewise.
908         * tree-vrp.c (extract_range_from_assert): Likewise.
909         * config/alpha/alpha.c (alpha_va_start): Likewise.
910         (alpha_gimplify_va_arg_1): Likewise.
911         * config/i386/i386.c (ix86_va_start): Likewise.
912         (ix86_gimplify_va_arg): Likewise.
913         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
914         * config/mep/mep.c (mep_expand_va_start): Likewise.
915         (mep_gimplify_va_arg_expr): Likewise.
916         * config/mips/mips.c (mips_va_start): Likewise.
917         (mips_gimplify_va_arg_expr): Likewise.
918         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
919         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
920         (rs6000_gimplify_va_arg): Likewise.
921         * config/s390/s390.c (s390_va_start): Likewise.
922         (s390_gimplify_va_arg): Likewise.
923         * config/sh/sh.c (sh_va_start): Likewise.
924         (sh_gimplify_va_arg_expr): Likewise.
925         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
926         * config/spu/spu.c (spu_va_start): Likewise.
927         (spu_gimplify_va_arg_expr): Likewise.
928         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
929         Likewise.
930         (xstormy16_gimplify_va_arg_expr): Likewise.
931         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
932         (xtensa_gimplify_va_arg_expr): Likewise.
933
934 2011-07-19  Richard Guenther  <rguenther@suse.de>
935
936         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
937         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
938         handling.
939
940         PR middle-end/18908
941         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
942         result of BIT_*_EXPR to bitfield precision.
943
944 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
945
946         PR tree-optimization/49742
947         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
948         as a potential write.
949
950 2011-07-19  Richard Guenther  <rguenther@suse.de>
951
952         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
953         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
954         (forward_propagate_comparison): Simplify, remove obsolete code.
955
956 2011-07-19  Richard Guenther  <rguenther@suse.de>
957
958         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
959         BIT_XOR_EXPR, same as the RTL expander does.
960         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
961         (verify_gimple_assign_unary): Likewise.
962         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
963         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
964         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
965
966 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
967
968         PR tree-optimization/49768
969         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
970         if offset is smaller than bitoffset, but offset+size is bigger
971         than bitoffset.
972
973 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
974
975         PR tree-optimization/49771
976         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
977         zero step, set segment length to the size of the data-ref's type.
978
979 2011-07-18  Martin Jambor  <mjambor@suse.cz>
980
981         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
982         comments.
983         (ipcp_values_pool): Declare.
984         (ipcp_sources_pool): Likewise.
985         (ipcp_lattice): Changed to forward declaration.
986         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
987         cannot_devirtualize.
988         (ipa_node_params): New fields descriptors, lattices, known_vals,
989         clone_for_all_contexts and node dead, removed fields params and
990         count_scale.
991         (ipa_set_param_count): Removed.
992         (ipa_get_param_count): Made to work with descriptors vector.
993         (ipa_get_param): Updated.
994         (ipa_param_cannot_devirtualize_p): Removed.
995         (ipa_param_types_vec_empty): Likewise.
996         (ipa_set_param_used): New function.
997         (ipa_get_param_used): Updated to use descriptors vector.
998         (ipa_func_list): Removed.
999         (ipa_init_func_list): Removed declaration.
1000         (ipa_push_func_to_list_1): Likewise.
1001         (ipa_pop_func_from_list): Likewise.
1002         (ipa_push_func_to_list): Removed.
1003         (ipa_lattice_from_jfunc): Remove declaration.
1004         (ipa_get_jf_pass_through_result): Declare.
1005         (ipa_get_jf_ancestor_result): Likewise.
1006         (ipa_value_from_jfunc): Likewise.
1007         (ipa_get_lattice): Update.
1008         (ipa_lat_is_single_const): New function.
1009         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
1010         (ipa_init_func_list): Likewise.
1011         (ipa_pop_func_from_list): Likewise.
1012         (ipa_get_param_decl_index): Fix coding style.
1013         (count_formal_params): Removed.
1014         (count_formal_params_1): Renamed to count_formal_params.
1015         (ipa_populate_param_decls): Update to use descriptors vector.
1016         (ipa_initialize_node_params): Likewise.
1017         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
1018         (ipa_analyze_params_uses): Likewise.
1019         (ipa_free_node_params_substructures): Likewise and free also lattices
1020         and known values.
1021         (duplicate_array): Removed.
1022         (ipa_edge_duplication_hook): Add the new edge to the list of edge
1023         clones.
1024         (ipa_node_duplication_hook): Update to use new lattices.
1025         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
1026         (ipa_free_all_structures_after_iinln): Likewise.
1027         (ipa_write_node_info): Update to use new lattices.
1028         (ipa_read_node_info): Likewise.
1029         (ipa_get_jf_pass_through_result): New function.
1030         (ipa_get_jf_ancestor_result): Likewise.
1031         (ipa_value_from_jfunc): Likewise.
1032         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
1033         * ipa-cp.c: Reimplemented.
1034         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
1035         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
1036         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
1037         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
1038         * doc/invoke.texi (devirt-type-list-size): Removed description.
1039         (ipa-cp-value-list-size): Added description.
1040
1041 2011-07-18  Richard Henderson  <rth@redhat.com>
1042
1043         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
1044         before calling create_basic_block.
1045
1046 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
1047
1048         PR middle-end/49675
1049         * tree.c (build_common_builtin_nodes): Register
1050         __builtin_return_address, __cyg_profile_func_enter
1051         and __cyg_profile_func_exit.
1052
1053 2011-07-18  Richard Henderson  <rth@redhat.com>
1054
1055         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
1056         (add_labels_and_missing_jumps): ... here.
1057         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
1058
1059 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
1060
1061         PR target/47744
1062         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1063         of DImode hard registers in PLUS address chains.
1064
1065 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1066
1067         PR bootstrap/49769
1068         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
1069         (alpha*-*-freebsd*): Likewise.
1070         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1071         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1072         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
1073         crtprec80.o, crtfastmath.o to extra_parts for all targets.
1074         (ia64*-*-elf*): Remove extra_parts.
1075         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
1076         (sparc64-*-linux*): Likewise.
1077         (sparc64-*-freebsd*): Likewise.
1078
1079         Revert:
1080         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
1081         (ia64*-*-linux*): Likewise.
1082         (mips64*-*-linux*): Likewise.
1083         (mips*-*-linux*): Likewise.
1084
1085 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
1086
1087         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
1088
1089 2011-07-18  Richard Guenther  <rguenther@suse.de>
1090
1091         * gimplify.c (gimplify_expr): Use input_location, not saved_location
1092         when building new trees.
1093
1094 2011-07-18  Richard Guenther  <rguenther@suse.de>
1095
1096         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
1097         expansion result to bitfield precision if required.
1098
1099 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1100
1101         * config.gcc (i[3456x]86-*-netware*): Remove.
1102
1103         * gthr-nks.h: Remove.
1104         * configure.ac (enable_threads): Remove nks.
1105         * configure: Regenerate.
1106
1107         * config/i386/i386.c (ix86_encode_section_info): Remove netware
1108         reference.
1109         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
1110         <netware.h> reference.
1111
1112         * config/i386/netware-libgcc.c,
1113         gcc/config/i386/netware-libgcc.def,
1114         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
1115         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
1116         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
1117         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
1118
1119         * doc/extend.texi (Function Attributes,
1120         callee_pop_aggregate_return): Remove i?86-netware reference.
1121         * doc/install.texi (Configuration, --enable-threads): Remove nks.
1122
1123 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1124
1125         PR target/49746
1126         Revert:
1127         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1128
1129         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
1130         patterns.
1131
1132 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
1133
1134         PR middle-end/49732
1135         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
1136
1137 2011-07-16  Matthias Klose  <doko@ubuntu.com>
1138
1139         * doc/install.texi: Document --enable-static-libjava.
1140
1141 2011-07-15  Richard Henderson  <rth@redhat.com>
1142
1143         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1144         Replace all three arguments by returning a VEC of edges.
1145         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
1146         pointers and counts.
1147         (fix_edges_for_rarely_executed_code): Merge ...
1148         (rest_of_handle_partition_blocks): ... into...
1149         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
1150         any work was performed.
1151         (pass_partition_blocks): Clear todo_flags_finish.
1152
1153 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
1154             Jakub Jelinek  <jakub@redhat.com>
1155             Jonathan Wakely  <jwakely.gcc@gmail.com>
1156
1157         PR libstdc++/49745
1158         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
1159         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
1160
1161 2011-07-15  Jason Merrill  <jason@redhat.com>
1162
1163         PR testsuite/49741
1164         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
1165         rather than --tool_opts.
1166
1167 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
1168
1169         * doc/plugins.texi (Building GCC plugins): gengtype needs its
1170         corresponding gtype.state.
1171
1172 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1173
1174         PR target/49723
1175         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
1176
1177 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
1178
1179         PR target/48220
1180         * doc/md.texi (Standard Names): Document window_save.
1181         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
1182         expand_debug_expr and expand_debug_source_expr.  If the target has
1183         a window_save instruction, adjust the ENTRY_VALUE_EXP.
1184         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
1185         SSA_NAME_VAR is a parameter.
1186         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
1187         * var-tracking.c (parm_reg_t): New type and associated vector type.
1188         (windowed_parm_regs): New variable.
1189         (adjust_insn): If the target has a window_save instruction and this
1190         is the instruction, make its effect on parameter registers explicit.
1191         (next_non_note_insn_var_location): New function.
1192         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
1193         (vt_add_function_parameter): If the target has a window_save insn,
1194         adjust the incoming RTL and record that in windowed_parm_regs.
1195         (vt_finalize): Free windowed_parm_regs.
1196
1197 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
1198
1199         * doc/invoke.texi (C6X Options): New section.
1200         * doc/md.texi (TI C6X family): New section.
1201         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
1202         tic6x-*-uclinux.
1203         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
1204         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
1205         Provide C6X definitions.
1206         * config/c6x/c6x.md: New file.
1207         * config/c6x/constraints.md: New file.
1208         * config/c6x/predicates.md: New file.
1209         * config/c6x/c6x-sched.md.in: New file.
1210         * config/c6x/c6x-sched.md: New file.
1211         * config/c6x/gensched.sh: New file.
1212         * config/c6x/c6x-mult.md.in: New file.
1213         * config/c6x/genmult.sh: New file.
1214         * config/c6x/c6x-mult.md: New file.
1215         * config/c6x/sync.md: New file.
1216         * config/c6x/c6x-protos.h: New file.
1217         * config/c6x/sfp-machine.h: New file.
1218         * config/c6x/c6x.c: New file.
1219         * config/c6x/c6x.h: New file.
1220         * config/c6x/crti.s: New file.
1221         * config/c6x/crtn.s: New file.
1222         * config/c6x/lib1funcs.asm: New file.
1223         * config/c6x/c6x-modes.def: New file.
1224         * config/c6x/genopt.sh: New file.
1225         * config/c6x/c6x.opt: New file.
1226         * config/c6x/c6x-tables.opt: New file.
1227         * config/c6x/c6x-opts.h: New file.
1228         * config/c6x/c6x-isas.def: New file.
1229         * config/c6x/elf.h: New file.
1230         * config/c6x/elf-common.h: New file.
1231         * config/c6x/uclinux-elf.h: New file.
1232         * config/c6x/t-c6x: New file.
1233         * config/c6x/t-c6x-elf: New file.
1234         * config/c6x/t-c6x-uclinux: New file.
1235         * config/c6x/t-c6x-softfp: New file.
1236         * config/c6x/gtd.c: New file.
1237         * config/c6x/gtf.c: New file.
1238         * config/c6x/ltd.c: New file.
1239         * config/c6x/ltf.c: New file.
1240         * config/c6x/ged.c: New file.
1241         * config/c6x/gef.c: New file.
1242         * config/c6x/led.c: New file.
1243         * config/c6x/lef.c: New file.
1244         * config/c6x/eqd.c: New file.
1245         * config/c6x/eqf.c: New file.
1246         * config/c6x/libgcc-c6xeabi.ver: New file.
1247
1248         Revert
1249         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1250         PR rtl-optimization/11320
1251         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
1252         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
1253         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
1254         current_sched_info->compute_jump_reg_dependencies. Record which
1255         registers are used and which registers are set by the jump.
1256         Clear deps->reg_conditional_sets after a barrier.
1257         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
1258         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
1259         (init_deps): Initialize reg_conditional_sets.
1260         (free_deps): Clear reg_conditional_sets.
1261         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
1262         Mark registers live on entry of the fallthrough block and conditionally
1263         set as set by the jump. Mark registers live on entry of non-fallthrough
1264         blocks as used by the jump.
1265         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
1266         Mark new parameters as unused.
1267
1268 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
1269
1270         PR tree-opt/49309
1271         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
1272         Use fold_build2_loc instead of build2.
1273         Use the correct type for the new tree.
1274
1275 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1276
1277         PR rtl-optimization/11320
1278         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
1279         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
1280
1281 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
1282
1283         PR target/49487
1284         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
1285         of REG.
1286         (*rotw<mode>): Use const_int_operand for operand2.
1287         Use match_scatch for operand3.
1288         (*rotb<mode>): Ditto
1289         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
1290
1291 2011-07-14  Richard Guenther  <rguenther@suse.de>
1292
1293         PR tree-optimization/49651
1294         * tree-ssa-structalias.c (get_constraint_for_1): Properly
1295         handle dereferences with subvariables.
1296
1297 2011-07-14  Richard Guenther  <rguenther@suse.de>
1298
1299         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
1300         (fold_stmt_1): Do it here directly on gimple and as a first thing.
1301
1302 2011-07-14  Richard Guenther  <rguenther@suse.de>
1303
1304         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
1305         not bool_var when folding bool_var != 1 or bool_var == 0.
1306
1307 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1308
1309         * haifa-sched.c (schedule_insns): Remove outdated comment.
1310         (schedule_block): When computing a known value for TODO_SPEC,
1311         just set it rather than using logical operations.
1312         (try_ready): Likewise.  Use a local variable rather than a
1313         pointer to TODO_SPEC.  Reorder an if statement to move the
1314         easy case to the then block.
1315         * sched-deps.c (dep_spec_p): New static function.
1316         (update_dep): Use it to decide whether to call
1317         change_spec_dep_to_hard.
1318         (get_back_and_forw_lists): Use it.
1319         (sd_resolve_dep): Likewise.
1320         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
1321         (haifa_note_mem_dep): Likewise.
1322         (check_dep): Likewise.
1323         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
1324         (sched_free_deps): Free in two passes.
1325
1326 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
1327
1328         PR middle-end/49736
1329         * expr.c (all_zeros_p): Undo bogus part of last change.
1330
1331 2011-07-14  Matthias Klose <doko@ubuntu.com>
1332
1333         * doc/extend.texi (optimize attribute): Fix typo.
1334
1335 2011-07-14  Richard Guenther  <rguenther@suse.de>
1336
1337         * gimplify.c (gimplify_expr): Only do required conversions.
1338
1339 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
1340
1341         PR target/43746
1342         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
1343         i.e. use default_elf_select_section.
1344         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
1345         (READONLY_DATA_SECTION_ASM_OP): Remove.
1346         (TARGET_ASM_NAMED_SECTION): Move from here...
1347         * config/avr/avr.c: ...to here.
1348         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
1349         (avr_asm_named_section): Make static.
1350
1351 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1352
1353         PR bootstrap/49739
1354         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
1355         and crtfastmath.o for Linux/x86.
1356
1357 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1358
1359         * haifa-sched.c: Include "hashtab.h"
1360         (sched_no_dce): New global variable.
1361         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
1362         SHADOW_P): New macros.
1363         (last_clock_var, cycle_issued_insns): Move declarations.
1364         (must_backtrack): New static variable.
1365         (struct delay_pair): New structure.
1366         (delay_htab, delay_htab_i2): New static variables.
1367         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
1368         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
1369         functions.
1370         (dep_cost_1): If delay pairs exist, try to look up the insns and
1371         use the correct pair delay if we find them.
1372         (rank-for_schedule): Tweak priority for insns that must be scheduled
1373         soon to avoid backtracking.
1374         (queue_insn): Detect conditions which force backtracking.
1375         (ready_add): Likewise.
1376         (struct sched_block_state): Add member shadows_only_p.
1377         (struct haifa_save_data): New structure.
1378         (backtrack_queue): New static variable.
1379         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
1380         unschedule_insns_until, restore_last_backtrack_point,
1381         free_topmost_backtrack_point, free_backtrack_queue,
1382         estimate_insn_tick, estimate_shadow_tick): New functions.
1383         (prune_ready_list): New arg shadows_only_p.  All callers changed.
1384         If true, remove everything that isn't SHADOW_P.  Look up delay
1385         pairs and estimate ticks to avoid scheduling the first insn too early.
1386         (verify_shadows): New function.
1387         (schedule_block): Add machinery to enable backtracking.
1388         (sched_init): Take sched_no_dce into account when setting
1389         DF_LR_RUN_DCE.
1390         (free_delay_pairs): New function.
1391         (init_h_i_d): Initialize INSN_EXACT_TICK.
1392         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
1393         * sched-deps.c (sd_unresolve_dep): New function.
1394         * sched-int. (struct haifa_sched_info): New fields save_state
1395         and restore_state.
1396         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
1397         feeds_backtrack_insn and shadow_p.
1398         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
1399         (sched_no_dce): Declare variable.
1400         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
1401         sd_unresolve_dep): Declare functions.
1402         * modulo-sched.c (sms_sched_info): Clear the two new fields.
1403         * sched-rgn.c (rgn_const_sched_info): Likewise.
1404         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
1405         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
1406         (ebb_sched_info): Add them for the two new fields.
1407         (add_deps_for_risky_insns): Call add_delay_dependencies.
1408
1409 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
1410
1411         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
1412         Rename -mr11.
1413         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
1414         (rs6000_call_indirect_aix): Ditto.
1415         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
1416         (call_indirect_aix<ptrsize>_internal): Ditto.
1417         (call_indirect_aix<ptrsize>_nor11): Ditto.
1418         (call_indirect_aix<ptrsize>_internal2): Ditto.
1419         (call_value_indirect_aix<ptrsize>): Ditto.
1420         (call_value_indirect_aix<ptrsize>_internal): Ditto.
1421         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1422         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1423         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
1424
1425 2011-07-13  Jason Merrill  <jason@redhat.com>
1426
1427         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
1428
1429 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1430
1431         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
1432         * config/spu/spu.md ("clrsb<mode>2"): New expander.
1433
1434 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
1435
1436         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
1437         * configure: Regenerate.
1438
1439 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1440
1441         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
1442         (asm_file_start): Remove.
1443         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
1444         free_bb_for_insn around code that modifies insns before
1445         restarting df analysis.
1446
1447 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1448
1449         PR target/49541
1450         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
1451         (LINK_SPEC): ... here.
1452
1453 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
1454
1455         * haifa-sched.c (struct sched_block_state): New.
1456         (schedule_block): Move some local variables into such a structure.
1457
1458 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1459
1460         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
1461         * config/i386/t-crtpc: Remove.
1462         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
1463         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
1464         tmake_file.
1465         (x86_64-*-darwin*): Likewise.
1466         (i[34567]86-*-linux*): Likewise.
1467         (x86_64-*-linux*): Likewise.
1468
1469         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
1470         Handle -mpc32, -mpc64, -mpc80.
1471
1472 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1473
1474         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
1475         * config/alpha/t-crtfm: Remove.
1476         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
1477         * config/i386/t-crtfm: Remove.
1478         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
1479         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
1480         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
1481         * config/sparc/t-crtfm: Remove.
1482
1483         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
1484         (alpha*-*-freebsd*): Likewise.
1485         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
1486         (x86_64-*-darwin*): Likewise.
1487         (i[34567]86-*-linux*): Likewise.
1488         (x86_64-*-linux*): Likewise.
1489         (x86_64-*-mingw*): Likewise.
1490         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
1491         (ia64*-*-freebsd*): Likewise.
1492         (ia64*-*-linux*): Likewise.
1493         (mips64*-*-linux*): Likewise.
1494         (mips*-*-linux*): Likewise.
1495         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
1496         (sparc64-*-linux*): Likewise.
1497         (sparc64-*-freebsd*): Likewise.
1498
1499 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1500
1501         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
1502         * config/darwin-crt3.c: Move to ../libgcc/config.
1503         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
1504         ($(T)crt3$(objext)): Remove.
1505         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
1506         ($(T)crt2$(objext)): Remove.
1507         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
1508         (powerpc64-*-darwin*): Likewise.
1509
1510 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
1511
1512         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
1513
1514         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
1515         (addsi_1_zext): This.
1516
1517 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
1518
1519         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
1520         * doc/tm.texi: Regenerate.
1521         * target.def (mergeable_rodata_prefix): New defhookpod.
1522         * varasm.c (mergeable_string_section, mergeable_constant_section):
1523         Use it. Allocate name with alloca.
1524
1525 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
1526
1527         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
1528
1529 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
1530
1531         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
1532         overlap check.
1533
1534 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
1535
1536         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
1537         (count_type_elements): Delete.
1538         (complete_ctor_at_level_p): Declare.
1539         * expr.c (flexible_array_member_p): New function, split out from...
1540         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
1541         parameter with for_ctor_p.  When for_ctor_p is true, return the
1542         number of elements that should appear in the top-level constructor,
1543         otherwise return an estimate of the number of scalars.
1544         (categorize_ctor_elements): Replace p_must_clear with p_complete.
1545         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
1546         (complete_ctor_at_level_p): New function, borrowing union logic
1547         from old categorize_ctor_elements_1.
1548         (mostly_zeros_p): Return true if the constructor is not complete.
1549         (all_zeros_p): Update call to categorize_ctor_elements.
1550         * gimplify.c (gimplify_init_constructor): Update call to
1551         categorize_ctor_elements.  Don't call count_type_elements.
1552         Unconditionally prevent clearing for variable-sized types,
1553         otherwise rely on categorize_ctor_elements to detect
1554         incomplete initializers.
1555
1556 2011-07-13  Richard Guenther  <rguenther@suse.de>
1557
1558         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
1559         the final type is integral.
1560
1561 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
1562
1563         * sched-int.h (struct _dep): Add member cost.
1564         (DEP_COST, UNKNOWN_DEP_COST): New macros.
1565         * sched-deps.c (init_dep_1): Initialize DEP_COST.
1566         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
1567         (sched_change_pattern): Reset it for dependent insns.
1568
1569 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1570
1571         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
1572         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
1573         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
1574         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
1575         (CRT0_S, MCRT0_S): Remove.
1576         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
1577         Remove.
1578         (s-crt0): Remove.
1579         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
1580
1581 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
1582
1583         * cse.c (insert_with_costs): Put semi-colon after empty loop body
1584         on the next line.
1585         * emit-rtl.c (push_to_sequence): Likewise.
1586         * haifa-sched.c (max_issue): Likewise.
1587         * matrix-reorg.c (add_allocation_site): Likewise.
1588         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
1589         * reload.c (alternative_allows_const_pool_ref): Likewise.
1590         * sched-rgn.c (rgn_add_block): Likewise.
1591         (rgn_fix_recovery_cfg): Likewise.
1592         * tree.c (attribute_list_contained): Likewise.
1593
1594 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
1595
1596         * config/i386/i386.c: Tidy processor feature bitmasks.
1597         (m_P4_NOCONA): New.
1598
1599 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
1600
1601         PR rtl-opt/49474
1602         * cprop.c (find_implicit_sets): Correct the condition.
1603
1604 2011-07-12  Richard Henderson  <rth@redhat.com>
1605
1606         PR target/49713
1607         * dwarf2out.h (dwarf_frame_regnum): Remove.
1608         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
1609         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
1610         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
1611         (execute_dwarf2_frame): Initialize them.
1612         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
1613         users of the macros with the variables.
1614         (expand_builtin_dwarf_sp_column): Revert last change.
1615         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
1616         result of DWARF_FRAME_REGNUM into a local variable.
1617
1618 2011-07-12  Richard Henderson  <rth@redhat.com>
1619
1620         PR target/49714
1621         * config/i386/i386.c (x86_output_mi_thunk): Use
1622         machopic_indirect_call_target instead of machopic_indirection_name
1623         directly.
1624
1625 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
1626             Eric Botcazou  <ebotcazou@adacore.com>
1627
1628         * prefix.h: Wrap up in extern "C" block.
1629
1630 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
1631
1632         AMD bdver2 Enablement
1633         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
1634         (case ${target}): Add bdver2.
1635         * config/i386/driver-i386.c (host_detect_local_cpu): Let
1636         -march=native recognize bdver2 processors.
1637         * config/i386/i386-c.c (ix86_target_macros_internal): Add
1638         bdver2 def_and_undef
1639         * config/i386/i386.c (struct processor_costs bdver2_cost): New
1640         bdver2 cost table.
1641         (m_BDVER2): New definition.
1642         (m_AMD_MULTIPLE): Includes m_BDVER2.
1643         (initial_ix86_tune_features): Add bdver2 tuning.
1644         (processor_target_table): Add bdver2 entry.
1645         (static const char *const cpu_names): Add bdver2 entry.
1646         (ix86_option_override_internal): Add bdver2 instruction sets.
1647         (ix86_issue_rate): Add bdver2.
1648         (ix86_adjust_cost): Add bdver2.
1649         (has_dispatch): Add bdver2.
1650         * config/i386/i386.h (TARGET_BDVER2): New definition.
1651         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
1652         (enum processor_type): Add PROCESSOR_BDVER2.
1653         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
1654         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
1655         description.
1656
1657 2011-07-12  Richard Henderson  <rth@redhat.com>
1658
1659         PR target/49714
1660         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
1661         destination address in memory on some paths.
1662
1663 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
1664
1665         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
1666         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
1667         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
1668         * function.c (locate_and_pad_parm): Take it into account.
1669         * target.def (function_arg_round_boundary): New hook.
1670         * targhooks.c (default_function_arg_round_boundary): New function.
1671         * targhooks.h (default_function_arg_round_boundary): Declare.
1672         * doc/tm.texi: Regenerate.
1673
1674 2011-07-12  Richard Guenther  <rguenther@suse.de>
1675
1676         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
1677         Do not perform no-op changes.
1678
1679 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
1680
1681         * config/arm/predicates.md (neon_struct_operand): Make a normal
1682         predicate.
1683         (neon_struct_or_register_operand): New predicate.
1684         * config/arm/neon.md (movmisalign<mode>): Replace predicates
1685         with neon_struct_or_register_operand.
1686         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
1687         neon_struct_operand instead of memory_operand.
1688
1689 2011-07-12  Martin Jambor  <mjambor@suse.cz>
1690
1691         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
1692         * cgraph.c (cgraph_get_node_or_alias): Removed.
1693         (change_decl_assembler_name): Changed all calls to
1694         cgraph_get_node_or_alias to a call to cgraph_get_node.
1695         (cgraph_make_decl_local): Likewise.
1696         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
1697         * varasm.c (default_binds_local_p_1): Likewise.
1698         (decl_binds_to_current_def_p): Likewise.
1699
1700 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
1701
1702         PR tree-optimization/49712
1703         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
1704
1705 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
1706
1707         * genautomata.c (add_arc): Return void.  All callers changed.
1708         (make_automaton): Remove dead code.
1709
1710 2011-07-11  Richard Henderson  <rth@redhat.com>
1711
1712         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
1713         (DW_FRAME_POINTER_REGNUM): New.
1714         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
1715         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
1716         (dwf_regno): New.
1717         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
1718         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
1719         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
1720         Use it.
1721         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
1722         * dwarf2out.h (dwarf_frame_regnum): New.
1723         (struct cfa_loc): Document the domain of the reg member.
1724
1725 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
1726
1727         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
1728         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
1729
1730 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
1731
1732         PR debug/49676
1733         * dwarf2out.c (int_shift_loc_descriptor): New function.
1734         (int_loc_descriptor): If shorter, emit i as
1735         (i >> shift), shift, DW_OP_shl for suitable shift value.
1736         Similarly, try to optimize large negative values using
1737         DW_OP_neg of a positive value if shorter.
1738         (size_of_int_shift_loc_descriptor): New function.
1739         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
1740         changes.
1741         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
1742         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
1743         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
1744         is shorter.
1745         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
1746         addend as added DW_OP_plus if it is shorter.
1747
1748 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1749
1750         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
1751         (DTORS_SECTION_ASM_OP): Define.
1752
1753 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1754
1755         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
1756         * config/t-dfprules: Move to ../libgcc/config.
1757         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1758         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1759         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
1760         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
1761         Likewise.
1762         (i[34567]86-*-cygwin*): Likewise.
1763         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
1764         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
1765         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
1766         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
1767         D64PBIT_FUNCS, D128PBIT_FUNCS.
1768
1769 2011-07-11  Richard Guenther  <rguenther@suse.de>
1770
1771         * tree-vrp.c (simplify_conversion_using_ranges): Manually
1772         translate the source value-range through the conversion chain.
1773
1774 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
1775
1776         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
1777
1778 2011-07-11  Arthur Loiret  <aloiret@debian.org>
1779
1780         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
1781         a bi-arch compiler defaulting to 31-bit. In this case:
1782         (tmake_file): Add s390/t-linux64.
1783         * doc/install.texi: Add s390-linux to the list of targets supporting
1784         --enable-targets=all.
1785
1786 2011-07-11  Arthur Loiret  <aloiret@debian.org>
1787             Matthias Klose <doko@debian.org>
1788
1789         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
1790         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
1791         (tm_file): Add mips/linux64.h.
1792         (tmake_file): Add mips/t-linux64.
1793         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
1794         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
1795         instead of hardcoded mabi=n32.
1796         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
1797         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
1798         convention.
1799
1800 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1801
1802         * passes.c (init_optimization_passes): Add invariant motion pass
1803         after induction variable optimization.
1804
1805 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
1806
1807         PR target/39633
1808         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
1809         offsets 1..5 set cc0 in a usable way.
1810
1811 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
1812
1813         * tree.h (call_expr_arg): Remove.
1814         (call_expr_argp): Likewise.
1815
1816 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
1817
1818         * config/sparc/sparc.md (save_register_window_1): Rename to...
1819         (window_save): ...this.
1820         * config/sparc/sparc.c (emit_save_register_window): Rename to...
1821         (emit_window_save): ...this.
1822         (sparc_expand_prologue): Adjust to above renaming.
1823
1824 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1825
1826         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
1827         of movabs for x32.
1828
1829 2011-07-10  Richard Henderson  <rth@redhat.com>
1830
1831         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
1832         run final, instead of emitting text directly.
1833
1834 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
1835
1836         * config/i386/i386.c (ix86_option_override_internal): Turn on
1837         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
1838         small PIC models for TARGET_X32.
1839
1840 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
1841
1842         PR target/49684
1843         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
1844         $(LIBGCC2_CFLAGS).
1845
1846         PR bootstrap/49680
1847         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
1848         stray notes and debug insns by using prev_nonnote_nondebug_insn
1849         instead of PREV_INSN.
1850
1851 2011-07-09  Richard Henderson  <rth@redhat.com>
1852
1853         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
1854         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
1855         * dwarf2out.c: ... here.
1856         (output_all_cfis): Remove.
1857         (dwarf2out_switch_text_section): Use output_cfis directly.
1858         (size_of_locs): Export.
1859         (output_loc_sequence, output_loc_sequence_raw): Export.
1860         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
1861         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
1862         output_cfa_loc_raw): Move to ...
1863         * dwarfcfi.c: ... here.
1864         * dwarf2out.h: Update decls.
1865
1866 2011-07-09  Richard Henderson  <rth@redhat.com>
1867
1868         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
1869         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
1870         * dwarf2cfi.c: ... here.
1871         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
1872         (DWARF_ROUND, DWARF_CIE_ID): Remove.
1873         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
1874         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
1875         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
1876
1877 2011-07-09  Richard Henderson  <rth@redhat.com>
1878
1879         * dwarf2cfi.c (cie_return_save): New.
1880         (queue_reg_save): Use compare_reg_or_pc.
1881         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
1882         (dwarf2out_frame_debug_expr): Likewise.
1883         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
1884         (initial_return_save): Likewise.
1885         (execute_dwarf2_frame): Save and restore initial return save from
1886         the cie to the fde.
1887         * config/mips/mips.c (mips_frame_set): Remove special case for
1888         DWARF_FRAME_RETURN_COLUMN.
1889
1890 2011-07-09  Richard Henderson  <rth@redhat.com>
1891
1892         * dwarf2cfi.c (lookup_cfa): Remove.
1893         (execute_dwarf2_frame): Assert queues are empty on entry.
1894         Setup initial cfa directly, not via lookup_cfa.
1895         Don't clear args_size state here.
1896
1897 2011-07-09  Richard Henderson  <rth@redhat.com>
1898
1899         * dwarf2cfi.c (add_cfi_vec): New.
1900         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
1901         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
1902         (execute_dwarf2_frame): Set add_cfi_vec.
1903
1904 2011-07-09  Richard Henderson  <rth@redhat.com>
1905
1906         * defaults.h (ASM_COMMENT_START): Move here...
1907         * dwarf2asm.c: ... from here.
1908         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
1909         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
1910         * varasm.c: Likewise.
1911
1912 2011-07-09  Richard Henderson  <rth@redhat.com>
1913
1914         PR debug/49686
1915         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
1916         (create_cfi_notes): ... do it here instead.
1917
1918 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
1919
1920         PR debug/49676
1921         * dwarf2out.c (size_of_int_loc_descriptor): New function.
1922         (address_of_int_loc_descriptor): Use it.
1923         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
1924
1925 2011-07-09  Richard Henderson  <rth@redhat.com>
1926
1927         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
1928         (prologue, epilogue): New.
1929         (return, *rts): New.
1930         (blockage, setd, seti): New.
1931         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
1932         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
1933         (pdp11_saved_regno): New.
1934         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
1935         generate rtl instead of text.
1936         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
1937         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
1938         * config/pdp11/pdp11-protos.h: Update.
1939
1940 2011-07-09  Richard Henderson  <rth@redhat.com>
1941
1942         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
1943         try to insert an rtl prologue here.
1944         (rs6000_output_function_epilogue): Similarly.
1945         * config/rs6000/rs6000.md (prologue): Emit a barrier to
1946         satisfy !TARGET_SCHED_PROLOG.
1947         (epilogue, sibcall_epilogue): Likewise.
1948
1949 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
1950
1951         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
1952         (FP_REG_P): Delete.
1953         (IN_OR_GLOBAL_P): Likewise.
1954
1955 2011-07-08  Jason Merrill  <jason@redhat.com>
1956
1957         PR c++/45437
1958         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
1959         compound assignment.
1960
1961         * cgraph.c (cgraph_add_to_same_comdat_group): New.
1962         * cgraph.h: Declare it.
1963         * ipa.c (function_and_variable_visibility): Make sure thunks
1964         have the right visibility.
1965
1966 2011-07-08  Richard Henderson  <rth@redhat.com>
1967
1968         PR bootstrap/49680
1969         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
1970         any tablejump vector.
1971
1972         PR bootstrap/49680
1973         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
1974         end of the prologue.
1975
1976 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
1977
1978         PR target/49621
1979         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
1980         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
1981         * config/rs6000/vector.md (vector_select_<mode>,
1982         vector_select_<mode>_uns): Change second operand of NE to
1983         CONST0_RTX (<MODE>mode) instead of const0_rtx.
1984         * config/rs6000/altivec.md (*altivec_vsel<mode>,
1985         *altivec_vsel<mode>_uns): Expect second operand of NE to be
1986         zero_constant of the corresponding vector mode.
1987         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
1988         Likewise.
1989
1990 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
1991
1992         * graphite-dependences.c (build_alias_set_powerset): Remove
1993         continue from loop, add one more assert.
1994
1995 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
1996
1997         PR target/46779
1998         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
1999         In particular, allow 8-bit values in r28 and r29.
2000         (avr_hard_regno_scratch_ok): Disallow any register that might be
2001         part of the frame pointer.
2002         (avr_hard_regno_rename_ok): Same.
2003         (avr_legitimate_address_p): Don't allow SUBREGs.
2004
2005 2011-07-08  Julian Brown  <julian@codesourcery.com>
2006
2007         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
2008         big-endian mode.
2009         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
2010         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
2011         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
2012         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
2013         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
2014         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
2015         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
2016         registers in big-endian mode.
2017
2018 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
2019
2020         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
2021         in terms of another.
2022         (write_attr_value): Write a cast if necessary.
2023
2024         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
2025         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
2026         (REG_WORDS_BIG_ENDIAN): Document.
2027         * doc/tm.texi: Regenerate.
2028         * reload.c (operands_match_p): Take it into account.
2029         (reload_adjust_reg_for_mode): Likewise.
2030         * rtlanal.c (subreg_get_info): Likewise.
2031
2032 2011-07-08  Richard Guenther  <rguenther@suse.de>
2033
2034         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
2035         folding.
2036
2037 2011-07-08  Kai Tietz  <ktietz@redhat.com>
2038
2039         * fold-const.c (fold_truth_andor): Factored out truth_andor
2040         label from fold_binary as function.
2041         (fold_binary_loc): Replace truth_andor lable
2042         by function fold_truth_andor.
2043
2044 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
2045
2046         PR middle-end/49519
2047         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
2048         check if address is stored in register. If so - give up.
2049         (check_sibcall_argument_overlap_1): Do not perform check of
2050         overlapping when it is call to address.
2051
2052 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
2053
2054         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
2055         of magic '31'.
2056
2057 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
2058
2059         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
2060         GET_MODE_BITSIZE where appropriate.
2061         (widen_leading, expand_parity, expand_ctz, expand_ffs,
2062         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
2063         expand_float, expand_fix): Likewise.
2064         * expr.c (convert_move, convert_modes, expand_expr_real_2,
2065         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2066         * stor-layout.c (get_mode_bounds): Likewise.
2067         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
2068         Likewise.
2069         * convert.c (convert_to_integer): Likewise.
2070         * expmed.c (expand_shift_1): Likewise.
2071
2072         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
2073         a bitsize.
2074
2075         * optabs.c (expand_binop): Tighten conditions for doubleword
2076         expansions.
2077         (widen_bswap): Assert that mode bitsize and precision are the same.
2078         * stor-layout.c (get_best_mode): Skip modes that have lower
2079         precision than bitsize.
2080         * recog.c (simplify_while_replacing): Assert that bitsize and
2081         precision are the same.
2082
2083 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2084
2085         * Makefile.in (LIBGCOV): Remove.
2086         (libgcc.mvars): Remove LIBGCOV.
2087         * libgov.c: Move to ../libgcc.
2088
2089 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2090
2091         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
2092
2093 2011-07-08  Martin Jambor  <mjambor@suse.cz>
2094
2095         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
2096         is too big for total scalarization.
2097
2098 2011-07-07  Richard Henderson  <rth@redhat.com>
2099
2100         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
2101         (DBX_DEBUGGING_INFO): Undef.
2102
2103 2011-07-07  Richard Henderson  <rth@redhat.com>
2104
2105         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
2106         Handle some opcodes specially for debugging.
2107         * print-rtl.c: Include dwarf2out.h
2108         (print_rtx): Handle NOTE_INSN_CFI.
2109         * Makefile.in (print-rtl.o): Update.
2110
2111 2011-07-07  Richard Henderson  <rth@redhat.com>
2112
2113         * tree-pass.h (pass_dwarf2_frame): Declare.
2114         * passes.c (init_optimization_passes): Add it.
2115         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
2116         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
2117         make static, do not call add_cfis_to_fde.
2118         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
2119         dwarf2out_frame_init): Merge into...
2120         (execute_dwarf2_frame): ... here.  New function.
2121         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
2122         saved_do_cfi_asm to a tri-state variable.
2123         (gate_dwarf2_frame, pass_dwarf2_frame): New.
2124         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
2125         if it has yet to be done.  Don't call dwarf2cfi_function_init.
2126         * dwarf2out.h, debug.h: Update decls.
2127         * final.c (final_start_function): Don't call
2128         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
2129         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
2130         * toplev.c (lang_dependent_init): Likewise.
2131
2132 2011-07-07  Richard Henderson  <rth@redhat.com>
2133
2134         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
2135         FDE_TABLE_INCREMENT): Replace with...
2136         (fde_vec): ... this, a new vector.
2137         (current_fde): Remove.  Replace all users with cfun->fde.
2138         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
2139         (size_of_aranges, dwarf2out_finish): Likewise.
2140         (dwarf2out_alloc_current_fde): Break out from ...
2141         (dwarf2out_begin_prologue): ... here.
2142         (dwarf2out_frame_init): Remove.
2143         * dwarf2cfi.c: Update all users of current_fde.
2144         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
2145         * dwarf2out.h: Update decls.
2146         (dw_fde_node): Add fde_index member.
2147         * function.h (struct function): Add fde member.
2148
2149 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2150             Richard Henderson  <rth@redhat.com>
2151
2152         * dwarf2cfi.c (add_cfi): Remove.
2153         (dwarf2out_cfi_label): Remove force argument.  Only generate the
2154         label name.
2155         (add_fde_cfi): Simplify the different code paths.
2156         (add_cie_cfi): New.
2157         (old_cfa, old_cfa_remember): New.
2158         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
2159         (last_reg_save_label): Remove.
2160         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
2161         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2162         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2163         dwarf2out_frame_debug_cfa_expression,
2164         dwarf2out_frame_debug_cfa_restore,
2165         dwarf2out_frame_debug_cfa_window_save,
2166         dwarf2out_frame_debug_expr): Remove label parameter.
2167         (cfi_label_required_p, add_cfis_to_fde): New.
2168         (dwarf2out_frame_debug_after_prologue): New.
2169         (dwarf2cfi_frame_init): Initialize old_cfa.
2170         (dwarf2out_frame_debug_restore_state): Likewise.
2171         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
2172         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
2173         * final.c (final_start_function): Call
2174         dwarf2out_frame_debug_after_prologue.
2175
2176 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2177             Richard Henderson  <rth@redhat.com>
2178
2179         * dwarf2cfi.c (cfi_insn): New.
2180         (dwarf2out_cfi_label): Don't emit cfi label here.
2181         (add_fde_cfi): Create a NOTE_INSN_CFI.
2182         (dwarf2out_frame_debug): Setup cfi_insn.
2183         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
2184         (dwarf2out_cfi_begin_epilogue): Make static.
2185         (dwarf2out_frame_debug_restore_state): Make static.
2186         * dwarf2out.c (output_cfi_directive): Make static.
2187         (dwarf2out_emit_cfi): New.
2188         * dwarf2out.h: Update.
2189         * final.c (final): Remove CFI notes.
2190         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
2191         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
2192         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
2193         * insn-notes.def (NOTE_INSN_CFI): New.
2194         (NOTE_INSN_CFI_LABEL): New.
2195         * rtl.h (union rtunion_def): Add rt_cfi member.
2196         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
2197
2198 2011-07-07  Richard Henderson  <rth@redhat.com>
2199
2200         * dwarf2cfi.c: New file.
2201         * Makefile.in (OBJS): Add it.
2202         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
2203         * gengtype.c (open_base_files): Include dwarf2out.h.
2204         * coretypes.h (enum var_init_status): Move from ...
2205         * rtl.h: ... here.
2206         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
2207         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
2208         expand_builtin_dwarf_sp_column, init_return_column_size,
2209         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
2210         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
2211         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
2212         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
2213         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
2214         compute_barrier_args_size, dwarf2out_args_size,
2215         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
2216         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
2217         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
2218         queue_reg_save, dwarf2out_flush_queued_reg_saves,
2219         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
2220         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2221         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2222         dwarf2out_frame_debug_cfa_expression,
2223         dwarf2out_frame_debug_cfa_restore,
2224         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
2225         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
2226         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
2227         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
2228         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
2229         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
2230         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
2231         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
2232         dw_loc_descr_node): Move to dwarf2out.h.
2233         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
2234         mem_loc_descriptor): Export.
2235         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
2236         (dwarf2out_frame_init): Extract CIE generation code to
2237         dwarf2cfi_frame_init.
2238
2239 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
2240
2241         PR target/49660
2242         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
2243         MASK_V8PLUS, remove commented out flag and reorder.
2244
2245 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
2246
2247         PR c/49644
2248         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
2249         one non-complex and one complex argument, call c_save_expr on both
2250         operands.
2251
2252 2011-07-07  Martin Jambor  <mjambor@suse.cz>
2253
2254         PR middle-end/49495
2255         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
2256         (verify_cgraph_node): Some functinality moved to
2257         verify_edge_corresponds_to_fndecl, call it.
2258
2259 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2260
2261         * config.gcc (*local*): Remove.
2262         * doc/install-old.texi: Don't mention local configurations.
2263
2264 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
2265
2266         PR debug/49522
2267         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
2268         referencing debug insns that have been reset.
2269         (dead_debug_insert_before): Don't assert reg is non-NULL,
2270         instead return immediately if it is NULL.
2271
2272 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2273
2274         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2275
2276 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2277
2278         * hw-doloop.c: New file.
2279         * hw-doloop.h: New file.
2280         * Makefile.in (OBJS): Add hw-doloop.o.
2281         (hw-doloop.o): New rule.
2282         ($(obj_out_file)): Add hw-doloop.h dependency.
2283         * config/bfin/bfin.c: Include "hw-doloop.h".
2284         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
2285         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
2286         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
2287         type changed to hwloop_info.  Return bool, true if the loop was
2288         successfully optimized.  Remove code that was moved to
2289         hw-doloop.c, and adjust other parts.
2290         (hwloop_fail): New static function, containing parts that used
2291         to be in bfin_optimize_loop.
2292         (bfin_discover_loop, bfin_discover_loops, free_loops,
2293         bfin_reorder_loops): Remove.
2294         (hwloop_pattern_reg): New static function.
2295         (bfin_doloop_hooks): New variable.
2296         (bfin_reorg_loops): Remove most code, call reorg_loops.
2297         * config/bfin/bfin.md (doloop_end splitter): Also enable if
2298         loop counter is a memory_operand.
2299
2300 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
2301
2302         * config.gcc: Support --with-multilib-list for x86 Linux targets.
2303
2304         * configure.ac: Mention x86-64 for --with-multilib-list.
2305         * configure: Regenerated.
2306
2307         * config/i386/gnu-user64.h (SPEC_64): Support x32.
2308         (SPEC_32): Likewise.
2309         (ASM_SPEC): Likewise.
2310         (LINK_SPEC): Likewise.
2311         (TARGET_THREAD_SSP_OFFSET): Likewise.
2312         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
2313         (SPEC_X32): New.
2314
2315         * config/i386/i386.h (TARGET_X32): New.
2316         (TARGET_LP64): New.
2317         (LONG_TYPE_SIZE): Likewise.
2318         (POINTER_SIZE): Likewise.
2319         (POINTERS_EXTEND_UNSIGNED): Likewise.
2320         (OPT_ARCH64): Support x32.
2321         (OPT_ARCH32): Likewise.
2322
2323         * config/i386/i386.opt (mx32): New.
2324
2325         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
2326         (GLIBC_DYNAMIC_LINKERX32): Likewise.
2327         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
2328         (GLIBC_DYNAMIC_LINKERX32): Likewise.
2329
2330         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
2331         (BIONIC_DYNAMIC_LINKERX32): Likewise.
2332         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
2333
2334         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
2335
2336         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
2337
2338         * doc/invoke.texi: Document -mx32.
2339
2340 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
2341
2342         * doc/invoke.texi (mwords-little-endian): Deprecate.
2343         * config/arm/arm.opt (mwords-little-endian): Likewise.
2344         * config/arm/arm.c (arm_option_override): Warn about the deprecation
2345         of -mwords-little-endian.
2346
2347 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
2348
2349         * reload1.c (choose_reload_regs): Use mode sizes to check whether
2350         an old reload register completely defines the required value.
2351
2352 2011-07-07  Richard Guenther  <rguenther@suse.de>
2353
2354         * fold-const.c (fold_unary_loc): Do not strip sign-changes
2355         for NEGATE_EXPR.
2356
2357 2011-07-07  Richard Guenther  <rguenther@suse.de>
2358
2359         * tree-vrp.c (simplify_conversion_using_ranges): New function.
2360         (simplify_stmt_using_ranges): Call it.
2361
2362 2011-07-07  Kai Tietz  <ktietz@redhat.com>
2363
2364         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
2365         (lookup_logical_inverted_value): Likewise.
2366         (simplify_bitwise_binary_1): Likewise.
2367         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
2368
2369 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2370
2371         * gcc.c (%[Spec]): Don't document.
2372         (struct spec_list): Update comment.
2373         (do_spec_1): Don't handle %[Spec].
2374         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
2375
2376 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
2377
2378         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
2379         default based on TARGET_ASM_NAMED_SECTION.
2380         * common/common-target.def (have_named_sections): Default to true.
2381         * common/config/default-common.c: Don't include tm.h.
2382         * common/config/picochip/picochip-common.c
2383         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
2384         * common/config/m32c/m32c-common.c: Remove.
2385         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
2386         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2387         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2388         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2389         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2390         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2391         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2392
2393 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
2394
2395         PR middle-end/49640
2396         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
2397         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
2398
2399 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2400
2401         PR libmudflap/49550
2402         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
2403
2404 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2405
2406         PR target/39150
2407         * configure.ac (gcc_cv_as_hidden): Also accept
2408         x86_64-*-solaris2.1[0-9]*.
2409         (gcc_cv_as_cfi_directive): Likewise.
2410         (gcc_cv_as_comdat_group_group): Likewise.
2411         (set_have_as_tls): Likewise.
2412         * configure: Regenerate.
2413         * config.gcc (i[34567]86-*-solaris2*): Also handle
2414         x86_64-*-solaris2.1[0-9]*.
2415         * config.host (i[34567]86-*-solaris2*): Likewise.
2416         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
2417         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
2418         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
2419         (TARGET_LD_EMULATION): Use it.
2420         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
2421         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
2422         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
2423         (ASM_CPU64_DEFAULT_SPEC): Define.
2424         (ASM_CPU_SPEC): Use %(asm_cpu_default).
2425         (ASM_SPEC): Redefine.
2426         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
2427         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
2428         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
2429         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
2430         configuration.
2431         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
2432
2433 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2434
2435         * config/sol2.h (ASM_SPEC): Split into ...
2436         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
2437         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
2438         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
2439         (ASM_SPEC): Use ASM_SPEC_BASE.
2440         * config/sparc/sol2.h (ASM_SPEC): Redefine.
2441
2442 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
2443
2444         * config/avr/avr.md (*reload_insi): Change predicate #1 to
2445         const_int_operand.  Ditto for peep2 producing this insn.
2446         Add argument to output_reload_insisf call.
2447         (*movsi,*movsf): Add argument to output_movsisf call.
2448         (*reload_insf): New insn and new peep2 to produce it.
2449         * config/avr/avr-protos.h (output_movsisf): Change prototype.
2450         (output_reload_insisf): Change prototype.
2451         * config/avr/avr.c (avr_asm_len): New function.
2452         (output_reload_insisf): Rewrite.
2453         (output_movsisf): Change prototype.  output_reload_insisf for
2454         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
2455         (adjust_insn_length): Add argument to output_movsisf and
2456         output_reload_insisf call.
2457
2458 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2459
2460         * emit-rtl.c (paradoxical_subreg_p): New function.
2461         * rtl.h (paradoxical_subreg_p): Declare.
2462         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
2463         apply_distributive_law, simplify_comparison, simplify_set): Use it.
2464         * cse.c (record_jump_cond, cse_insn): Likewise.
2465         * expr.c (force_operand): Likewise.
2466         * rtlanal.c (num_sign_bit_copies1): Likewise.
2467         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
2468         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
2469         (push_reload): Use precision to check for paradoxical subregs.
2470         * expmed.c (extract_bit_field_1): Likewise.
2471
2472         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
2473         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
2474         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
2475         simplify_set, simplify_logical, expand_compound_operation,
2476         make_extraction, force_to_mode, if_then_else_cond, extended_count,
2477         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
2478         record_value_for_reg): Likewise.
2479         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
2480         * simplify-rtx. c (simplify_unary_operation_1,
2481         simplify_binary_operation_1, simplify_const_relational_operation):
2482         Likewise.
2483
2484         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
2485         instead of GET_MODE_BITSIZE where appropriate.
2486         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
2487         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
2488         init_num_sign_bit_copies_in_rep): Likewise.
2489         * cse.c (fold_rtx, cse_insn): Likewise.
2490         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
2491         * simplify-rtx.c (simplify_unary_operation_1,
2492         simplify_const_unary_operation, simplify_binary_operation_1,
2493         simplify_const_binary_operation, simplify_ternary_operation,
2494         simplify_const_relational_operation, simplify_subreg): Likewise.
2495         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
2496         simplify_if_then_else, simplify_set, expand_compound_operation,
2497         expand_field_assignment, make_extraction, if_then_else_cond,
2498         make_compound_operation, force_to_mode, make_field_assignment,
2499         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
2500         extended_count, try_widen_shift_mode, simplify_shift_const_1,
2501         simplify_comparison, record_promoted_value, simplify_compare_const,
2502         record_dead_and_set_regs_1): Likewise.
2503
2504         Revert:
2505         * simplify-rtx.c (simplify_const_binary_operation): Use the
2506         shift_truncation_mask hook instead of performing modulo by width.
2507         Compare against mode precision, not bitsize.
2508         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
2509         Use shift_truncation_mask instead of constructing the value manually.
2510
2511 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2512
2513         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
2514         declaration.
2515         (rs6000_save_toc_in_prologue_p): Ditto.
2516
2517         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
2518         up the static chain (r11) during indirect function calls.
2519         (-msave-toc-indirect): New undocumented debug switch.
2520
2521         * config/rs6000/rs6000.c (struct machine_function): Add
2522         save_toc_in_prologue field to note whether the prologue needs to
2523         save the TOC value in the reserved stack location.
2524         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
2525         to save the TOC in the prologue, do so.
2526         (rs6000_trampoline_init): Don't allow creating AIX style
2527         trampolines if -mno-r11 is in effect.
2528         (rs6000_call_indirect_aix): New function to create AIX style
2529         indirect calls, adding support for -mno-r11 to suppress loading
2530         the static chain, and saving the TOC in the prologue instead of
2531         the call body.
2532         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
2533         TOC in the prologue.
2534
2535         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
2536         register numbers.
2537         (TOC_REGNUM): Ditto.
2538         (STATIC_CHAIN_REGNUM): Ditto.
2539         (ARG_POINTER_REGNUM): Ditto.
2540         (SFP_REGNO): Delete, unused.
2541         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
2542         function descriptor offsets.
2543         (TOC_SAVE_OFFSET_64BIT): Ditto.
2544         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
2545         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
2546         (AIX_FUNC_DESC_SC_32BIT): Ditto.
2547         (AIX_FUNC_DESC_SC_64BIT): Ditto.
2548         (ptrload): New mode attribute for the appropriate load of a pointer.
2549         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
2550         (call_indirect_aix64): Ditto.
2551         (call_value_indirect_aix32): Ditto.
2552         (call_value_indirect_aix64): Ditto.
2553         (call_indirect_nonlocal_aix32_internal): Ditto.
2554         (call_indirect_nonlocal_aix32): Ditto.
2555         (call_indirect_nonlocal_aix64_internal): Ditto.
2556         (call_indirect_nonlocal_aix64): Ditto.
2557         (call): Rewrite AIX indirect function calls.  Add support for
2558         eliminating the static chain, and for moving the save of the TOC
2559         to the function prologue.
2560         (call_value): Ditto.
2561         (call_indirect_aix<ptrsize>): Ditto.
2562         (call_indirect_aix<ptrsize>_internal): Ditto.
2563         (call_indirect_aix<ptrsize>_internal2): Ditto.
2564         (call_indirect_aix<ptrsize>_nor11): Ditto.
2565         (call_value_indirect_aix<ptrsize>): Ditto.
2566         (call_value_indirect_aix<ptrsize>_internal): Ditto.
2567         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2568         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2569         (call_nonlocal_aix32): Relocate in the rs6000.md file.
2570         (call_nonlocal_aix64): Ditto.
2571
2572         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
2573         -mno-r11 documentation.
2574
2575 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
2576
2577         PR other/49658
2578         * doc/extend.texi (Compound Literals): Fix typo.
2579
2580 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
2581
2582         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
2583
2584 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
2585
2586         * configure.ac (plugin-version.h): Generate
2587         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
2588         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
2589         macros.
2590
2591         * configure: Regenerate.
2592
2593         * doc/plugins.texi (Building GCC plugins): Mention
2594         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
2595
2596 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2597
2598         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
2599         * combine.c (make_extraction, gen_lowpart_or_truncate,
2600         apply_distributive_law, simplify_comparison,
2601         reg_truncated_to_mode, record_truncated_value): Use it.
2602         * cse.c (notreg_cost): Likewise.
2603         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
2604         * expr.c (convert_move, convert_modes): Likewise.
2605         * optabs.c (expand_binop, expand_unop): Likewise.
2606         * postreload.c (move2add_last_label): Likewise.
2607         * regmove.c (optimize_reg_copy_3): Likewise.
2608         * rtlhooks.c (gen_lowpart_general): Likewise.
2609         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2610
2611 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
2612
2613         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
2614
2615 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2616
2617         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
2618         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
2619         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
2620         (simplify_const_unary_operation, simplify_binary_operation_1,
2621         simplify_const_binary_operation, simplify_const_relational_operation):
2622         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
2623         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
2624         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
2625         simplify_shift_const_1, simplify_comparison): Likewise.
2626         * expr.c (convert_modes): Likewise.
2627         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
2628         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2629         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
2630
2631         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
2632
2633 2011-07-06  Richard Guenther  <rguenther@suse.de>
2634
2635         PR tree-optimization/49645
2636         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
2637         register variables.
2638         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
2639         in type qualification here ...
2640         (copy_reference_ops_from_ref): ... not here.
2641         (vn_reference_lookup_3): ... or here.
2642         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
2643         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
2644
2645 2011-07-06  Ian Lance Taylor  <iant@google.com>
2646
2647         * doc/install.texi (Configuration): It's
2648         --enable-gnu-indirect-function, not --enable-indirect-function.
2649
2650 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
2651
2652         * simplify-rtx.c (simplify_const_binary_operation): Use the
2653         shift_truncation_mask hook instead of performing modulo by width.
2654         Compare against mode precision, not bitsize.
2655         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
2656         Use shift_truncation_mask instead of constructing the value manually.
2657
2658 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2659
2660         PR middle-end/47383
2661         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
2662         address computation and convert to address_mode if needed.
2663
2664 2011-07-06  Richard Guenther  <rguenther@suse.de>
2665
2666         * tree.c (build_common_tree_nodes_2): Merge with
2667         build_common_tree_nodes.
2668         * tree.h (build_common_tree_nodes): Adjust prototype.
2669         (build_common_tree_nodes_2): Remove.
2670         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
2671         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
2672
2673 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
2674
2675         PR tree-optimization/49618
2676         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
2677         t recurse on the decl.
2678         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
2679         return true if expr isn't known to be defined in current
2680         TU or some other LTO partition.
2681
2682 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2683
2684         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
2685         override CASE_VALUES_THRESHOLD.
2686
2687         * stmt.c (toplevel): Include params.h.
2688         (case_values_threshold): Use the --param case-values-threshold
2689         value if non-zero, otherwise use machine dependent value.
2690         (expand_case): Use case_values_threshold.
2691
2692         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
2693
2694         * doc/invoke.texi (--param case-values-threshold): Document.
2695
2696 2011-07-05  Richard Henderson  <rth@redhat.com>
2697
2698         * dwarf2out.c (dwarf2out_cfi_label): Make static.
2699         (dwarf2out_flush_queued_reg_saves): Make static.
2700         (dwarf2out_reg_save): Remove.
2701         (dwarf2out_return_save): Remove.
2702         (dwarf2out_return_reg): Remove.
2703         (dwarf2out_reg_save_reg): Remove.
2704         (dwarf2out_def_cfa): Merge into ...
2705         (dwarf2out_frame_init): ... here.
2706         * dwarf2out.h, tree.h: Remove declarations as necessary.
2707
2708 2011-07-05  Richard Henderson  <rth@redhat.com>
2709
2710         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
2711         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2712         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
2713         the alloc insn.
2714
2715         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
2716         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
2717         (process_epilogue): Don't call dwarf2out_def_cfa.
2718
2719         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
2720         indicate the return address save.
2721         (process_cfa_register): Likewise.
2722
2723         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
2724         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
2725
2726         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
2727         for ar.pfs save at alloc insn.
2728
2729 2011-07-05  Richard Henderson  <rth@redhat.com>
2730
2731         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
2732         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2733         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
2734         stack pointer save.
2735         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
2736         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
2737         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
2738         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
2739
2740 2011-07-05  Richard Henderson  <rth@redhat.com>
2741
2742         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
2743         VUNSPEC_* constants here instead of via define_constants.
2744         (VUNSPEC_PEM): New constant.
2745         (procedure_entry_mask): New insn.
2746         (prologue): New expander.
2747         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
2748         (vax_expand_prologue): Rename from vax_output_function_prologue;
2749         emit rtl instead of text.
2750         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2751         (print_operand): Add 'x' prefix.
2752
2753 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2754
2755         PR middle-end/47715
2756         * calls.c (precompute_register_parameters): Promote the function
2757         argument before checking non-legitimate constant.
2758
2759 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
2760
2761         PR tree-optimization/47654
2762         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
2763         (lst_do_strip_mine_loop): Return an int.
2764         (lst_do_strip_mine): Same.
2765         (scop_do_strip_mine): Same.
2766         (scop_do_block): Loop blocking should strip-mine at least two loops.
2767         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
2768         (scop_do_interchange): Same.
2769         * graphite-poly.h (scop_do_interchange): Update declaration.
2770         (scop_do_strip_mine): Same.
2771
2772 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
2773
2774         * graphite-clast-to-gimple.c (precision_for_value): Removed.
2775         (precision_for_interval): Removed.
2776         (gcc_type_for_interval): Use mpz_sizeinbase.
2777
2778 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
2779
2780         * graphite-ppl.h (value_max): Correct computation of max.
2781
2782 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
2783
2784         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
2785
2786 2011-07-05  Richard Guenther  <rguenther@suse.de>
2787
2788         * c-decl.c (c_init_decl_processing): Defer building common
2789         tree nodes to c_common_nodes_and_builtins.
2790
2791 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
2792
2793         PR tree-optimization/49580
2794         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
2795         the loop's number of iterations.
2796         * tree-parloops.c (transform_to_exit_first_loop): Add the
2797         handling of the loop's number of iterations before the call
2798         to gimple_duplicate_sese_tail.
2799         Insert the stmt caclculating the new rhs of the loop's
2800         condition stmt to the preheader instead of iters_bb.
2801
2802 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2803
2804         PR rtl-optimization/47449
2805         * fwprop.c (forward_propagate_subreg): Don't propagate hard
2806         register nor zero/sign extended hard register.
2807
2808 2011-07-05  Richard Guenther  <rguenther@suse.de>
2809
2810         PR tree-optimization/49518
2811         PR tree-optimization/49628
2812         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
2813         irrelevant and invariant data-references.
2814         (vect_analyze_data_ref_access): For invariant loads clear the
2815         group association.
2816
2817 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
2818
2819         PR rtl-optimization/49619
2820         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
2821         pass VOIDmode as op0_mode to recursive call, and return temp even
2822         when different from tor, just if it is not IOR of the original
2823         PLUS arguments.
2824
2825         PR rtl-optimization/49472
2826         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
2827         negating MULT, negate the second operand instead of first.
2828         (simplify_binary_operation_1) <case MULT>: If one operand is
2829         a NEG and the other is MULT, don't attempt to optimize by negation
2830         of the MULT operand if it only moves the NEG operation around.
2831
2832         PR debug/49602
2833         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
2834         get_current_def return value if it can't be trusted to be
2835         the current value of the variable in the current bb.
2836
2837 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
2838
2839         PR target/49600
2840         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
2841         general register to memory for !TARGET_INTER_UNIT_MOVES.
2842
2843 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
2844
2845         PR target/44643
2846         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
2847         instead of TREE_READONLY.
2848
2849 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
2850
2851         * doc/extend.texi (AVR Built-in Functions): Update documentation
2852         of __builtin_avr_fmul*.
2853         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
2854         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
2855         * config/avr/avr.md (fmul): Rename to fmul_insn.
2856         (fmuls): Rename to fmuls_insn.
2857         (fmulsu): Rename to fmulsu_insn.
2858         (fmul,fmuls,fmulsu): New expander.
2859         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
2860         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
2861         * config/avr/libgcc.S (__fmul): New function.
2862         (__fmuls): New function.
2863         (__fmulsu,__fmulsu_exit): New function.
2864
2865 2011-07-04  Richard Guenther  <rguenther@suse.de>
2866
2867         PR tree-optimization/49615
2868         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
2869         basic-block index check.
2870
2871 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
2872
2873         * longlong.h (count_leading_zeros, count_trailing_zeros,
2874         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
2875         resp. 64.
2876
2877 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
2878
2879         PR tree-optimization/49610
2880         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
2881         a basic block.
2882
2883 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2884             Olivier Hainque  <hainque@adacore.com>
2885             Nicolas Setton  <setton@adacore.com>
2886
2887         * tree.h (TYPE_ARTIFICIAL): New flag.
2888         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
2889         the DIE of the type if it is artificial.
2890         (gen_array_type_die): Likewise.
2891         (gen_enumeration_type_die): Likewise.
2892         (gen_struct_or_union_type_die): Likewise.
2893         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
2894         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
2895
2896 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
2897
2898         * tree-object-size.c (pass_through_call): Handle
2899         BUILT_IN_ASSUME_ALIGNED.
2900
2901 2011-07-01  Martin Jambor  <mjambor@suse.cz>
2902
2903         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
2904
2905 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
2906
2907         PR middle-end/48016
2908         * explow.c (update_nonlocal_goto_save_area): Use proper mode
2909         for stack save area.
2910         * function.c (expand_function_start): Likewise.
2911
2912 2011-07-01  Richard Guenther  <rguenther@suse.de>
2913
2914         PR middle-end/49596
2915         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
2916         may have unknown refs.
2917
2918 2011-07-01  Kai Tietz  <ktietz@redhat.com>
2919
2920         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
2921
2922 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2923
2924         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
2925         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
2926         (Specific, mips-sgi-irix6): Likewise.
2927
2928 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2929
2930         PR libmudflap/49549
2931         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
2932
2933 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
2934
2935         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
2936         [idx]= and [idx1 ... idx2]= before initializers if needed for
2937         array initializers.
2938
2939 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
2940
2941         * config.gcc (score-*-elf): Remove score7.o.
2942         * config/score/t-score-elf: Likewise.
2943         * config/score/score.c: Merge score7 to score.c and
2944         remove forwarding functions.
2945         * config/score/score7.c: Deleted.
2946         * config/score/score7.h: Deleted.
2947
2948 2011-07-01  Richard Guenther  <rguenther@suse.de>
2949
2950         PR tree-optimization/49603
2951         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
2952
2953 2011-06-30  Martin Jambor  <mjambor@suse.cz>
2954
2955         * tree-sra.c (struct access): Rename total_scalarization to
2956         grp_total_scalarization
2957         (completely_scalarize_var): New function.
2958         (sort_and_splice_var_accesses): Set total_scalarization in the
2959         representative access.
2960         (analyze_access_subtree): Propagate total scalarization accross the
2961         tree, no holes in totally scalarized trees, simplify coverage
2962         computation.
2963         (analyze_all_variable_accesses): Call completely_scalarize_var instead
2964         of completely_scalarize_record.
2965
2966 2011-06-30  Richard Henderson  <rth@redhat.com>
2967
2968         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
2969         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
2970         * config/i386/i386.c: Don't include dwarf2out.h.
2971         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
2972         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
2973         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
2974         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
2975         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
2976
2977 2011-06-30  Richard Henderson  <rth@redhat.com>
2978
2979         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
2980         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
2981         * final.c (final_scan_insn): Look for it, and invoke
2982         dwarf2out_frame_debug before the insn if found.
2983
2984 2011-06-30  Richard Henderson  <rth@redhat.com>
2985
2986         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
2987         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
2988
2989 2011-06-30  Richard Henderson  <rth@redhat.com>
2990
2991         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
2992         Define a vector of this type.
2993         (regs_saved_in_regs): Use a VEC.
2994         (num_regs_saved_in_regs): Remove.
2995         (compare_reg_or_pc): New.
2996         (record_reg_saved_in_reg): Split out from...
2997         (dwarf2out_flush_queued_reg_saves): ... here.
2998         (clobbers_queued_reg_save): Update for VEC.
2999         (reg_saved_in): Likewise.
3000         (dwarf2out_frame_debug_init): Likewise.
3001         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
3002         (dwarf2out_frame_debug_cfa_register): Likewise.
3003
3004 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3005
3006         PR tree-optimization/49572
3007         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
3008         type of the RHS instead of that of the LHS for the expression type.
3009
3010 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3011
3012         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
3013         unconditionally.
3014
3015 2011-06-30  Richard Guenther  <rguenther@suse.de>
3016
3017         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
3018         * tree-ssa-structalias.c (create_variable_info_for): Do not
3019         add initial constraints for non-var-decls.  Properly handle
3020         globals in other ltrans partitions.
3021         (intra_create_variable_infos): Manually create constraints for
3022         the fake no-alias parameter.
3023         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
3024         and assert there are no clones.
3025
3026 2011-06-30  Richard Guenther  <rguenther@suse.de>
3027
3028         PR tree-optimization/46787
3029         * tree-data-ref.c (dr_address_invariant_p): Remove.
3030         (find_data_references_in_stmt): Invariant accesses are ok now.
3031         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
3032         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
3033         invariant loads.
3034
3035 2011-06-30  Martin Jambor  <mjambor@suse.cz>
3036
3037         PR tree-optimization/49094
3038         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
3039         (build_accesses_from_assign): Use it.
3040
3041 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
3042
3043         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3044         handling of BUILT_IN_ASSUME_ALIGNED.
3045
3046         PR debug/49364
3047         * dwarf2out.c (output_abbrev_section): Don't return early
3048         if abbrev_die_table_in_use is 1.
3049         (dwarf2out_finish): Instead don't call output_abbrev_section
3050         nor emit abbrev_section_label in that case.
3051
3052 2011-06-30  Nick Clifton  <nickc@redhat.com>
3053
3054         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
3055         for the V850E.
3056
3057 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
3058
3059         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3060         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
3061
3062 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
3063
3064         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3065         both pattern and original statements if necessary.
3066         (vect_transform_loop): Likewise.
3067         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
3068         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
3069         Mark the pattern statement only if the original statement doesn't
3070         have its own uses.
3071         (process_use): Call vect_mark_relevant with additional parameter.
3072         (vect_mark_stmts_to_be_vectorized): Likewise.
3073         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
3074         (vect_analyze_stmt): Handle both pattern and original statements
3075         if necessary.
3076         (vect_transform_stmt): Don't store vectorized pattern statement
3077         in the original statement.
3078         (vect_is_simple_use_1): Use related pattern statement only if the
3079         original statement is irrelevant.
3080         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3081
3082 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
3083
3084         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
3085         option.
3086         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
3087         entry.
3088         (TARGET_AVX128_OPTIMAL): New definition.
3089         * config/i386/i386.c (initial_ix86_tune_features): Initialize
3090         X86_TUNE_AVX128_OPTIMAL entry.
3091         (ix86_option_override_internal): Enable the generation
3092         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
3093         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
3094         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
3095
3096 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3097
3098         PR tree-optimization/49539
3099         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
3100         names by means of stmt_references_abnormal_ssa_name.
3101         (associate_plusminus): Call can_propagate_from before propagating
3102         from definition statements.
3103         (ssa_forward_propagate_and_combine): Remove superfluous newline.
3104
3105 2011-06-29  Richard Guenther  <rguenther@suse.de>
3106
3107         * doc/invoke.texi: Document -scev dump modifier.
3108         * tree-pass.h (TDF_SCEV): New dump flag.
3109         * tree-dump.c (dump_option_value_in): Add scev.
3110         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
3111         * tree-scalar-evolution.c: Likewise.
3112
3113 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3114
3115         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
3116         (cxa_type_match): Correct declaration.
3117         (__gnu_unwind_pr_common): Reconstruct additional indirection
3118         when __cxa_type_match returns succeeded_with_ptr_to_base.
3119
3120 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3121
3122         PR rtl-optimization/49114
3123         * reload.c (struct replacement): Remove SUBREG_LOC member.
3124         (push_reload): Do not set it.
3125         (push_replacement): Likewise.
3126         (subst_reload): Remove dead code.
3127         (copy_replacements): Remove assertion.
3128         (copy_replacements_1): Do not handle SUBREG_LOC.
3129         (move_replacements): Likewise.
3130         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
3131         Detect subregs via recursive descent instead of via SUBREG_LOC.
3132
3133 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
3134
3135         * config/avr/avr.c (avr_encode_section_info): Dispatch to
3136         default_encode_section_info.
3137
3138 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
3139
3140         PR tree-optimization/49545
3141         * builtins.c (get_object_alignment_1): Update function comment.
3142         Do not use DECL_ALIGN for functions, but test
3143         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
3144         * fold-const.c (get_pointer_modulus_and_residue): Don't check
3145         for functions here.
3146         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3147
3148 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
3149
3150         PR debug/49567
3151         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
3152         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
3153
3154 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
3155
3156         PR target/34734
3157         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
3158         about uninitialized data attributed 'progmem' from here...
3159         (avr_encode_section_info): ...to this new function.
3160         (TARGET_ENCODE_SECTION_INFO): New define.
3161         (avr_section_type_flags): For data in ".progmem.data", remove
3162         section flag SECTION_WRITE.
3163
3164 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
3165
3166         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
3167         _xmulhisi3_exit.
3168         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
3169         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
3170         (__umulhisi3): Ditto.
3171         * config/avr/avr.md (mulhisi3): New insn expender.
3172         (umulhisi3): New insn expender.
3173         (*mulhisi3_call): New insn.
3174         (*umulhisi3_call): New insn.
3175
3176 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
3177
3178         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
3179
3180 2011-06-28  Richard Henderson  <rth@redhat.com>
3181
3182         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
3183         all code and arguments that handled pushes.  Update all callers.
3184
3185 2011-06-28  Richard Henderson  <rth@redhat.com>
3186
3187         * config/arm/arm.c (arm_output_function_prologue): Don't call
3188         thumb1_output_function_prologue.
3189         (arm_expand_prologue): Avoid dead store.
3190         (number_of_first_bit_set): Use ctz_hwi.
3191         (thumb1_emit_multi_reg_push): New.
3192         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
3193         to emit the entire prologue as rtl.
3194         (thumb1_output_interwork): Split out from
3195         thumb1_output_function_prologue.
3196         (thumb1_output_function_prologue): Remove.
3197         (arm_attr_length_push_multi): Handle thumb1.
3198         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
3199         (prologue_thumb1_interwork): New.
3200         (*push_multi): Allow thumb1; use push_mult_memory_operand.
3201         * config/arm/predicates.md (push_mult_memory_operand): New.
3202
3203 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
3204
3205         * config/sparc/sync.md (*stbar): Delete.
3206         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
3207
3208 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
3209
3210         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
3211
3212 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3213
3214         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
3215         (TARGET_64BIT_DEFAULT): Define.
3216         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
3217         of tm_file.
3218         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
3219
3220 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
3221
3222         * common.opt (in_lto_p): New Variable entry.
3223         * flags.h (in_lto_p): Move to common.opt.
3224         * gcc.c: Include params.h.
3225         (set_option_handlers): Also use common_handle_option and
3226         target_handle_option.
3227         (main): Call global_init_params, finish_params and init_options_struct.
3228         * opts.c (debug_type_names): Move from toplev.c.
3229         (print_filtered_help): Access quiet_flag through opts pointer.
3230         (common_handle_option): Return early in the driver for some options.
3231         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
3232         opts pointer.
3233         * toplev.c (in_lto_p): Move to common.opt.
3234         (debug_type_names): Move to opts.c.
3235         * Makefile.in (OBJS): Remove opts.o.
3236         (OBJS-libcommon-target): Add opts.o.
3237         (gcc.o): Update dependencies.
3238
3239 2011-06-28  Kai Tietz  <ktietz@redhat.com>
3240
3241         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
3242
3243 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3244
3245         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
3246         with '=' constraint modifier.
3247         (*divdf3_vfp): Likewise.
3248         ("*mulsf3_vfp"): Likewise.
3249         ("*muldf3_vfp"): Likewise.
3250         ("*mulsf3negsf_vfp"): Likewise.
3251         ("*muldf3negdf_vfp"): Likewise.
3252
3253 2011-06-28  Nick Clifton  <nickc@redhat.com>
3254
3255         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
3256         relaxation when performing an incremental link.
3257
3258 2011-06-28  Kai Tietz  <ktietz@redhat.com>
3259
3260         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
3261         within BB from last to first.
3262
3263 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
3264
3265         * genattr-common.c: New.  Based on genattr.c.
3266         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
3267         (MOSTLYCLEANFILES): Add insn-attr-common.h.
3268         (opts.o): Update dependencies.
3269         (.PRECIOUS): Add insn-attr-common.h.
3270         (simple_rtl_generated_h): Add insn-attr-common.h.
3271         (build/genattr-common.o): New.
3272         (genprogrtl): Add attr-common.
3273         * genattr.c (main): Include insn-attr-common.h.  Don't generate
3274         definitions of DELAY_SLOTS or INSN_SCHEDULING.
3275         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
3276
3277 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
3278
3279         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
3280         avr-*-* and avr-*-rtems* targets.
3281
3282         * config/avr/elf.h: New file.
3283         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
3284         (TARGET_ASM_SELECT_SECTION): Define.
3285         (INIT_SECTION_ASM_OP): Undefine.
3286         (FINI_SECTION_ASM_OP): Undefine.
3287         (READONLY_DATA_SECTION_ASM_OP): Undefine.
3288         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
3289         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
3290         * config/avr/avr.h:
3291         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
3292         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
3293         (MAX_OFILE_ALIGNMENT): Move to elf.h.
3294         (STRING_LIMIT): Move to elf.h.
3295         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
3296         (ASM_DECLARE_OBJECT_NAME): Remove.
3297         (ESCAPES): Remove.
3298         (ASM_OUTPUT_SKIP): Remove.
3299         (DWARF2_DEBUGGING_INFO): Remove.
3300         (OBJECT_FORMAT_ELF): Remove.
3301         (USER_LABEL_PREFIX): Remove.
3302         (ASM_OUTPUT_EXTERNAL): Remove.
3303         (ASM_OUTPUT_ASCII): Remove.
3304         (TYPE_ASM_OP): Remove.
3305         (SIZE_ASM_OP): Remove.
3306         (WEAK_ASM_OP): Remove.
3307         (STRING_ASM_OP): Remove.
3308         (SET_ASM_OP): Remove.
3309         (ASM_WEAKEN_LABEL): Remove.
3310         (TYPE_OPERAND_FMT): Remove.
3311         (ASM_DECLARE_FUNCTION_SIZE): Remove.
3312         (ASM_FINISH_DECLARE_OBJECT): Remove.
3313         (NO_DOLLAR_IN_LABEL): Remove.
3314         (ASM_GENERATE_INTERNAL_LABEL): Remove.
3315         (ASM_OUTPUT_CASE_LABEL): Remove.
3316         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
3317         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
3318         (gas_output_ascii): Remove.
3319         (gas_output_limited_string): Remove.
3320         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
3321         * config/avr/avr-protos.h
3322         (gas_output_ascii): Remove prototye.
3323         (gas_output_limited_string): Remove prototype.
3324
3325 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
3326
3327         PR target/48637
3328         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
3329         asm operands.
3330
3331 2011-06-27  Jan Hubicka  <jh@suse.cz>
3332
3333         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
3334         node instead of references in node.
3335
3336 2011-06-27  Richard Henderson  <rth@redhat.com>
3337
3338         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
3339         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
3340         inside ifdef.
3341
3342 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
3343
3344         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
3345
3346         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
3347         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
3348         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
3349         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
3350         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
3351         (evaluate_stmt, execute_fold_all_builtins): Handle
3352         BUILT_IN_ASSUME_ALIGNED.
3353         * tree-ssa-dce.c (propagate_necessity): Likewise.
3354         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3355         call_may_clobber_ref_p_1): Likewise.
3356         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
3357         (expand_builtin_assume_aligned): New function.
3358         * doc/extend.texi (__builtin_assume_aligned): Document.
3359
3360         PR debug/49544
3361         * cselib.c (promote_debug_loc): If cselib_preserve_constants
3362         and l has two DEBUG_INSN owned locs instead of just one, adjust
3363         the second location's setting_insn too.
3364
3365 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3366
3367         PR libmudflap/38738
3368         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
3369
3370 2011-06-27  Nick Clifton  <nickc@redhat.com>
3371
3372         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
3373         bit position of highest bit set into a count of the high zero bits.
3374
3375 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3376
3377         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
3378
3379 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3380
3381         PR lto/48492
3382         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
3383         to a NULL parent.
3384
3385 2011-06-27  Richard Guenther  <rguenther@suse.de>
3386
3387         PR tree-optimization/49394
3388         * passes.c (execute_one_pass): Restore current_pass after
3389         applying IPA transforms.
3390
3391 2011-06-27  Kai Tietz  <ktietz@redhat.com>
3392
3393         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
3394         out of type precision after operation.
3395         (find_bswap): Take for limit value the integer auto-promotion
3396         into account.
3397
3398 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3399
3400         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
3401         forward scan as well.
3402
3403 2011-06-27  Tristan Gingold  <gingold@adacore.com>
3404
3405         PR target/44241
3406         * config/vms/vms-protos.h: New file.
3407         * config/vms/vms-crtlmap.map: New file.
3408         * config/vms/vms.c: New file.
3409         * config/vms/make-crtlmap.awk: New file.
3410         * config/vms/vms-crtl.h: File removed.
3411         * config/vms/vms-crtl-64.h: File removed.
3412         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
3413         * config/alpha/vms64.h: Do not include vms-crtl-64.h
3414         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
3415         clear some builtins on VMS.  Calls vms_patch_builtins.
3416         (avms_asm_output_external): Remove.
3417         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
3418         (struct crtl_name_spec): Remove
3419         (DO_CTRL_NAMES): Remove.
3420         * config/ia64/vms.h (struct crtl_name_spec): Remove
3421         (DO_CTRL_NAMES): Remove.
3422         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
3423         clear some builtins on VMS.  Calls vms_patch_builtins.
3424         (ia64_asm_output_external): Remove DO_CRTL_NAME.
3425         * config/ia64/vms64.h: Do not include vms-crtl-64.h
3426         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
3427
3428 2011-06-27  Tristan Gingold  <gingold@adacore.com>
3429
3430         * config/alpha/alpha.c (alpha_end_function): Always generate .end
3431         directive on VMS.
3432
3433 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3434
3435         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
3436         the function receives nonlocal gotos.
3437
3438 2011-06-27  Richard Guenther  <rguenther@suse.de>
3439
3440         PR tree-optimization/49536
3441         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
3442         For non-scalar inner types use a scalar type according to
3443         the scalar inner mode.
3444
3445 2011-06-27  Richard Guenther  <rguenther@suse.de>
3446
3447         PR tree-optimization/49365
3448         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
3449
3450 2011-06-27  Richard Guenther  <rguenther@suse.de>
3451
3452         PR tree-optimization/49169
3453         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
3454         the alignment of function decls.
3455
3456 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
3457
3458         PR target/47997
3459         * config/darwin.c (darwin_mergeable_string_section): Place string
3460         constants in '.cstring' rather than '.const' when CF/NSStrings are
3461         active.
3462
3463 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
3464
3465         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
3466         (emit_save_register_window): Likewise.
3467         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
3468         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
3469         Swap back %o7/%i7 in register naming.
3470
3471 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
3472
3473         PR driver/49371
3474         * config/darwin.c (darwin_override_options): Improve warning when
3475         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
3476         is given with fpie/fPIE.
3477         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
3478         * config/darwin9.h (PIE_SPEC): New.
3479
3480 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
3481
3482         * timevar.c (timevar_print): Increase width for display of timevar
3483         name.
3484
3485 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
3486
3487         PR c++/46400
3488         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
3489         instead of TYPE_CHAIN for chain_next for types.
3490
3491 2011-06-24  Richard Henderson  <rth@redhat.com>
3492
3493         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
3494         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
3495         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
3496         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
3497         (sparc_flat_expand_prologue): Emit individual instructions
3498         instead of one of the above.
3499
3500 2011-06-24  Easwaran Raman  <eraman@google.com>
3501
3502         PR rtl-optimization/49429
3503         PR target/49454
3504         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
3505         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
3506         used to copy y into x.
3507         * calls.c (initialize_argument_information): Mark
3508         an argument addressable if it is passed by invisible reference.
3509         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
3510         if it is passed by reference.
3511
3512 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
3513
3514         PR rtl-optimization/49504
3515         * rtlanal.c (nonzero_bits1): Properly handle addition or
3516         subtraction of a pointer in Pmode if pointers extend unsigned.
3517         (num_sign_bit_copies1): Likewise.
3518
3519 2011-06-24  Martin Jambor  <mjambor@suse.cz>
3520
3521         PR tree-optimizations/49516
3522         * tree-sra.c (sra_modify_assign): Choose the safe path for
3523         aggregate copies if we also did scalar replacements.
3524
3525 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3526
3527         PR target/49335
3528         * config/arm/predicates.md (add_operator): New.
3529         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
3530
3531 2011-06-24  Andi Kleen  <ak@linux.intel.com>
3532
3533         * tree-sra.c (type_internals_preclude_sra_p): Add msg
3534         parameter. Split up ifs and report reason in *msg.
3535         (reject): Add.
3536         (find_var_candiate): Add msg variable.
3537         Split up ifs and report reason to reject.
3538         (find_param_candidates): Add msg variable.
3539         Pass msg to type_internals_preclude_sra_p.
3540
3541 2011-06-23  Jeff Law  <law@redhat.com>
3542
3543         PR middle-end/48770
3544         * reload.h (reload): Change to return a bool.
3545         * ira.c (ira): If requested by reload, run a fast DCE pass after
3546         reload has completed.  Fix comment typo.
3547         * reload1.c (need_dce): New file scoped static.
3548         (reload): Set reload_completed here.  Return whether or not a DCE
3549         pass after reload is needed.
3550         (delete_dead_insn): Set need_dce as needed.
3551
3552         PR middle-end/49465
3553         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
3554         to detect threading through joiner block.  If there was already
3555         an edge to the new target, then do not change the PHI nodes.
3556
3557 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
3558
3559         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
3560         get_pointer_alignment to see if base isn't sufficiently aligned.
3561
3562 2011-06-23  Jan Hubicka  <jh@suse.cz>
3563
3564         PR tree-optimize/49373
3565         * tree-pass.h (all_late_ipa_passes): Declare.
3566         * cgraphunit.c (init_lowered_empty_function): Fix properties.
3567         (cgraph_optimize): Execute late passes; remove unreachable funcions
3568         after materialization.
3569         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
3570         LTOing.
3571         * passes.c (all_late_ipa_passes): Declare.
3572         (dump_passes, register_pass): Handle late ipa passes.
3573         (init_optimization_passes): Move ipa_pta to late passes; schedule
3574         fixup_cfg at beggining of all_passes.
3575         (apply_ipa_transforms): New function.
3576         (execute_one_pass): When doing simple ipa pass, apply all transforms.
3577
3578 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
3579
3580         * params.c: Include common/common-target.h.  Don't include tm.h.
3581         (lang_independent_params): Move from toplev.c.
3582         (global_init_params): New.
3583         * params.h (global_init_params): Declare.
3584         * target.def (default_params): Move to common-target.def.
3585         * toplev.c (lang_independent_options): Remove.
3586         (lang_independent_params): Move to params.c.
3587         (general_init): Use global_init_params.
3588         * common/common-target.def (option_default_params): Move from
3589         target.def.
3590         * common/config/ia64/ia64-common.c: Include params.h.
3591         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3592         from ia64.c.
3593         * common/config/rs6000/rs6000-common.c: Include params.h.
3594         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3595         from rs6000.c.
3596         * common/config/sh/sh-common.c: Include params.h.
3597         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3598         from sh.c.
3599         * common/config/spu/spu-common.c: Include params.h.
3600         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3601         from spu.c.
3602         * config/ia64/ia64.c (ia64_option_default_params,
3603         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
3604         * config/rs6000/rs6000.c (rs6000_option_default_params,
3605         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
3606         * config/sh/sh.c (sh_option_default_params,
3607         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
3608         * config/spu/spu.c (spu_option_default_params,
3609         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
3610         * Makefile.in (OBJS): Remove params.o.
3611         (OBJS-libcommon-target): Add params.o.
3612         (params.o, $(common_out_object_file)): Update dependencies.
3613         * doc/tm.texi: Regenerate.
3614
3615 2011-06-23  Alan Modra  <amodra@gmail.com>
3616
3617         PR bootstrap/49383
3618         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
3619         invocation for 2011-06-09 changes.
3620
3621 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
3622
3623         PR libgomp/49490
3624         * omp-low.c (expand_omp_for_static_nochunk): Only
3625         use n ceil/ nthreads size for the first n % nthreads threads in the
3626         team instead of all threads except for the last few ones which
3627         get less work or none at all.
3628
3629         PR debug/49496
3630         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
3631         uses.
3632
3633 2011-06-22  Richard Guenther  <rguenther@suse.de>
3634
3635         PR tree-optimization/49493
3636         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
3637         Refer to the alias target of variables.
3638         (associate_varinfo_to_alias_1): Remove.
3639         (ipa_pta_execute): Do not associate aliases with anything.
3640         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
3641         (cgraph_function_node): Likewise.
3642         (cgraph_function_or_thunk_node): Likewise.
3643         (varpool_variable_node): Likewise.
3644
3645 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
3646
3647         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
3648         * config.gcc (arm*-*-linux*): Default to gnu tls.
3649         (arm*-*-*): Add --with-tls option.
3650         (all_defaults): Add 'tls'.
3651
3652 2011-06-22  Richard Henderson  <rth@redhat.com>
3653
3654         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
3655         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3656         (dwarf2out_frame_debug_cfa_window_save): Rename from
3657         dwarf2out_window_save; make static.
3658         * tree.h (dwarf2out_window_save): Don't declare.
3659
3660         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
3661         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3662         (emit_save_register_window): Rename from gen_save_register_window;
3663         emit the insn and add REG_CFA_* notes.
3664         (sparc_expand_prologue): Update to match.
3665         * config/sparc/sparc.md (save_register_window_1): Simplify from
3666         save_register_window<P:mode>.
3667
3668 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
3669
3670         PR target/49497
3671         * config/i386/i386.md (*lea_general_2): Always allow SImode.
3672         (*lea_general_2_zext): Likewise.
3673         (imul to lea peepholes): Use const359_operand and check
3674         TARGET_PARTIAL_REG_STALL.
3675
3676         * config/i386/predicates.md (const359_operand): New.
3677
3678 2011-06-22  Michael Matz  <matz@suse.de>
3679
3680         * cgraphunit.c (assemble_thunk): Use correct return type.
3681
3682 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
3683             Dmitry Melnik  <dm@ispras.ru>
3684
3685         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
3686         (neon_output_shift_immediate): Ditto.
3687         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
3688         prototype.
3689         (neon_output_shift_immediate): Ditto.
3690         * config/arm/neon.md (vashl<mode>3): Modified constraint.
3691         (vashr<mode>3_imm): New insn pattern.
3692         (vlshr<mode>3_imm): Ditto.
3693         (vashr<mode>3): Modified constraint.
3694         (vlshr<mode>3): Ditto.
3695         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
3696         predicate.
3697         (imm_for_neon_rshift_operand): Ditto.
3698         (imm_lshift_or_reg_neon): Ditto.
3699         (imm_rshift_or_reg_neon): Ditto.
3700
3701         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
3702
3703 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
3704
3705         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
3706         builtin calls even if likelyvalue is not CONSTANT.
3707         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
3708         Return get_value_for_expr of first operand
3709         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
3710         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3711         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
3712         their non-checking counterparts.
3713         (call_may_clobber_ref_p_1): Likewise.
3714         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
3715         like their non-checking counterparts.
3716         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3717         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
3718         like their non-checking counterparts.
3719         (find_func_clobbers): Likewise.
3720         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
3721         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
3722
3723         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
3724         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
3725         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
3726         of base type reference as argument.
3727         (resolve_addr_in_expr): Likewise.  Fix keep computation.
3728         (convert_descriptor_to_signed): Renamed to...
3729         (convert_descriptor_to_mode): ... this.  For wider types convert to
3730         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
3731         (typed_binop): New function.
3732         (scompare_loc_descriptor, ucompare_loc_descriptor,
3733         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
3734         default to unsigned type instead of signed.
3735
3736         PR debug/47858
3737         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
3738         (gimple_build_debug_source_bind_stat): New prototype.
3739         (gimple_build_debug_source_bind): Define.
3740         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
3741         gimple_debug_source_bind_get_value,
3742         gimple_debug_source_bind_get_value_ptr,
3743         gimple_debug_source_bind_set_var,
3744         gimple_debug_source_bind_set_value): New inlines.
3745         * gimple.c (gimple_build_debug_source_bind_stat): New function.
3746         * gimple-pretty-print.c (dump_gimple_debug): Handle
3747         GIMPLE_DEBUG_SOURCE_BIND.
3748         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
3749         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3750         * tree-parloops.c (eliminate_local_variables,
3751         separate_decls_in_region): Likewise.
3752         (separate_decls_in_region_debug): Renamed from
3753         separate_decls_in_region_debug_bind.  Handle
3754         gimple_debug_source_bind_p.
3755         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
3756         prototypes.
3757         (DECL_HAS_DEBUG_ARGS_P): Define.
3758         (struct tree_function_decl): Add has_debug_args_flag field.
3759         * tree.c (debug_args_for_decl): New variable.
3760         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
3761         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
3762         (rewrite_debug_stmt_uses): New function.
3763         (rewrite_stmt): Use it to rewrite debug stmt uses.
3764         * rtl.def (DEBUG_PARAMETER_REF): New.
3765         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
3766         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
3767         DEBUG_PARAMETER_REF.
3768         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
3769         * print-rtl.c (print_rtx): Likewise.
3770         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
3771         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
3772         debug stmts in the first bb.
3773         * tree-inline.c (remap_ssa_name): If remapping default def
3774         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
3775         a source bind debug stmt.
3776         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
3777         (maybe_move_debug_stmts_to_successors): Likewise.
3778         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
3779         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
3780         debug args vector from old_decl to new_decl.
3781         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
3782         or modified parameters, add debug bind stmts before call
3783         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
3784         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
3785         on DECL_DEBUG_EXPRs from debug args vector.
3786         (expand_debug_source_expr): New function.
3787         (expand_debug_locations): Use it for source bind insns.
3788         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
3789         * var-tracking.c (prepare_call_arguments): Add debug args
3790         to call_arguments if any.
3791         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
3792         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
3793         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
3794         (get_ref_die_offset, parameter_ref_descriptor): New functions.
3795         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
3796         (gen_subprogram_die): Handle parameters identified by
3797         DEBUG_PARAMETER_REF.
3798
3799 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
3800
3801         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
3802         * doc/install.texi (Configuration): Document --with-tls.
3803         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
3804         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
3805         (arm_tls_descseq_addr): New.
3806         (legitimize_tls_address): Add tlsdesc support.
3807         (arm_cannot_copy_insn_p): Check for tlscall.
3808         (arm_emit_tls_decoration): Likewise.
3809         * config/arm/arm.h (TARGET_GNU2_TLS): New.
3810         (OPTION_DEFAULT_SPECS): Add with-tls support.
3811         * config/arm/arm.md (R1_REGNUM): Define.
3812         (tlscall): New.
3813         * config/arm/arm.opt (tls_type): New enumeration type and values.
3814         (mtls-dialect): New switch.
3815         * config/arm/arm-opts.h (enum tls_type): New.
3816
3817 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
3818
3819         * attribs.c (register_attribute): Added assert to check that all
3820         attribute specs are registered with a name that is not empty and
3821         does not start with '_'.
3822         (decl_attributes): Avoid the lookup of the "naked" attribute spec
3823         if the function has no attributes.
3824         * tree.c (is_attribute_with_length_p): Removed.
3825         (is_attribute_p): Removed.
3826         (private_is_attribute_p): New.
3827         (private_lookup_attribute): New.
3828         (lookup_attribute): Removed.
3829         (lookup_ident_attribute): New.
3830         (remove_attribute): Require the first argument to be in the form
3831         'text', not '__text__'.  Updated asserts.
3832         (merge_attributes): Use lookup_ident_attributes instead of
3833         lookup_attribute.
3834         (merge_dllimport_decl_attributes): Use remove_attribute.
3835         (attribute_list_contained): Likewise.
3836         (attribute_list_equal): Immediately return 1 if the arguments are
3837         identical pointers.
3838         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
3839         'int'.  Require the first argument to be in the form 'text', not
3840         '__text__'.  Require the second argument to be an identifier.
3841         (lookup_attribute): Made inline.  Require the first argument to be
3842         in the form 'text', not '__text__'.
3843         (private_is_attribute_p, private_lookup_attribute): New.
3844         Updated comments.
3845
3846 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
3847
3848         * builtins.c: Add sync_ or SYNC__ to builtin names.
3849         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
3850         * omp-low.c: Add sync_ or SYNC__ to builtin names.
3851
3852 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
3853
3854         PR target/33049
3855         * config/avr/avr.md (extzv): New expander.
3856         (*extzv): New insn.
3857         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
3858         * config/avr/constraints.md (C04): New constraint.
3859         * doc/md.texi (Machine Constraints): Document it.
3860
3861 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
3862
3863         PR middle-end/49489
3864         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
3865         unsignedp argument instead of 1 for clrsb_optab.
3866         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
3867         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
3868         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
3869         * optabs.c (widen_leading): Call widen_operand and expand_unop
3870         with 0 as unsignedp argument instead of 1 for clrsb_optab.
3871         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
3872
3873 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
3874
3875         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
3876
3877 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
3878
3879         * gensupport.c (add_define_attr): New static function.
3880         (is_predicable): Allow multi-alternative lists for the "predicable"
3881         attribute.
3882         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
3883         (process_one_cond_exec): Call alter_attrs_for_insn.
3884         * doc/md.texi (Defining Attributes): Mention some standard names.
3885         (Conditional Execution): Update documentation for "predicable".
3886
3887         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
3888         __builtin_clrsbll): Document.
3889         * doc/rtl.texi (clrsb): New entry.
3890         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
3891         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
3892         (expand_unop): Handle clrsb_optab.
3893         (init_optabs): Initialize it.
3894         * optabs.h (enum optab_index): New entry OTI_clrsb.
3895         (clrsb_optab): Define.
3896         * genopinit.c (optabs): Add an entry for it.
3897         * builtins.c (expand_builtin): Handle clrsb builtin functions.
3898         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
3899         BUILT_IN_CLRSBLL): New.
3900         * rtl.def (CLRSB): New code.
3901         * dwarf2out.c (mem_loc_descriptor): Handle it.
3902         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3903         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
3904         and popcount.
3905         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
3906         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
3907         (__ctzDI2): Move declaration.
3908         * config/bfin/bfin.md (clrsbsi2): New expander.
3909         (signbitssi2): Use the CLRSB rtx.
3910         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
3911         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
3912
3913 2011-06-21  Richard Guenther  <rguenther@suse.de>
3914
3915         * ipa-inline-transform.c (inline_transform): Fix previous change.
3916
3917 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
3918
3919         PR tree-optimization/49478
3920         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
3921         with constant operand.
3922
3923 2011-06-21  Richard Guenther  <rguenther@suse.de>
3924
3925         * ipa-inline-transform.c (inline_transform): Fix typo.
3926
3927 2011-06-21  Richard Guenther  <rguenther@suse.de>
3928
3929         PR tree-optimization/49483
3930         * tree-vect-stmts.c (vectorizable_assignment): Also handle
3931         VIEW_CONVERT_EXPR conversions.
3932
3933 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
3934
3935         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
3936         * config/avr/avr-tables.opt: New file (generated).
3937         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
3938         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
3939         avr-mcus.def.
3940         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
3941         (avr_option_override): Don't process -mmcu= argument here.  Set
3942         avr_current_device using avr_mcu_index.
3943         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
3944         * config/avr/avr.opt (mmcu=): Use Enum.
3945         * config/avr/t-avr (avr-devices.o): Update dependencies.
3946         ($(srcdir)/config/avr/avr-tables.opt): New.
3947         * target.def (help): Remove.
3948         * doc/tm.texi.in (TARGET_HELP): Remove.
3949         * doc/tm.texi: Regenerate.
3950         * opts.c: Don't include target.h.
3951         (common_handle_option): Don't call targetm.help.
3952         * system.h (TARGET_HELP): Poison.
3953         * Makefile.in (opts.o): Update dependencies.
3954
3955 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3956
3957         * config/usegld.h: New file.
3958         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
3959         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
3960         (LIB_SPEC): Likewise.  Search /lib.
3961         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
3962         (RDYNAMIC_SPEC): Handle GNU ld.
3963         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
3964         Define.
3965         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
3966         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
3967         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
3968         (STACK_CHECK_STATIC_BUILTIN): Define.
3969         * config/sol2.opt (compat-bsd): Remove.
3970         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
3971         * config/sol2-bi.h: New file.
3972         * config/sol2-gld.h: Remove.
3973         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
3974         (NO_DBX_BNSYM_ENSYM): Remove.
3975         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
3976         (STACK_CHECK_STATIC_BUILTIN): Remove.
3977         Test USE_GLD instead of TARGET_GNU_LD.
3978         * config/i386/sol2-10.h: Rename to ...
3979         * config/i386/sol2-bi.h .. this.
3980         (SUBTARGET_EXTRA_SPECS): Redefine.
3981         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
3982         (MULTILIB_DEFAULTS): Remove.
3983         (DEFAULT_ARCH32_P): Define.
3984         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
3985         (ARCH64_SUBDIR): Define.
3986         Test USE_GLD instead of TARGET_GNU_LD.
3987         (I386_EMULATION): Rename to ...
3988         (ARCH32_EMULATION): ... this.
3989         (X86_64_EMULATION): Rename to ...
3990         (ARCH64_EMULATION): ... this.
3991         (TARGET_LD_EMULATION): Remove.
3992         (LINK_ARCH_SPEC): Remove.
3993         * config/i386/sol2-gas.h: Remove.
3994         * config/i386/t-sol2-10: Rename to ...
3995         * config/i386/t-sol2-64: ... this.
3996         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
3997         (AS_SPARC64_FLAG): Define.
3998         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
3999         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
4000         depending on TARGET_CPU_DEFAULT.
4001         (CPP_CPU_SPEC): Redefine.
4002         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
4003         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
4004         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
4005         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
4006         ASM_ARCH_DEFAULT_SPEC): Redefine.
4007         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4008         LINK_ARCH_DEFAULT_SPEC.
4009         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
4010         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
4011         (ARCH64_SUBDIR): Define.
4012         (LINK_ARCH64_SPEC): Redefine.
4013         (CC1_SPEC): Redefine.
4014         (OPTION_DEFAULT_SPECS): Redefine.
4015         (MULTILIB_DEFAULTS): Define.
4016         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
4017         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
4018         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
4019         (NO_DBX_BNSYM_ENSYM): Remove.
4020         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4021         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
4022         (TARGET_ASM_NAMED_SECTION): Likewise.
4023         (STACK_CHECK_STATIC_BUILTIN): Remove.
4024         * config/sparc/sol2-bi.h: Remove.
4025         * config/sparc/sol2-gas-bi.h: Remove.
4026         * config/sparc/sol2-gas.h: Remove.
4027         * config/sparc/sol2-gld-bi.h: Remove.
4028         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
4029         common parts ...
4030         (*-*-solaris2*): ... here.
4031
4032 2011-06-21  Christian Bruel  <christian.bruel@st.com>
4033
4034         PR other/43564
4035         * ipa-inline.c (can_inline_edge_p): Check
4036         !DECL_DISREGARD_INLINE_LIMITS.
4037
4038 2011-06-21  Christian Bruel  <christian.bruel@st.com>
4039
4040         PR middle-end/49139
4041         * cgraphunit.c (process_function_and_variable_attributes): warn when
4042         always_inline functions that are not inline.
4043         * ipa-inline-transform.c (inline_transform): Always call
4044         optimize_inline.
4045         * tree-inline.c (tree_inlinable_function_p): Use error instead
4046         of sorry.
4047         (expand_call_inline): Likewise.
4048
4049 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
4050
4051         * Makefile.in (dg_target_exps): Set.
4052         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
4053         instead of 7, try to divide it more evenly.
4054
4055 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
4056
4057         PR target/49089
4058         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
4059         (avx256_split_unaligned_store): New definition.
4060         (ix86_option_override_internal): Enable avx256 unaligned load/store
4061         splitting only when avx256_split_unaligned_load/store is set.
4062
4063 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
4064
4065         * regrename.c (scan_rtx_reg): Handle the case where we write to an
4066         open chain in a smaller mode without failing the entire block.
4067
4068 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
4069
4070         PR middle-end/47725
4071         * combine.c (cant_combine_insn_p): Don't check zero/sign
4072         extended hard registers.
4073
4074 2011-06-21  Alan Modra  <amodra@gmail.com>
4075
4076         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
4077         CONST high part large-toc address.
4078         (rs6000_tls_referenced_p): Make static.
4079         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
4080
4081 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
4082
4083         PR middle-end/47725
4084         * combine.c (cant_combine_insn_p): Check zero/sign extended
4085         hard registers.
4086
4087 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4088
4089         PR target/49385
4090         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
4091         one of the operands is a register.
4092
4093 2011-06-20  Kai Tietz  <ktietz@redhat.com>
4094
4095         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
4096         operations in combination with binary and.
4097
4098 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
4099
4100         * regrename.c (do_replace): Don't update notes.
4101
4102 2011-06-20  Alan Modra  <amodra@gmail.com>
4103
4104         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
4105         of toc-relative address in CONST.
4106         (rs6000_delegitimize_address): Recognize changed address.
4107         (rs6000_legitimize_reload_address): Likewise.
4108         (rs6000_emit_move): Don't force these constants to memory.
4109         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
4110         toc-relative address in CONST.
4111         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
4112         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
4113
4114 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
4115
4116         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
4117         (count_trailing_zeros): Likewise.
4118
4119 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
4120
4121         PR other/49325
4122         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
4123         .init_array can be used with .ctors on targets.
4124         * configure: Regenerated.
4125
4126 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
4127
4128         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
4129         if the element type is volatile.
4130
4131 2011-06-18  Jan Hubicka  <jh@suse.cz>
4132
4133         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
4134         extra name aliases.
4135         (lto_symtab_resolve_can_prevail_p): Likewise.
4136         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
4137         * cgraphbuild.c (record_reference): Remove extra body alias code.
4138         (mark_load): Likewise.
4139         (mark_store): Likewise.
4140         * cgraph.h (varpool_node): Remove extra_name filed;
4141         add alias_of and extraname_alias.
4142         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
4143         (varpool_alias_aliased_node): New inline function.
4144         (varpool_variable_node): New function.
4145         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
4146         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
4147         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
4148         (input_varpool_node): Likewise.
4149         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
4150         (varpool_externally_visible_p): Remove extra body alias code.
4151         (function_and_variable_visibility): Likewise.
4152         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
4153         (ipa_pta_execute): Use it.
4154         * varpool.c (varpool_remove_node): Remove extra name alias code.
4155         (varpool_mark_needed_node): Likewise.
4156         (varpool_analyze_pending_decls): Analyze aliases.
4157         (assemble_aliases): New functoin.
4158         (varpool_assemble_decl): Use it.
4159         (varpool_create_variable_alias): New function.
4160         (varpool_extra_name_alias): Rewrite.
4161         (varpool_for_node_and_aliases): New function.
4162
4163 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
4164
4165         PR target/49411
4166         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
4167         last_arg_constant and last argument doesn't match its predicate,
4168         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
4169         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
4170         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
4171         spelling of error message.
4172         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
4173         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
4174         const_0_to_255_operand instead of const_int_operand.
4175
4176         Revert:
4177         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
4178
4179         * config/i386/sse.md (blendbits): Remove mode attribute.
4180         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
4181         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
4182         Check integer value of operand 3 in insn constraint.
4183
4184 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
4185
4186         PR rtl-optimization/48542
4187         * reload.c (find_equiv_reg): Stop looking when finding a
4188         setjmp-type call.
4189         * reload1.c (reload_as_needed): Invalidate all reload
4190         registers when crossing a setjmp-type call.
4191
4192 2011-06-16  Jeff Law  <law@redhat.com>
4193
4194         * tree-ssa-threadupdate.c (struct redirection_data): New field
4195         intermediate_edge.
4196         (THREAD_TARGET2): Define.
4197         (redirection_data_eq): Also check that the intermediate edge is equal.
4198         (lookup_redirection_data): Drop useless argument.  Extract the
4199         outgoing_edge and intermediate edge from E.  Callers updated.
4200         (copy_phi_args, update_destination_phis): New functions.
4201         (fix_duplicate_block_edges): Likewise.
4202         (create_edge_and_update_destination_phis): Duplicate all the edges
4203         hung off e->aux.  Use copy_phi_args.
4204         (create_duplicates): Use fix_duplicate_block_edges.
4205         (fixup_template_block): Likewise.
4206         (redirect_edges): If necessary, redirect the joiner block's incoming
4207         edge to the duplicate of the joiner block.
4208         (thread_block): Don't muck up loops when threading through a joiner
4209         block.
4210         (thread_through_loop_header): Handle threading through a joiner block.
4211         (mark_threaded_blocks, register_jump_thread): Likewise.
4212         * tree-flow.h (register_jump_thread): Add new argument.  Callers
4213         updated.
4214         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
4215         (thread_across_edge): Handle threading through a joiner block.
4216
4217 2011-06-16  Martin Jambor  <mjambor@suse.cz>
4218
4219         PR tree-optimization/49343
4220         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
4221         calculate offset, provide 2nd operand for the new COMPONENT_REF.
4222
4223 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
4224
4225         * config/darwin-protos.h (machopic_select_rtx_section): Move to
4226         inside RTX_CODE ifdef.
4227
4228 2011-06-16  Tom de Vries  <tom@codesourcery.com>
4229
4230         PR target/45098
4231         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
4232         Disallow NULL pointer for pointer arithmetic.
4233
4234 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4235
4236         PR target/49398
4237         Revert.
4238         2011-06-10  Wei Guozhi  <carrot@google.com>
4239
4240         PR target/45335
4241         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
4242         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
4243         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
4244         related peephole2.
4245         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
4246         related peephole2.
4247         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
4248         (arm_legitimate_ldrd_p): New prototype.
4249         (arm_output_ldrd): New prototype.
4250         * config/arm/arm.c (arm_check_ldrd_operands): New function.
4251         (arm_legitimate_ldrd_p): New function.
4252         (arm_output_ldrd): New function.
4253
4254 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
4255
4256         PR middle-end/46500
4257         * doc/tm.texi.in: Update Copyright date.
4258         * doc/tm.texi: Regenerate.
4259         * targhooks.c (default_setup_incoming_varargs): Replace
4260         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4261         (default_pretend_outgoing_varargs_named): Likewise.
4262         (hook_pass_by_reference_must_pass_in_stack): Likewise.
4263         (hook_callee_copies_named): Likewise.
4264         (default_function_arg_advance): Likewise.
4265         (default_function_arg): Likewise.
4266         (default_function_incoming_arg): Likewise.
4267         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4268         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4269         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4270         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4271         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4272         * targhooks.h (default_setup_incoming_varargs): Likewise.
4273         (default_pretend_outgoing_varargs_named): Likewise.
4274         (hook_pass_by_reference_must_pass_in_stack): Likewise.
4275         (hook_callee_copies_named): Likewise.
4276         (default_function_arg_advance): Likewise.
4277         (default_function_arg): Likewise.
4278         (default_function_incoming_arg): Likewise.
4279         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4280         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4281         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4282         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4283         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4284         * target.def (pass_by_reference): Likewise.
4285         (setup_incoming_varargs, strict_argument_naming): Likewise.
4286         (pretend_outgoing_varargs_named, callee_copies): Likewise.
4287         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
4288         (function_incoming_arg): Likewise.
4289         * target.h: Don't include "tm.h" .
4290         (cumulative_args_t): New typedef.
4291         [GCC_TM_H] (get_cumulative_args): New static inline function.
4292         [GCC_TM_H] (pack_cumulative_args): Likewise.
4293         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
4294         argument type with cumulative_args_t.
4295         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
4296         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
4297         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
4298         (frv_arg_partial_bytes, frv_function_arg): Likewise.
4299         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
4300         (frv_function_arg_1): Likewise.
4301         * config/s390/s390.c (s390_pass_by_reference): Likewise.
4302         (s390_function_arg_advance, s390_function_arg): Likewise.
4303         * config/m32c/m32c.c (m32c_function_arg): Likewise.
4304         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
4305         (m32c_strict_argument_naming): Likewise.
4306         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
4307         (spu_function_arg_advance): Likewise.
4308         (spu_setup_incoming_varargs): Likewise.  Make static.
4309         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
4310         Remove prototype.
4311         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
4312         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4313         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
4314         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
4315         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
4316         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
4317         (mep_pass_by_reference, mep_function_arg): Likewise.
4318         (mep_function_arg_advance): Likewise.
4319         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
4320         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
4321         (m32r_function_arg, m32r_function_arg_advance): Likewise.
4322         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
4323         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
4324         (ix86_function_arg, ix86_pass_by_reference): Likewise.
4325         (ix86_setup_incoming_varargs): Likewise.
4326         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
4327         (sh_strict_argument_naming): Likewise.
4328         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
4329         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
4330         (sh_function_arg_advance, sh_function_arg): Likewise.
4331         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
4332         (pdp11_function_arg_advance): Likewise.
4333         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
4334         Likewise.
4335         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
4336         * config/avr/avr.c (avr_function_arg): Likewise.
4337         (avr_function_arg_advance): Likewise.
4338         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
4339         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
4340         (xtensa_function_arg_1): Likewise.
4341         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
4342         Likewise.
4343         (xstormy16_function_arg): Likewise.
4344         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
4345         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
4346         (fr30_function_arg_advance): Likewise.
4347         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4348         (lm32_function_arg, lm32_function_arg_advance): Likewise.
4349         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
4350         (moxie_function_arg, moxie_function_arg_advance): Likewise.
4351         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
4352         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
4353         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
4354         (cris_function_arg, cris_function_incoming_arg): Likewise.
4355         (cris_function_arg_advance, cris_function_arg_1): Likewise.
4356         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
4357         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
4358         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
4359         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
4360         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
4361         (mn10300_arg_partial_bytes): Likewise.
4362         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
4363         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
4364         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
4365         (ia64_function_arg_1): Likewise.
4366         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
4367         (m68k_function_arg): Likewise.
4368         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
4369         (rs6000_function_arg, setup_incoming_varargs): Likewise.
4370         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
4371         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
4372         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
4373         (picochip_arg_advance): Likewise.
4374         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
4375         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
4376         (mcore_function_arg_advance): Likewise.
4377         * config/score/score.c (score_pass_by_reference): Likewise.
4378         (score_function_arg_advance): Likewise.
4379         (score_arg_partial_bytes): Likewise.  Make static.
4380         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
4381         * config/arm/arm.c (arm_arg_partial_bytes): Replace
4382         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4383         (arm_function_arg, arm_function_arg_advance): Likewise.
4384         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
4385         * config/pa/pa.c (pa_pass_by_reference): Likewise.
4386         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
4387         (pa_function_arg): Likewise.
4388         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
4389         (mips_function_arg, mips_function_arg_advance): Likewise.
4390         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
4391         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
4392         * config/vax/vax.c (vax_function_arg): Likewise.
4393         (vax_function_arg_advance): Likewise.
4394         * config/h8300/h8300.c (h8300_function_arg): Likewise.
4395         (h8300_function_arg_advance): Likewise.
4396         * config/v850/v850.c (v850_pass_by_reference): Likewise.
4397         (v850_strict_argument_naming, v850_function_arg): Likewise.
4398         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
4399         (v850_setup_incoming_varargs): Likewise.
4400         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
4401         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
4402         (mmix_function_arg, mmix_pass_by_reference): Likewise.
4403         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
4404         with const void *.
4405         * config/bfin/bfin.c (setup_incoming_varargs): Replace
4406         CUMULATIVE_ARGS* argument type with cumulative_args_t.
4407         (bfin_function_arg_advance, bfin_function_arg): Likewise.
4408         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
4409         * calls.c (emit_call_1): Change type of args_so_far to
4410         cumulative_args_t.  Changed all callers.
4411         (initialize_argument_information): Likewise.
4412         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
4413         * dse.c (get_call_args): Likewise.
4414         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4415         * function.c (pass_by_reference, reference_callee_copied): Likewise.
4416         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
4417         New member args_so_far_v.  Changed all users.
4418         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
4419         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4420         * config/mips/mips.c (mips_output_args_xfer): Likewise.
4421         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
4422         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4423         * config/microblaze/microblaze.c (microblaze_expand_prologue):
4424         Likewise.
4425         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
4426         m32r_pass_by_reference.
4427
4428 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
4429
4430         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
4431         argument to be a VEC of statements.
4432         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
4433         assert that pattern statements have to have their vector type set.
4434         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
4435         Change the first argument to be a VEC of statements.  Update
4436         documentation.
4437         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
4438         (vect_handle_widen_mult_by_const): New function.
4439         (vect_recog_widen_mult_pattern):  Change the first argument to be a
4440         VEC of statements.  Update documentation.  Check that the constant is
4441         INTEGER_CST.  Support multiplication by a constant that fits an
4442         intermediate type - call vect_handle_widen_mult_by_const.
4443         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
4444         call.  Handle additional pattern statements if necessary.
4445
4446 2011-06-16  Nick Clifton  <nickc@redhat.com>
4447
4448         PR target/49427
4449         * config.gcc: Set cpu_type to v850 for any V850 architecture.
4450         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
4451         md_file, extra_modes, out_file and extra_options are these are all
4452         deduced from cpu_type.
4453
4454 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
4455
4456         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
4457         truncation mask to 63.
4458
4459 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
4460
4461         PR target/49313
4462         PR target/29524
4463         * longlong.h: Add AVR support:
4464         (count_leading_zeros): New macro.
4465         (count_trailing_zeros): New macro.
4466         (COUNT_LEADING_ZEROS_0): New macro.
4467         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
4468         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
4469         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
4470         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
4471         (LIB2FUNCS_EXCLUDE): Add _clz.
4472         * config/avr/libgcc.S (XCALL): Move up in file.
4473         (XJMP): New C Macro.
4474         (DEFUN): New asm macro.
4475         (ENDF): New asm macro.
4476         (__ffssi2): New function.
4477         (__ffshi2): New function.
4478         (__loop_ffsqi2): New function.
4479         (__ctzsi2): New function.
4480         (__ctzhi2): New function.
4481         (__clzdi2): New function.
4482         (__clzsi2): New function.
4483         (__clzhi2): New function.
4484         (__paritydi2): New function.
4485         (__paritysi2): New function.
4486         (__parityhi2): New function.
4487         (__parityqi2): New function.
4488         (__popcounthi2): New function.
4489         (__popcountsi2): New function.
4490         (__popcountdi2): New function.
4491         (__popcountqi2): New function.
4492         (__bswapsi2): New function.
4493         (__bswapdi2): New function.
4494         (__ashldi3): New function.
4495         (__ashrdi3): New function.
4496         (__lshrdi3): New function.
4497         Fix suspicous lines.
4498
4499 2011-06-16  Richard Guenther  <rguenther@suse.de>
4500
4501         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
4502         the same as x != 0.
4503         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
4504         to (bool) X & 1.
4505         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
4506         equality compares against zero for the lower bit.
4507
4508 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
4509
4510         PR tree-optimization/49419
4511         * tree-vrp.c (execute_vrp): Call init_range_assertions
4512         before estimate_numbers_of_iterations, call
4513         free_number_of_iterations_estimates before calling
4514         remove_range_assertions.
4515
4516 2011-06-16  Revital Eres  <revital.eres@linaro.org>
4517
4518         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
4519         (struct partial_schedule): Add rows_length field.
4520         (verify_partial_schedule): Check rows_length.
4521         (ps_insert_empty_row): Handle rows_length.
4522         (create_partial_schedule): Likewise.
4523         (free_partial_schedule): Likewise.
4524         (reset_partial_schedule): Likewise.
4525         (create_ps_insn): Remove rest_count argument.
4526         (remove_node_from_ps): Update rows_length.
4527         (add_node_to_ps): Update rows_length and call create_ps_insn
4528         without passing row_rest_count.
4529         (rotate_partial_schedule): Update rows_length.
4530
4531 2011-06-16  Revital Eres  <revital.eres@linaro.org>
4532
4533         * ddg.c (add_intra_loop_mem_dep): New function.
4534         (build_intra_loop_deps): Call it.
4535
4536 2011-06-13  Jeff Law  <law@redhat.com>
4537
4538         * df-problems.c (df_lr_local_compute): Manually CSE
4539         PIC_OFFSET_TABLE_REGNUM.
4540         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
4541         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
4542
4543 2011-06-13  Jan Hubicka  <jh@suse.cz>
4544
4545         * cgraphunit.c (handle_alias_pairs): New function.
4546         (cgraph_finalize_compilation_unit): Use it.
4547         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
4548         as externally visible.
4549
4550 2011-06-15  Richard Guenther  <rguenther@suse.de>
4551
4552         * expr.c (expand_expr_real_2): Reduce all integral types to
4553         bitfield precision.
4554         (expand_expr_real_1): Likewise.
4555
4556 2011-06-15  Martin Jambor  <mjambor@suse.cz>
4557
4558         PR tree-optimization/48613
4559         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
4560         ipa_node_params_vector is NULL.
4561
4562 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
4563
4564         PR debug/49382
4565         * dwarf2out.c (dw_loc_list_node): Add force field.
4566         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
4567         location in the list, even if it is modified before first real insn.
4568         (output_loc_list): Emit empty ranges with force flag set.
4569         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
4570
4571 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
4572
4573         PR target/49349
4574         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
4575         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
4576         above a fence.  Update comments.
4577         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
4578         placed just above it.  Do not allow NULL place_to_insert.
4579
4580 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
4581
4582         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
4583         (slpeel_tree_peel_loop_to_edge): Don't call
4584         remove_dead_stmts_from_loop.
4585         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4586         remove irrelevant pattern statements.  For irrelevant statements
4587         check if it is the last statement of a detected pattern, use
4588         corresponding pattern statement instead.
4589         (destroy_loop_vec_info): No need to remove pattern statements,
4590         only free stmt_vec_info.
4591         (vect_transform_loop): For irrelevant statements check if it is
4592         the last statement of a detected pattern, use corresponding
4593         pattern statement instead.
4594         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
4595         pattern statements.  Set basic block for the new statement.
4596         (vect_pattern_recog): Update documentation.
4597         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
4598         operands of pattern statements.
4599         (vectorizable_call): Fix printing.  In case of a pattern statement
4600         use the lhs of the original statement when creating a dummy
4601         statement to replace the original call.
4602         (vect_analyze_stmt): For irrelevant statements check if it is
4603         the last statement of a detected pattern, use corresponding
4604         pattern statement instead.
4605         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
4606         statements use gsi of the original statement.
4607
4608 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
4609
4610         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
4611         common/common-target-def.h.
4612         * target.def (default_target_flags, handle_option,
4613         supports_split_stack, optimization_table, init_struct,
4614         except_unwind_info, unwind_tables_default, have_named_sections):
4615         Move to common/common-target.def.
4616         * target.h (enum opt_levels, struct default_options): Move to
4617         common/common-target.h.
4618         * targhooks.c (default_except_unwind_info,
4619         dwarf2_except_unwind_info, sjlj_except_unwind_info,
4620         default_target_handle_option, empty_optimization_table): Move to
4621         common/common-targhooks.c.
4622         * targhooks.h (default_except_unwind_info,
4623         dwarf2_except_unwind_info, sjlj_except_unwind_info,
4624         default_target_handle_option, empty_optimization_table): Move to
4625         common/common-targhooks.h.
4626         * common/common-target-def.h: Include common/common-targhooks.h.
4627         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
4628         defined.
4629         * common/common-target.def (handle_option, option_init_struct,
4630         option_optimization_table, default_target_flags,
4631         except_unwind_info, supports_split_stack, unwind_tables_default,
4632         have_named_sections): Move from target.def.
4633         (HOOK_PREFIX): Undefine at end of file.
4634         * common/common-target.h: Include input.h.
4635         (enum opt_levels, struct default_options): Move from target.h.
4636         * common/common-targhooks.c, common/common-targhooks.h: New.
4637         * config.gcc (target_has_targetm_common): Default to yes.
4638         (moxie*): Set target_has_targetm_common=no.
4639         (hppa*-*-*): Don't set target_has_targetm_common=yes.
4640         * doc/tm.texi: Regenerate.
4641         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
4642         (C_TARGET_DEF_H): Add common/common-targhooks.h.
4643         (GCC_OBJS): Remove vec.o.
4644         (OBJS): Remove hooks.o and vec.o.
4645         (OBJS-libcommon-target): Add vec.o, hooks.o and
4646         common/common-targhooks.o.
4647         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
4648         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
4649         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
4650         cfglayout.o, $(out_object_file), $(common_out_object_file)):
4651         Update dependencies.
4652         (common/common-targhooks.o): New.
4653         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
4654         * common/config/pa/pa-common.c: Include more headers.  Take
4655         copyright dates from pa.c.
4656         (pa_option_optimization_table, pa_handle_option,
4657         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
4658         TARGET_HANDLE_OPTION): Move from pa.c.
4659         * common/config/alpha/alpha-common.c,
4660         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
4661         common/config/bfin/bfin-common.c,
4662         common/config/cris/cris-common.c,
4663         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
4664         common/config/h8300/h8300-common.c,
4665         common/config/i386/i386-common.c,
4666         common/config/ia64/ia64-common.c,
4667         common/config/iq2000/iq2000-common.c,
4668         common/config/lm32/lm32-common.c,
4669         common/config/m32c/m32c-common.c,
4670         common/config/m32r/m32r-common.c,
4671         common/config/m68k/m68k-common.c,
4672         common/config/mcore/mcore-common.c,
4673         common/config/mep/mep-common.c,
4674         common/config/microblaze/microblaze-common.c,
4675         common/config/mips/mips-common.c,
4676         common/config/mmix/mmix-common.c,
4677         common/config/mn10300/mn10300-common.c,
4678         common/config/pdp11/pdp11-common.c,
4679         common/config/picochip/picochip-common.c,
4680         common/config/rs6000/rs6000-common.c,
4681         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
4682         common/config/score/score-common.c, common/config/sh/sh-common.c,
4683         common/config/sparc/sparc-common.c,
4684         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
4685         common/config/vax/vax-common.c,
4686         common/config/xstormy16/xstormy16-common.c,
4687         common/config/xtensa/xtensa-common.c: New.
4688         * config/alpha/alpha.c: Include common/common-target.h.
4689         (alpha_option_optimization_table, alpha_handle_option,
4690         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4691         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
4692         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
4693         * config/arm/arm.c (arm_option_optimization_table,
4694         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4695         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
4696         arm-common.c.
4697         * config/avr/avr.c (avr_option_optimization_table,
4698         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
4699         to avr-common.c.
4700         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
4701         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
4702         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
4703         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
4704         * config/cris/cris.c (cris_option_optimization_table,
4705         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4706         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
4707         cris-common.c.
4708         * config/fr30/fr30.c (fr30_option_optimization_table,
4709         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
4710         to fr30-common.c.
4711         * config/frv/frv.c (frv_option_optimization_table,
4712         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
4713         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
4714         * config/h8300/h8300.c (h8300_option_optimization_table,
4715         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4716         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
4717         * config/i386/i386-protos.h (ix86_handle_option): Declare.
4718         * config/i386/i386.c: Include common/common-target.h.
4719         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
4720         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
4721         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
4722         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
4723         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
4724         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
4725         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
4726         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
4727         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
4728         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
4729         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
4730         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
4731         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
4732         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
4733         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
4734         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
4735         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
4736         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
4737         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
4738         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
4739         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
4740         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
4741         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
4742         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
4743         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
4744         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
4745         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
4746         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
4747         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
4748         ix86_option_optimization_table, ix86_option_init_struct,
4749         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
4750         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
4751         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
4752         i386-common.c.
4753         * config/i386/t-i386 (i386.o): Update dependencies.
4754         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
4755         * config/ia64/ia64.c (ia64_option_optimization_table,
4756         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
4757         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4758         ia64_handle_option): Move to ia64-common.c.
4759         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
4760         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
4761         * config/lm32/lm32.c (lm32_option_optimization_table,
4762         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
4763         to lm32-common.c.
4764         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
4765         m32c-common.c.
4766         * config/m32r/m32r.c (m32r_option_optimization_table,
4767         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4768         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
4769         m32r_handle_option): Move to m32r-common.c.
4770         (m32r_memory_move_cost): Remove comment referring to
4771         TARGET_HANDLE_OPTION.
4772         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
4773         Move to m68k-common.c.
4774         * config/mcore/mcore.c (mcore_option_optimization_table,
4775         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4776         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
4777         * config/mep/mep.c (mep_option_optimization_table,
4778         mep_handle_option, TARGET_HANDLE_OPTION,
4779         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
4780         Move to mep-common.c.
4781         * config/microblaze/microblaze.c
4782         (microblaze_option_optimization_table,
4783         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4784         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
4785         * config/mips/mips.c (mips_handle_option,
4786         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
4787         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
4788         mips-common.c.
4789         * config/mmix/mmix.c (mmix_option_optimization_table,
4790         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
4791         Move to mmix-common.c.
4792         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
4793         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
4794         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4795         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
4796         * config/pa/pa.c: Include common/common-target.h.
4797         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
4798         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4799         pa_handle_option): Move to pa-common.c.
4800         (pa_option_override): Use targetm_common.except_unwind_info.
4801         (pa_asm_output_mi_thunk, pa_function_section): Use
4802         targetm_common.have_named_sections.
4803         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
4804         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4805         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
4806         pdp11_handle_option, pdp11_option_init_struct): Move to
4807         pdp11-common.c.
4808         * config/picochip/picochip.c (picochip_option_optimization_table,
4809         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
4810         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
4811         * config/rs6000/rs6000.c: Include common/common-target.h.
4812         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
4813         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
4814         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
4815         rs6000_handle_option): Move to rs6000-common.c.
4816         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
4817         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
4818         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
4819         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
4820         * config/s390/s390.c (processor_flags_table,
4821         s390_option_optimization_table, s390_option_init_struct,
4822         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
4823         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
4824         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
4825         * config/s390/s390.h (processor_flags_table): Declare.
4826         * config/score/score.c (score_option_optimization_table,
4827         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4828         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
4829         score_handle_option): Move to score-common.c.
4830         * config/sh/sh.c (sh_option_optimization_table,
4831         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
4832         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4833         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
4834         * config/sparc/sparc.c: Include common/common-target.h.
4835         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
4836         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
4837         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
4838         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
4839         spu_option_init_struct): Move to spu-common.c.
4840         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
4841         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
4842         * config/v850/v850.c (small_memory_physical_max,
4843         v850_handle_memory_optionn v850_handle_option,
4844         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
4845         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
4846         v850-common.c.
4847         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
4848         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
4849         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
4850         Move to xtensa-common.c.
4851         * cfglayout.c: Include common/common-target.h.
4852         (fixup_reorder_chain): Use targetm_common.have_named_sections.
4853         * cfgrtl.c: Include common/common-target.h.
4854         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
4855         targetm_common.have_named_sections.
4856         * dbxout.c: Include common/common-target.h.
4857         (dbxout_function_end): Use targetm_common.have_named_sections.
4858         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
4859         targetm_common.except_unwind_info.
4860         * dwarf2out.c: Include common/common-target.h.
4861         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
4862         dwarf2out_begin_prologue, dwarf2out_frame_init,
4863         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
4864         targetm_common.except_unwind_info.
4865         * except.c: Include common/common-target.h.
4866         (init_eh, finish_eh_generation,
4867         output_one_function_exception_table): Use
4868         targetm_common.except_unwind_info.
4869         (switch_to_exception_section): Use targetm_common.have_named_sections.
4870         * explow.c: Include common/common-target.h.
4871         * expr.c: Include common/common-target.h.
4872         (build_personality_function): Use targetm_common.except_unwind_info.
4873         * function.c: Include common/common-target.h.
4874         (expand_function_end): Use targetm_common.except_unwind_info.
4875         * haifa-sched.c: Include common/common-target.h.
4876         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
4877         * lto-opts.c: Include common/common-target.h instead of target.h.
4878         (lto_reissue_options): Use targetm_common.handle_option.
4879         * opts.c: Include common/common-target.h.
4880         (target_handle_option): Use targetm_common.handle_option.
4881         (init_options_struct): Update comment referring to
4882         targetm.target_option.optimization.  Use
4883         targetm_common.default_target_flags,
4884         targetm_common.unwind_tables_default and
4885         targetm_common.option_init_struct.
4886         (default_options_optimization): Use
4887         targetm_common.option_optimization_table.
4888         (finish_options): Use targetm_common.except_unwind_info,
4889         targetm_common.unwind_tables_default,
4890         targetm_common.have_named_sections and
4891         targetm_common.supports_split_stack.
4892         * toplev.c: Include common/common-target.h.
4893         (process_options): Use targetm_common.have_named_sections.
4894         * tree-tailcall.c: Include common/common-target.h.
4895         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
4896         * tree.c: Include common/common-target.h.
4897         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
4898         * varasm.c: Include common/common-target.h.
4899         (resolve_unique_section, hot_function_section,
4900         default_function_section): Use targetm_common.have_named_sections.
4901
4902 2011-06-14  Easwaran Raman  <eraman@google.com>
4903
4904         PR rtl-optimization/44194
4905         * dse.c: Include tree-flow.h
4906         (insn_info): Add new field non_frame_wild_read.
4907         (group_info): Add new fields escaped_n and escaped_p.
4908         (kill_on_calls): New variable.
4909         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
4910         (dse_step0): Initialize kill_on_calls.
4911         (can_escape): New function.
4912         (set_usage_bits): Add additional parameter; record information
4913         about escaped locations.
4914         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
4915         (dse_step2_nospill): Set kill_on_calls based on
4916         group->escaped_n and group->escaped_n.
4917         (add_wild_read): Refactor into...
4918         (reset_active_stores): ... New function, and
4919         (free_read_records): ... New function.
4920         (add_non_frame_wild_read): New function.
4921         (scan_insn): Call add_non_frame_wild_read on non-const calls.
4922         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
4923         (dse_step5_nospill): Call scan_reads_nospill for instructions
4924         marked as non_frame_wild_read.
4925         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
4926
4927 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
4928
4929         * common/common-target-def.h, common/common-target.def,
4930         common/common-target.h, common/config/default-common.c,
4931         common/config/pa/pa-common.c: New files.
4932         * Makefile.in (common_out_file, common_out_object_file,
4933         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
4934         (OBJS-libcommon-target): Include $(common_out_object_file).
4935         (prefix.o): Update dependencies.
4936         ($(common_out_object_file), common/common-target-hooks-def.h,
4937         s-common-target-hooks-def-h): New.
4938         (s-tm-texi): Also check timestamp on common-target.def.
4939         (build/genhooks.o): Update dependencies.
4940         * config.gcc (common_out_file, target_has_targetm_common): Define.
4941         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
4942         TARGET_ALWAYS_STRIP_DOTDOT.
4943         * configure.ac (common_out_object_file): Define.
4944         (common_out_file, common_out_object_file): Substitute.
4945         (common): Create directory.
4946         * configure: Regenerate.
4947         * doc/tm.texi.in (targetm_common): Document.
4948         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
4949         * doc/tm.texi: Regenerate.
4950         * genhooks.c (hook_array): Also include common/common-target.def.
4951         * prefix.c (tm.h): Don't include.
4952         (common/common-target.h): Include.
4953         (ALWAYS_STRIP_DOTDOT): Don't define.
4954         (update_path): Use targetm_common.always_strip_dotdot instead of
4955         ALWAYS_STRIP_DOTDOT.
4956         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
4957
4958 2011-06-14  David Li  <davidxl@google.com>
4959
4960         * passes.c (execute_function_todo): Remove TODO_dump_func.
4961         (execute_one_pass): Remove TODO_dump_func.
4962         (execute_function_dump): New function.
4963         * tree-vrp.c: Remove TODO_dump_func.
4964         * regrename.c: Remove TODO_dump_func.
4965         * fwprop.c: Remove TODO_dump_func.
4966         * tree-into-ssa.c: Remove TODO_dump_func.
4967         * tree-complex.c: Remove TODO_dump_func.
4968         * tracer.c: Remove TODO_dump_func.
4969         * tree-loop-distribution.c: Remove TODO_dump_func.
4970         * postreload-gcse.c: Remove TODO_dump_func.
4971         * postreload.c: Remove TODO_dump_func.
4972         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
4973         * tree-tailcall.c: Remove TODO_dump_func.
4974         * ipa-cp.c: Remove TODO_dump_func.
4975         * final.c: Remove TODO_dump_func.
4976         * tree-emutls.c: Remove TODO_dump_func.
4977         * omp-low.c: Remove TODO_dump_func.
4978         * tree-ssa-dse.c: Remove TODO_dump_func.
4979         * tree-ssa-uncprop.c: Remove TODO_dump_func.
4980         * auto-inc-dec.c: Remove TODO_dump_func.
4981         * reorg.c: Remove TODO_dump_func.
4982         * tree-ssa-copyrename.c: Remove TODO_dump_func.
4983         * tree-ssa-ccp.c: Remove TODO_dump_func.
4984         * compare-elim.c: Remove TODO_dump_func.
4985         * mode-switching.c: Remove TODO_dump_func.
4986         * modulo-sched.c: Remove TODO_dump_func.
4987         * tree-call-cdce.c: Remove TODO_dump_func.
4988         * cse.c: Remove TODO_dump_func.
4989         * web.c: Remove TODO_dump_func.
4990         * tree-stdarg.c: Remove TODO_dump_func.
4991         * lto-streamer-out.c: Remove TODO_dump_func.
4992         * tree-ssa-math-opts.c: Remove TODO_dump_func.
4993         * tree-ssa-dom.c: Remove TODO_dump_func.
4994         * tree-nrv.c: Remove TODO_dump_func.
4995         * loop-init.c: Remove TODO_dump_func.
4996         * gimple-low.c: Remove TODO_dump_func.
4997         * ipa-inline.c: Remove TODO_dump_func.
4998         * tree-ssa-sink.c: Remove TODO_dump_func.
4999         * jump.c: Remove TODO_dump_func.
5000         * ifcvt.c: Remove TODO_dump_func.
5001         * tree-ssa-loop.c: Remove TODO_dump_func.
5002         * recog.c: Remove TODO_dump_func.
5003         * dse.c: Remove TODO_dump_func.
5004         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
5005         * matrix-reorg.c: Remove TODO_dump_func.
5006         * tree-eh.c: Remove TODO_dump_func.
5007         * regmove.c: Remove TODO_dump_func.
5008         * function.c: Remove TODO_dump_func.
5009         * tree-vectorizer.c: Remove TODO_dump_func.
5010         * ipa-split.c: Remove TODO_dump_func.
5011         * gcse.c: Remove TODO_dump_func.
5012         * tree-if-conv.c: Remove TODO_dump_func.
5013         * init-regs.c: Remove TODO_dump_func.
5014         * tree-ssa-phiopt.c: Remove TODO_dump_func.
5015         * implicit-zee.c: Remove TODO_dump_func.
5016         * lower-subreg.c: Remove TODO_dump_func.
5017         * bt-load.c: Remove TODO_dump_func.
5018         * tree-dfa.c: Remove TODO_dump_func.
5019         * except.c: Remove TODO_dump_func.
5020         * emit-rtl.c: Remove TODO_dump_func.
5021         * store-motion.c: Remove TODO_dump_func.
5022         * cfgexpand.c: Remove TODO_dump_func.
5023         * tree-cfgcleanup.c: Remove TODO_dump_func.
5024         * cfgcleanup.c: Remove TODO_dump_func.
5025         * tree-ssa-pre.c: Remove TODO_dump_func.
5026         * tree-sra.c: Remove TODO_dump_func.
5027         * tree-mudflap.c: Remove TODO_dump_func.
5028         * tree-ssa-copy.c: Remove TODO_dump_func.
5029         * cfglayout.c: Remove TODO_dump_func.
5030         * tree-ssa-forwprop.c: Remove TODO_dump_func.
5031         * tree-ssa-dce.c: Remove TODO_dump_func.
5032         * ira.c: Remove TODO_dump_func.
5033         * tree-ssa.c: Remove TODO_dump_func.
5034         * integrate.c: Remove TODO_dump_func.
5035         * tree-optimize.c: Remove TODO_dump_func.
5036         * tree-ssa-phiprop.c: Remove TODO_dump_func.
5037         * tree-object-size.c: Remove TODO_dump_func.
5038         * combine.c: Remove TODO_dump_func.
5039         * bb-reorder.c: Remove TODO_dump_func.
5040         * cprop.c: Remove TODO_dump_func.
5041         * var-tracking.c: Remove TODO_dump_func.
5042         * tree-profile.c: Remove TODO_dump_func.
5043         * tree-vect-generic.c: Remove TODO_dump_func.
5044         * reg-stack.c: Remove TODO_dump_func.
5045         * sched-rgn.c: Remove TODO_dump_func.
5046         * tree-ssa-structalias.c: Remove TODO_dump_func.
5047         * tree-switch-conversion.c: Remove TODO_dump_func.
5048         * tree-cfg.c: Remove TODO_dump_func.
5049         * tree-ssa-reassoc.c: Remove TODO_dump_func.
5050         * combine-stack-adj.c: Remove TODO_dump_func.
5051         * dce.c: Remove TODO_dump_func.
5052         * tree-ssanames.c: Remove TODO_dump_func.
5053         * regcprop.c: Remove TODO_dump_func.
5054
5055 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
5056
5057         PR middle-end/47364
5058         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
5059         and properly handle result not in Pmode.
5060
5061 2011-06-14  Robert Millan  <rmh@gnu.org>
5062
5063         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
5064         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
5065         `config/linux.h'.
5066
5067         * config/i386/kfreebsd-gnu64.h: New file.
5068         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
5069         with `i386/kfreebsd-gnu64.h'.
5070
5071         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
5072         (GNU_USER_LINK_EMULATION64): New macros.
5073         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
5074         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
5075         of hardcoding `elf_i386' and `elf_x86_64'.
5076
5077 2011-06-14  Nick Clifton  <nickc@redhat.com>
5078
5079         PR target/49403
5080         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
5081
5082         PR target/49402
5083         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
5084
5085 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
5086
5087         PR fortran/49103
5088         * tree.h (DECL_NONSHAREABLE): Define.
5089         (struct tree_decl_common): Change decl_common_unused to
5090         decl_nonshareable_flag.
5091         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
5092         Ignore vars with DECL_NONSHAREABLE bit set.
5093         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
5094         on stores to automatic aggregate vars.
5095
5096         PR rtl-optimization/49390
5097         Revert:
5098         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
5099
5100         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
5101         MEM_ALIAS_SET.
5102
5103 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
5104             Tom de Vries  <tom@codesourcery.com>
5105
5106         PR target/45098
5107         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
5108         Document changed semantics.
5109         (max_stmt_executions, max_stmt_executions_int): Declare.
5110         * tree-data-ref.c (estimated_loop_iterations)
5111         (estimated_loop_iterations_int): Move functions...
5112         * tree-ssa-loop-niter.c (estimated_loop_iterations)
5113         (estimated_loop_iterations_int): here.
5114         (record_estimate): Change nb_iterations_upper_bound and
5115         nb_iterations_estimate semantics.
5116         (max_stmt_executions, max_stmt_executions_int): New function.
5117         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
5118         (max_stmt_executions_tree): this.
5119         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
5120         estimated_loop_iterations_tree.
5121         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
5122         max_stmt_executions_int instead of estimated_loop_iterations_int.
5123         * predict.c (predict_loops): Idem.
5124         * tree-parloops.c (parallelize_loops): Idem.
5125         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
5126         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
5127         (init_omega_for_ddr_1): Idem.
5128         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
5129         (loop_prefetch_arrays): Idem
5130         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
5131         max_stmt_executions instead of estimated_loop_iterations.
5132         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
5133         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
5134         instead of nb_iterations_upper_bound.
5135
5136 2011-06-13  Jan Hubicka  <jh@suse.cz>
5137
5138         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
5139
5140 2011-06-14  Richard Henderson  <rth@redhat.com>
5141
5142         PR debug/48459
5143         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
5144         (based_loc_descr): Assert it's true.
5145         (compute_frame_pointer_to_fb_displacement): Set it, rather than
5146         aborting immediately.
5147
5148 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
5149             Mingfeng Wu  <mingfeng@faraday-tech.com>
5150
5151         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
5152
5153 2011-06-13  Jan Hubicka  <jh@suse.cz>
5154
5155         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
5156
5157 2011-06-13  Jan Hubicka  <jh@suse.cz>
5158
5159         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
5160         similarly to DECL_COMDAT.
5161         * cgraphunit.c (cgraph_analyze_function): Likewise.
5162         * ipa.c (function_and_variable_visibility): Likewise.
5163
5164 2011-06-13  Jan Hubicka  <jh@suse.cz>
5165
5166         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
5167         BINFO_VIRTUALS when streaming for ltrans unit.
5168
5169 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
5170
5171         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
5172         (movdi_internal64): Same.
5173
5174 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
5175
5176         PR target/44618
5177         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
5178         a set of similar patterns, where the MATCH_OPERAND for the function
5179         argument is replaced with individual references to hardware registers.
5180         (save_fpregs_<mode>): Ditto
5181         (restore_gpregs_<mode>): Ditto
5182         (return_and_restore_gpregs_<mode>): Ditto
5183         (return_and_restore_fpregs_<mode>): Ditto
5184         (return_and_restore_fpregs_aix_<mode>): Ditto
5185
5186 2011-06-13  Jan Hubicka  <jh@suse.cz>
5187
5188         * ipa-utils.c (postorder_stack): New structure.
5189         (ipa_reverse_postorder): Handle aliases.
5190
5191 2011-06-13  Jan Hubicka  <jh@suse.cz>
5192
5193         * ipa-inline.c (reset_edge_caches): Walk aliases.
5194         (update_caller_keys): Do not test inlinability of aliases.
5195         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
5196         (do_estimate_growth): Fix typo.
5197
5198 2011-06-13  Jan Hubicka  <jh@suse.cz>
5199
5200         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
5201         (can_remove_node_now_p): ... here; handle same comdat groups.
5202         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
5203         (inline_call): Update use of can_remove_node_now_p.
5204
5205 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5206
5207         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
5208         condition to disallow non-identical memory locations.
5209         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
5210         preference to bit manipulation instructions.
5211
5212 2011-06-13  Jan Hubicka  <jh@suse.cz>
5213
5214         * cgraph.c (cgraph_for_node_thunks_and_aliases,
5215         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
5216         (nonremovable_p): New function.
5217         (cgraph_can_remove_if_no_direct_calls_p): New function.
5218         (used_from_object_file_p): New functoin.
5219         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
5220         references from aliases.
5221         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
5222         * ipa-inline.c (check_caller_edge): New function.
5223         (want_inline_function_called_once_p): Use it; accept aliases called
5224         once, too.
5225         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
5226
5227 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5228
5229         PR target/48454
5230         * config/arm/neon.md (vec_pack_trunc): Set the lengths
5231         correctly for the case with Quad vectors.
5232
5233 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
5234            Ira Rosen  <ira.rosen@linaro.org>
5235
5236         PR tree-optimization/49352
5237         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
5238         all, make sure loop_use_stmt after the loop is a def stmt of a used
5239         SSA_NAME that is the only one defined inside of the loop.  Don't
5240         check for COND_EXPR and GIMPLE_BINARY_RHS.
5241         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
5242         check_reduction is true.
5243
5244 2011-06-11  Jan Hubicka  <jh@suse.cz>
5245
5246         PR middle-end/49373
5247         * ipa.c (cgraph_externally_visible_p): Check resolution info.
5248
5249 2011-06-11  Jan Hubicka  <jh@suse.cz>
5250
5251         PR middle-end/48836
5252         * ipa-inline-transform.c: Include tree-pass.h
5253         (inline_transform): Set TODO_update_ssa_only_virtuals.
5254         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
5255
5256 2011-06-11  Jan Hubicka  <jh@suse.cz>
5257
5258         PR middle-end/49378
5259         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
5260         aliases and thunks.
5261
5262 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
5263
5264         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
5265         Take number of iterations to peel into account for equally frequent
5266         misalignment values.
5267
5268 2011-06-11  Jan Hubicka  <jh@suse.cz>
5269
5270         * lto-streamer-out.c (produce_symtab): Stream out the newly
5271         represented aliases.
5272
5273 2011-06-11  Jan Hubicka  <jh@suse.cz>
5274
5275         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
5276         varying args.
5277         (ipa_update_after_lto_read): Likewise.
5278         (ipa_write_node_info): Do not sream call_with_var_arguments.
5279         (ipa_read_node_info): Likewise.
5280
5281 2011-06-11  Jan Hubicka  <jh@suse.cz>
5282
5283         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
5284
5285 2011-06-11  Jan Hubicka  <jh@suse.cz>
5286
5287         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
5288         (lto_symtab_resolve_can_prevail_p): Likewise.
5289         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
5290         * cgraph.c (same_body_aliases_done): New global var.
5291         (cgraph_same_body_alias_1): Rename to ...
5292         (cgraph_create_function_alias): ... this one; reorg to new
5293         representation.
5294         (cgraph_same_body_alias): Use cgraph_create_function_alias;
5295         record references when asked to.
5296         (cgraph_add_thunk): Fix formating.
5297         (cgraph_get_node): Kill same body alias code.
5298         (cgraph_node_for_asm): Likewise.
5299         (cgraph_remove_same_body_alias): Remove.
5300         (cgraph_remove_node): Kill same body alias code.
5301         (cgraph_mark_address_taken_node): Mark also the aliased function
5302         as having address taken.
5303         (dump_cgraph_node): Dump same body aliases.
5304         (cgraph_for_node_thunks_and_aliases): Update for new alias
5305         representation.
5306         (cgraph_for_node_and_aliases): Likewise.
5307         * cgraph.h (same_body): Kll pointer.
5308         (same_body_alias): Update comment.
5309         (same_body_aliases_done): Declare.
5310         (cgraph_remove_same_body_alias): Remove declaration.
5311         (cgraph_create_function_alias): Declare.
5312         (cgraph_process_same_body_aliases): Declare.
5313         (cgraph_function_with_gimple_body_p): Check for alias.
5314         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
5315         (cgraph_alias_aliased_node): New function.
5316         (cgraph_function_node): Update for new aliases.
5317         (cgraph_function_or_thunk_node): Likewise.
5318         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
5319         (inline_call): Remove dead aliases.
5320         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
5321         name hack for same body aliases.
5322         (clone_of_p): Look through aliases.
5323         (verify_cgraph_node): Verify aliases.
5324         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
5325         (cgraph_process_same_body_aliases): New function.
5326         (process_function_and_variable_attributes): Disable weakref warning on
5327         alias.
5328         (cgraph_analyze_functions): Handle aliases.
5329         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
5330         (assemble_thunks): Rename to ...
5331         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
5332         (cgraph_expand_function): Remove alias output code.
5333         (cgraph_output_in_order): Skip aliases.
5334         (cgraph_preserve_function_body_p): Aliases don't need preserving.
5335         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
5336         (ipa_record_reference): Do not assert on alias references.
5337         (ipa_ref_has_aliases_p): New function.
5338         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
5339         (ipa_ref_has_aliases_p): Declare.
5340         * lto-cgraph.c (lto_output_node): Handle aliases.
5341         (input_node): Likewise.
5342         * lto-streamer-out.c (lto_output): Skip aliases.
5343         (produce_symtab): Kill same_body_alias code.
5344         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
5345         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
5346         * ipa-inline.c (update_caller_keys): Walk aliases.
5347         (inline_small_functions): Fix thinko in previous patch.
5348         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
5349         (function_and_variable_visibility): Do not walk same body aliases.
5350         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
5351         (ipa_pta_execute): Use it.
5352
5353 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
5354
5355         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
5356         (*vec_dupv2df): Rename from vec_dupv2df.
5357         (vec_dupv2df): New expander.
5358
5359 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
5360
5361         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
5362
5363 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
5364
5365         * config/i386/i386.md: Use default value in "isa" attribute.
5366         * config/i386/sse.md: Ditto.
5367         * config/i386/mmx.md: Ditto.
5368
5369 2011-06-10  Wei Guozhi  <carrot@google.com>
5370
5371         PR target/45335
5372         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5373         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5374         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5375         related peephole2.
5376         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5377         related peephole2.
5378         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5379         (arm_legitimate_ldrd_p): New prototype.
5380         (arm_output_ldrd): New prototype.
5381         * config/arm/arm.c (arm_check_ldrd_operands): New function.
5382         (arm_legitimate_ldrd_p): New function.
5383         (arm_output_ldrd): New function.
5384
5385 2011-06-10  David Li  <davidxl@google.com>
5386
5387         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
5388         * passes.c (passr_eq): New function.
5389         (create_pass_tab): New function.
5390         (pass_traverse): New function.
5391         (dump_one_pass): New function.
5392         (dump_pass_list): New function.
5393         (dump_passes): New function.
5394
5395 2011-06-10  Jan Hubicka  <jh@suse.cz>
5396
5397         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
5398         setting the nothrow flag.
5399         * ipa-reference.c (propagate): Skip aliases.
5400         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
5401         (propagate_nothrow): Skip aliases; do not update cgraph.
5402         (local_pure_const): Do not update cgraph.
5403         * tree-profile.c (tree_profiling): Do fixup_cfg.
5404
5405 2011-06-10  Jan Hubicka  <jh@suse.cz>
5406
5407         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
5408         (cgraph_local_node_p): ... here; handle aliases.
5409         (has_addr_references_p): Break out from ...;
5410         (cgraph_remove_unreachable_nodes) ... here.
5411
5412 2011-06-10  Jan Hubicka  <jh@suse.cz>
5413
5414         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
5415         * common.opt (flag_inline_functions_called_once): Do not
5416         initialize to 1.
5417
5418 2011-06-10  Jan Hubicka  <jh@suse.cz>
5419
5420         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
5421         (ipcp_initialize_node_lattices): Do not deal with aliases;
5422         Do not try to propagate through thunks.
5423         (ipcp_change_tops_to_bottom): Do not deal with aliases.
5424
5425 2011-06-10  Jan Hubicka  <jh@suse.cz>
5426
5427         * ipa-prop.c (ipa_write_node_info): Stream jump functions
5428         for indirect calls.
5429         (ipa_read_node_info): Likewise.
5430
5431 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5432
5433         PR lto/49302
5434         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
5435         (build_and_insert_call): Likewise.
5436         (build_and_insert_ref): New.
5437         (gimple_expand_builtin_pow): Minor cleanup.
5438         (gimple_expand_builtin_cabs): New.
5439         (execute_cse_sincos): Add case for BUILT_IN_CABS.
5440
5441 2011-06-10  Jan Hubicka  <jh@suse.cz>
5442
5443         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
5444         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
5445         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
5446         (ipcp_propagate_stage): Skip aliases when propagating.
5447         (ipcp_need_redirect_p): Skip aliases.
5448         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
5449         collect_callers_of_node.
5450         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
5451         for aliases.
5452         (ipa_compute_jump_functions): Look through aliases.
5453
5454 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5455
5456         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
5457
5458 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5459
5460         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
5461         Adjust comments.
5462         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
5463
5464 2011-06-10  Jan Hubicka  <jh@suse.cz>
5465
5466         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
5467         Update call of gimple_get_virt_method_for_binfo.
5468         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
5469         refuse_thunks parameter.
5470         (gimple_fold_call): Update.
5471         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
5472
5473 2011-06-10  Jan Hubicka  <jh@suse.cz>
5474
5475         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
5476         (not_all_callers_have_enough_arguments_p): ... this one; turn into
5477         worker for cgraph_for_node_and_aliases.
5478         (convert_callers_for_node): Break out from ...
5479         (convert_callers): ... here.
5480         (modify_function): Use collect_callers_of_node.
5481         (ipa_early_sra): Use cgraph_for_node_and_aliases.
5482
5483 2011-06-10  Richard Guenther  <rguenther@suse.de>
5484
5485         PR tree-optimization/49361
5486         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
5487         when not already in gimple form.
5488
5489 2011-06-10  Richard Guenther  <rguenther@suse.de>
5490
5491         PR bootstrap/49344
5492         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
5493         FOR_EACH_PHI_OR_STMT_USE.
5494
5495 2011-06-10  Jan Hubicka  <jh@suse.cz>
5496
5497         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
5498         (clone_inlined_nodes): ... here.
5499         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
5500         to real destination prior inlining.
5501         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
5502         can_early_inline_edge_p, want_early_inline_function_p,
5503         want_early_inline_function_p, want_inline_small_function_p,
5504         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
5505         edge_badness, update_all_callee_keys, lookup_recursive_calls,
5506         add_new_edges_to_heap, inline_small_functions, flatten_function,
5507         inline_always_inline_functions, early_inline_small_functions): Use
5508         cgraph_function_or_thunk_node.
5509         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
5510         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
5511         (do_estimate_edge_growth_1): Break out from ...
5512         (do_estimate_growth) ... here; walk aliases.
5513         (inline_generate_summary): Skip aliases.
5514
5515 2011-06-10  Richard Guenther  <rguenther@suse.de>
5516
5517         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
5518         forward when combining, visit inserted stmts when a stmt was changed.
5519
5520 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
5521
5522         * tree.h (error_operand_p): Add.
5523         * dbxout.c (dbxout_type_fields): Use the latter.
5524         * c-decl.c (add_stmt): Likewise.
5525         * gimplify.c (omp_add_variable, omp_notice_variable,
5526         gimplify_scan_omp_clauses): Likewise.
5527
5528 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
5529
5530         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
5531         when a value is actually passed in regs.
5532
5533 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
5534             Laurent Rougé  <laurent.rouge@menta.fr>
5535
5536         * doc/invoke.texi (SPARC options): Add -mflat.
5537         * config/sparc/sparc.opt: Likewise.
5538         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
5539         (sparc_flat_expand_prologue): Declare.
5540         (sparc_flat_expand_epilogue): Likewise.
5541         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
5542         (CPP_ENDIAN_SPEC): Replace with...
5543         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
5544         (CPP_SPEC): Adjust to above change.
5545         (EXTRA_SPECS): Likewise.
5546         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
5547         (INCOMING_REGNO): Likewise.
5548         (OUTGOING_REGNO): Likewise.
5549         (LOCAL_REGNO): Likewise.
5550         (SETUP_FRAME_ADDRESSES): Likewise.
5551         (FIXED_REGISTERS): Set 0 for %fp.
5552         (CALL_USED_REGISTERS): Likewise.
5553         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
5554         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
5555         (RETURN_ADDR_REGNUM): Define.
5556         (RETURN_ADDR_RTX): Use it.
5557         (INCOMING_RETURN_ADDR_REGNUM): Define.
5558         (INCOMING_RETURN_ADDR_RTX): Use it.
5559         (DWARF_FRAME_RETURN_COLUMN): Likewise.
5560         (EH_RETURN_REGNUM): Define.
5561         (EH_RETURN_STACKADJ_RTX): Use it.
5562         (EH_RETURN_HANDLER_RTX): Delete.
5563         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
5564         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
5565         Delete.
5566         (struct machine_function): Add frame_size, apparent_frame_size,
5567         frame_base_reg, frame_base_offset, n_global_fp_regs and
5568         save_local_in_regs_p fields.
5569         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
5570         sparc_frame_base_offset, sparc_n_global_fp_regs,
5571         sparc_save_local_in_regs_p): New macros.
5572         (sparc_option_override): Error out if -fcall-saved-REG is specified
5573         for Out registers.
5574         (eligible_for_restore_insn): Fix formatting.
5575         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
5576         (eligible_for_sibcall_delay): Likewise.
5577         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
5578         (sparc_legitimate_address_p): Adjust to above change.
5579         (save_global_or_fp_reg_p): New predicate.
5580         (return_addr_reg_needed_p): Likewise.
5581         (save_local_or_in_reg_p): Likewise.
5582         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
5583         (SORR_SAVE, SORR_RESTORE): Delete.
5584         (sorr_pred_t): New typedef.
5585         (sorr_act_t): New enum.
5586         (save_or_restore_regs): Rename to...
5587         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
5588         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
5589         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
5590         mechanism.  Add CFI information for double-word saves in 32-bit mode.
5591         (emit_adjust_base_to_offset): New function extracted from...
5592         (emit_save_or_restore_regs): ...this.  Rename the rest to...
5593         (emit_save_or_restore_regs_global_fp_regs): ...this.
5594         (emit_save_or_restore_regs_local_in_regs): New function.
5595         (gen_create_flat_frame_[123]): New functions.
5596         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
5597         (sparc_flat_expand_prologue): New function.
5598         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
5599         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
5600         (sparc_flat_expand_epilogue): New function.
5601         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
5602         (output_return): Likewise.
5603         (output_sibcall): Likewise.
5604         (sparc_output_mi_thunk): Likewise.
5605         (sparc_frame_pointer_required): Likewise.
5606         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
5607         function optimization.
5608         * config/sparc/sparc.md (flat): New attribute.
5609         (prologue): Add TARGET_FLAT handling.
5610         (save_register_window): Disable if TARGET_FLAT.
5611         (create_flat_frame_[123]): New patterns.
5612         (epilogue): Add TARGET_FLAT handling.
5613         (sibcall_epilogue): Likewise.
5614         (eh_return): New expander.
5615         (eh_return_internal): New insn and splitter.
5616         (return_internal): Add TARGET_FLAT handling.
5617         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
5618         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
5619         (nonlocal_goto): Add TARGET_FLAT handling.
5620         * config/sparc/t-elf: Add -mflat multilib.
5621         * config/sparc/t-leon: Likewise.
5622
5623 2011-06-10  Jan Hubicka  <jh@suse.cz>
5624
5625         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
5626         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
5627         (self_recursive_p): Use cgraph_function_node.
5628         (propagate_pure_const): Likewise.
5629         (propagate_nothrow): Likewise.
5630         * ipa-reference.c (ipa_reference_get_not_read_global): Use
5631         cgraph_function_node.
5632         (propagate_bits): Likewise.
5633         (propagate): Likewise.
5634
5635 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5636             Richard Earnshaw  <rearnsha@arm.com>
5637
5638         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
5639         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
5640         (*thumb2_movdi_vfp): Delete.
5641         (*arm_movdi_vfp_cortexa8): Delete.
5642         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
5643         (*movdi_vfp_cortexa8): Likewise.
5644
5645 2011-06-10  Richard Guenther  <rguenther@suse.de>
5646
5647         * stor-layout.c (initialize_sizetypes): Give names to all
5648         sizetype kinds.
5649
5650 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
5651
5652         PR tree-optimization/49318
5653         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
5654         irrelevant pattern statements.
5655
5656 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5657
5658         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
5659
5660         PR bootstrap/49354
5661         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
5662         to last assignment.
5663
5664 2011-06-09  Jan Hubicka  <jh@suse.cz>
5665
5666         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
5667         do not recompute reachable flag.
5668         (cgraph_finalize_function, cgraph_analyze_functions): Set
5669         redefined_extern_inline here.
5670
5671 2011-06-09  Jan Hubicka  <jh@suse.cz>
5672
5673         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
5674         (cgraph_only_called_directly_p): ... this one; bring offline.
5675         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
5676         varpool_used_from_object_file_p): Drop names from the declaratoin.
5677         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
5678         collect_callers_of_node): New.
5679         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
5680         (cgraph_edge_recursive_p): Use cgraph_function_node.
5681         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
5682         (cgraph_node_cannot_be_local_p_1): Break out from ...
5683         (cgraph_node_can_be_local_p): ... here; walk aliases.
5684         (cgraph_for_node_thunks_and_aliases): New function.
5685         (cgraph_for_node_and_aliases): New function.
5686         (cgraph_make_node_local_1): Break out from ...
5687         (cgraph_make_node_local) ... here; use
5688         cgraph_for_node_thunks_and_aliases.
5689         (cgraph_set_nothrow_flag_1): Break out from ...
5690         (cgraph_set_nothrow_flag) ... here;
5691         use cgraph_for_node_thunks_and_aliases.
5692         (cgraph_set_const_flag_1): Break out from ...
5693         (cgraph_set_const_flag) ... here;
5694         use cgraph_for_node_thunks_and_aliases.
5695         (cgraph_set_pure_flag_1): Break out from ...
5696         (cgraph_set_pure_flag) ... here;
5697         use cgraph_for_node_thunks_and_aliases.
5698         (cgraph_propagate_frequency_1): Break out from ...
5699         (cgraph_propagate_frequency) ... here; use
5700         cgraph_for_node_thunks_and_aliases.
5701         (cgraph_used_from_object_file_p): Do not care about aliases.
5702         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
5703         New functions.
5704         (collect_callers_of_node_1, collect_callers_of_node): New functions.
5705
5706 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5707
5708         PR rtl-optimization/49154
5709         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
5710         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
5711         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
5712         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
5713         * config/cris/cris.h (cris_register_move_cost): Remove
5714         !TARGET_V32 code.  Tweak comments.
5715
5716 2011-06-09  Jan Hubicka  <jh@suse.cz>
5717
5718         * cgraphbuild.c (record_eh_tables): Mark personality function as having
5719         address taken.
5720
5721 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
5722
5723         PR rtl-optimization/49154
5724         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
5725         is a matching slot in the hashtable, assign it to classes_ptr.
5726
5727         PR rtl-optimization/49154
5728         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
5729         register classes.
5730         * doc/tm.texi: Regenerate.
5731
5732 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5733
5734         PR target/49307
5735         * config/sh/sh.md (UNSPEC_CHKADD): New.
5736         (chk_guard_add): New define_insn_and_split.
5737         (symGOT_load): Use chk_guard_add instead of blockage.
5738
5739 2011-06-09  Kai Tietz  <ktietz@redhat.com>
5740
5741         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
5742
5743 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
5744
5745         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
5746
5747 2011-06-09  Wei Guozhi  <carrot@google.com>
5748
5749         PR target/46975
5750         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
5751         (peephole2 for conditional move): Generate 16 bit instructions.
5752
5753 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
5754
5755         * config/i386/i386.md (*movdi_internal_rex64): Merge
5756         alternatives 6 and 8.
5757
5758 2011-06-09  David Li  <davidxl@google.com>
5759
5760         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
5761         * passes.c (passr_eq): New function.
5762         (create_pass_tab): New function.
5763         (pass_traverse): New function.
5764         (dump_one_pass): New function.
5765         (dump_pass_list): New function.
5766         (dump_passes): New function.
5767
5768 2011-06-09  David Li  <davidxl@google.com>
5769
5770         * tree-complex.c (tree_lower_complex): Gate cleanup.
5771         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
5772         (execute_optimize_stdarg): Ditto.
5773         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
5774         (execute_cleanup_eh_1): Ditto.
5775         (execute_cleanup_eh): Ditto.
5776         * gcse.c (gate_rtl_pre): Ditto.
5777         (execute_rtl_pre): Ditto.
5778         * except.c (finish_eh_generation): Ditto.
5779         (convert_to_eh_region_ranges): Ditto.
5780         * cprop.c (one_cprop_pass): Ditto.
5781
5782 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
5783
5784         PR target/48673
5785         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
5786         in all basic blocks.
5787
5788 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5789
5790         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
5791         (HAVE_ENABLE_EXECUTE_STACK): Define.
5792         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
5793         (HAVE_ENABLE_EXECUTE_STACK): Define.
5794         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
5795         (HAVE_ENABLE_EXECUTE_STACK): Define.
5796         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
5797         (ENABLE_EXECUTE_STACK): Remove.
5798         (HAVE_ENABLE_EXECUTE_STACK): Define.
5799         [IN_LIBGCC2]: Don't include <windows.h>.
5800         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
5801         (HAVE_ENABLE_EXECUTE_STACK): Define.
5802         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
5803         (HAVE_ENABLE_EXECUTE_STACK): Define.
5804         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
5805         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
5806         (HAVE_ENABLE_EXECUTE_STACK): Define.
5807         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
5808         (HAVE_ENABLE_EXECUTE_STACK): Define.
5809         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
5810         (HAVE_ENABLE_EXECUTE_STACK): Define.
5811         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
5812         (HAVE_ENABLE_EXECUTE_STACK): Define.
5813         * config/alpha/alpha.c (alpha_trampoline_init): Test
5814         HAVE_ENABLE_EXECUTE_STACK.
5815         * config/i386/i386.c (ix86_trampoline_init): Likewise.
5816         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
5817         (sparc64_initialize_trampoline): Likewise.
5818         * libgcc2.c [L_enable_execute_stack]: Remove.
5819         * system.h (ENABLE_EXECUTE_STACK): Poison.
5820         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
5821         * doc/tm.texi: Regenerate.
5822         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
5823
5824 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
5825
5826         PR middle-end/49308
5827         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
5828         variable.  After resetting and rescanning insn continue with previous
5829         statement.
5830
5831 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5832
5833         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
5834         (gcc_cv_ld_hidden): Likewise.
5835         * configure: Regenerate.
5836         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
5837         (ix86_stack_protect_fail): Mark unused.
5838         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
5839         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
5840         [TARGET_MACHO]: Don't define.
5841         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
5842         (TARGET_STACK_PROTECT_FAIL): Likewise.
5843         (rs6000_stack_protect_fail): Mark unused.
5844         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
5845         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
5846
5847 2011-06-08  Andi Kleen  <ak@linux.intel.com>
5848
5849         * varasm.c (get_section): Print location of other conflict
5850         for section conflicts.
5851
5852 2011-06-08  Andi Kleen  <ak@linux.intel.com>
5853
5854         * config/i386/driver-i386.c (host_detect_local_cpu):
5855         Add model 0x2d Intel CPU.
5856
5857 2011-06-08  Andi Kleen  <ak@linux.intel.com>
5858
5859         * reginfo.c (global_regs_decl): Add.
5860         (globalize_reg): Add decl parameter. Compute location.  Pass location
5861         to warnings and add inform. Store decl in global_regs_decl.
5862         * rtl.h (globalize_reg): Update prototype.
5863         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
5864
5865 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
5866
5867         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
5868
5869 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5870
5871         PR target/49305
5872         * config/sh/predicates.md (general_movsrc_operand): Check
5873         mode for memory with indexed address for QI and HImode.
5874         (general_movdst_operand): Likewise.
5875
5876 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
5877
5878         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
5879
5880 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
5881
5882         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
5883         (num_ssa_operands): Likewise.
5884         (op_iter_init_phiuse): Forward-declare.
5885         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
5886
5887 2011-06-08  Nick Clifton  <nickc@redhat.com>
5888
5889         * doc/invoke.texi (ARM Options): Update description of
5890         -mthumb-interwork.
5891
5892 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
5893
5894         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5895         unknown Intel family 0x6 CPUs.
5896
5897 2011-06-08  Martin Jambor  <mjambor@suse.cz>
5898
5899         * tree-sra.c (mark_rw_status): Removed.
5900         (analyze_access_subtree): New parameter parent instead of
5901         mark_read and mark_write, propagate from that.
5902
5903 2011-06-08  Julian Brown  <julian@codesourcery.com>
5904
5905         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
5906         for double-precision helper functions in hard-float mode if only
5907         single-precision arithmetic is supported in hardware.
5908
5909 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
5910
5911         PR rtl-optimization/49303
5912         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
5913         code_motion_path_driver returned 0 or 1.
5914         (sel_region_finish): Clear h_d_i_d.
5915
5916 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5917
5918         * config/sh/sh.c (prepare_move_operands): Set pic register
5919         appropriately for global and local dynamic tls models even
5920         if flag_pic is unset.
5921
5922 2011-06-07  Jason Merrill  <jason@redhat.com>
5923
5924         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
5925
5926 2011-06-07  Xinliang David Li  <davidxl@google.com>
5927         * passes.c (enable_disable_pass): Handle assembler name.
5928         (is_pass_explicitly_enabled_or_disabled): Ditto.
5929
5930 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5931
5932         PR tree-optimization/48497
5933         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
5934
5935 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5936
5937         PR tree-optimization/46728
5938         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
5939         to use gimple_val_nonnegative_real_p.
5940         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
5941         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
5942
5943 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
5944
5945         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
5946
5947 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
5948
5949         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
5950         constant vectors.
5951
5952 2011-06-07  Richard Guenther  <rguenther@suse.de>
5953
5954         * stor-layout.c (initialize_sizetypes): Initialize all
5955         sizetypes based on target definitions.
5956         (set_sizetype): Remove.
5957         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
5958         * tree.h (set_sizetype): Remove.
5959
5960 2011-06-07  Nick Clifton  <nickc@redhat.com>
5961
5962         * config.gcc: Unify V850 architecture options and add support for
5963         newer V850 architectures.
5964         * config/v850/t-v850e: Delete.
5965
5966 2011-06-07  Richard Guenther  <rguenther@suse.de>
5967
5968         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
5969         Call set_sizetype from here.
5970
5971 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
5972
5973         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
5974         (*maddhisi4tb, *maddhisi4tt): New define_insns.
5975
5976 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
5977             Andrew Stubbs  <ams@codesourcery.com>
5978
5979         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
5980         multiplies.
5981         * doc/md.texi (Canonicalization of Instructions): Document widening
5982         multiply canonicalization.
5983
5984 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
5985
5986         PR gcov-profile/49299
5987         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
5988
5989 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
5990
5991         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
5992         a pointer.
5993         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
5994         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
5995         vect_recog_pow_pattern): Likewise.
5996         (vect_pattern_recog_1): Remove declaration.
5997         (widened_name_p): Remove declaration.  Add new argument to specify
5998         whether to check that both types are either signed or unsigned.
5999         (vect_recog_widen_mult_pattern): Update documentation.  Handle
6000         unsigned patterns and multiplication by constants.
6001         (vect_pattern_recog_1): Update vect_recog_func references.  Use
6002         statement information from the statement returned from pattern
6003         detection functions.
6004         (vect_pattern_recog): Update vect_recog_func reference.
6005         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
6006         multiplication by a constant use the type of the other operand.
6007
6008 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
6009
6010         PR rtl-optimization/49145
6011         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
6012
6013 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
6014
6015         PR debug/49262
6016         * dwarf2out.c (native_encode_initializer): Decrement count in each
6017         iteration.
6018
6019         PR debug/49294
6020         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
6021         non-MODE_INT modes.
6022
6023         PR c++/49264
6024         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
6025         if stmt folded into nothing.
6026         * tree-inline.c (fold_marked_statements): If a builtin at the end of
6027         a bb folded into nothing, just update cgraph edges and move to next bb.
6028         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
6029         to be NULL.  Don't compute count and frequency if new_call is NULL.
6030
6031 2011-06-04  Diego Novillo  <dnovillo@google.com>
6032
6033         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
6034         (cgraph.o): Likewise.
6035         (cgraphunit.o): Likewise.
6036         * cgraphunit.c: Include lto-streamer.h
6037         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
6038         if LTO is enabled.
6039         * lto-streamer-in.c (unpack_value_fields): Call
6040         streamer_hooks.unpack_value_fields if set.
6041         (lto_materialize_tree): For unhandled nodes, first try to
6042         call lto_streamer_hooks.alloc_tree, if it exists.
6043         (lto_input_ts_decl_common_tree_pointers): Move reading of
6044         DECL_INITIAL to lto_streamer_read_tree.
6045         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
6046         (lto_streamer_read_tree): New.
6047         (lto_reader_init): Rename from lto_init_reader.
6048         Move initialization code to lto/lto.c.
6049         * lto-streamer-out.c (pack_value_fields): Call
6050         streamer_hooks.pack_value_fields if set.
6051         (lto_output_tree_ref): For tree nodes that are not normally indexable,
6052         call streamer_hooks.indexable_with_decls_p before giving up.
6053         (lto_output_ts_decl_common_tree_pointers): Move handling
6054         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
6055         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
6056         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
6057         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
6058         (lto_streamer_write_tree): New.
6059         (lto_output): Call lto_streamer_init directly.
6060         (lto_writer_init): Remove.
6061         * lto-streamer.c (streamer_hooks): New.
6062         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
6063         instead of lto_preload_common_nodes.
6064         (lto_is_streamable): Move from lto-streamer.h
6065         (lto_streamer_hooks_init): New.
6066         (streamer_hooks): New.
6067         (streamer_hooks_init): New.
6068         * lto-streamer.h (struct output_block): Forward declare.
6069         (struct lto_input_block): Likewise.
6070         (struct data_in): Likewise.
6071         (struct bitpack_d): Likewise.
6072         (struct streamer_hooks): Declare.
6073         (streamer_hooks): Declare.
6074         (lto_streamer_hooks_init): Declare.
6075         (lto_streamer_write_tree): Declare.
6076         (lto_streamer_read_tree): Declare.
6077         (streamer_hooks_init): Declare.
6078         (lto_is_streamable): Move to lto-streamer.c
6079
6080 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6081
6082         * longlong.h (smul_ppmm): The resulting register pair contains the
6083         higher order word first.
6084
6085 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6086
6087         PR tree-optimization/46728
6088         * builtins.c (powi_table): Remove.
6089         (powi_lookup_cost): Remove.
6090         (powi_cost): Remove.
6091         (expand_powi_1): Remove.
6092         (expand_powi): Remove.
6093         (expand_builtin_pow_root): Remove.
6094         (expand_builtin_pow): Remove.
6095         (expand_builtin_powi): Eliminate handling of constant exponent.
6096         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
6097
6098 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6099
6100         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
6101
6102 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6103
6104         * dce.c (reset_unmarked_insns_debug_uses): New.
6105         (delete_unmarked_insns): Skip debug insns.
6106         (prescan_insns_for_dce): Likewise.
6107         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
6108         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
6109         active reg can be found.
6110         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
6111         (convert_regs_1): Use it.
6112
6113 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6114
6115         * tree-pretty-print.c (dump_function_header): Add flags.
6116         Don't dump decl_uid with nouid.
6117         * tree-pretty-print.h (dump_function_header): Adjust.
6118         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
6119         * passes.c (pass_init_dump_file): Pass dump_flags on.
6120         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
6121
6122 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
6123
6124         PR bootstrap/49270
6125         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
6126
6127 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
6128
6129         PR tree-optimization/49243
6130         * calls.c (setjmp_call_p): Also check if fndecl has the
6131         returns_twice attribute.
6132
6133 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6134
6135         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
6136         -ffast-math etc.
6137
6138 2011-06-06  Richard Henderson  <rth@redhat.com>
6139             Georg-Johann Lay  <avr@gjlay.de>
6140
6141         PR target/42210
6142         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
6143         New predicates.
6144         * config/avr/avr.md ("insv"): New insn expander.
6145         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
6146         "*insv.not.io", "*insv.reg"): New insns.
6147
6148 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
6149
6150         PR target/49285
6151         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
6152         to nonimmediate_operand from memory_operand for the operand that is to
6153         be forced to memory by the expander.  Lose the constraints.
6154
6155 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
6156
6157         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
6158         EH return when delayed branches are disabled.
6159
6160 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
6161
6162         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
6163         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
6164         calculation.
6165         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
6166         Simplify MODE_V1DF and MODE_V2SF handling.
6167         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
6168         Simplify MODE_SF handling.
6169
6170 2011-06-04  Jan Hubicka  <jh@suse.cz>
6171
6172         PR tree-optimization/48893
6173         PR tree-optimization/49091
6174         PR tree-optimization/49179
6175         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
6176         Bounds check.
6177
6178 2011-06-04  Jan Hubicka  <jh@suse.cz>
6179
6180         PR lto/48954
6181         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
6182         bitmaps.
6183
6184 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
6185
6186         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
6187
6188 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
6189
6190         PR target/49281
6191         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
6192         to be strictly smaller than 1 << shiftcount.
6193
6194 2011-06-04  Jan Hubicka  <jh@suse.cz>
6195
6196         PR tree-optimize/48929
6197         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
6198         of empty predicate.
6199
6200 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
6201
6202         PR debug/48333
6203         * calls.c (emit_call_1): Prefer the __builtin declaration of
6204         builtin functions.
6205
6206 2011-06-03   Diego Novillo  <dnovillo@google.com>
6207
6208         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
6209         (lto_input_tree_pointers): Likewise.
6210         * lto-streamer-out.c (pack_value_fields): Likewise.
6211         (lto_output_tree_pointers): Likewise.
6212         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
6213         and OPTIMIZATION_NODE.
6214
6215 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6216
6217         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
6218         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
6219         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
6220         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
6221         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
6222         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
6223         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
6224         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
6225         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
6226         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
6227         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
6228         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
6229         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
6230         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
6231         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
6232         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
6233         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
6234         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
6235         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
6236         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
6237         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
6238         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
6239         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
6240         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
6241         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
6242         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
6243         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
6244         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
6245         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
6246         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
6247         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
6248         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
6249         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
6250         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
6251         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
6252         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
6253         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
6254         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
6255         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
6256         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
6257         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
6258         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
6259         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
6260         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
6261         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
6262         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
6263         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
6264         * system.h (MD_UNWIND_SUPPORT): Poison.
6265         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
6266         * doc/tm.texi: Regenerate.
6267         * unwind-dw2.c: Include md-unwind-support.h instead of
6268         MD_UNWIND_SUPPORT.
6269         * config/ia64/unwind-ia64.c: Likewise.
6270         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
6271
6272 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
6273
6274         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
6275
6276 2011-06-03  Richard Henderson  <rth@redhat.com>
6277             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6278
6279         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
6280         (sigill_hdlr): Correct insn, insn size.
6281         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
6282
6283 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6284
6285         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
6286         t-slibgcc-dummy.
6287         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
6288         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
6289         * config/mips/t-iris: Remove.
6290         * config/mips/t-irix6: New file.
6291         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
6292
6293 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6294
6295         * Makefile.in (LIB2ADDEHDEP): Remove.
6296         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
6297         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
6298         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
6299         * config/t-darwin (LIB2ADDEHDEP): Remove.
6300         * config/t-freebsd (LIB2ADDEHDEP): Remove.
6301         * config/t-linux (LIB2ADDEHDEP): Remove.
6302
6303 2011-06-03  Diego Novillo  <dnovillo@google.com>
6304
6305         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
6306         (lto_register_var_decl_in_symtab): Likewise.
6307         (lto_register_function_decl_in_symtab): Likewise.
6308         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
6309         logic to uniquify_nodes.
6310
6311 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6312
6313         * config/alpha/t-osf5: Remove.
6314         * config/alpha/t-osf-pthread: Remove.
6315         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
6316         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
6317
6318 2011-06-03  Julian Brown  <julian@codesourcery.com>
6319
6320         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
6321         (strongarm1110): Use strongarm tuning.
6322         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
6323         * config/arm/arm.c (arm_strongarm_tune): New.
6324         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6325         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
6326         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
6327         setting, using previous defaults or 1 for Cortex-A5.
6328         (arm_option_override): Set max_insns_skipped from current tuning.
6329
6330 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
6331
6332         * doc/install.texi (Options specification): Document --with-specs.
6333
6334 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6335
6336         * config/arm/neon.md (orndi3_neon): Actually split it.
6337
6338 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
6339
6340         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
6341         * var-tracking.c (reverse_op): Limite recurse depth to 5.
6342
6343 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
6344
6345         PR debug/47590
6346         * target.def (delay_sched2, delay_vartrack): New.
6347         * doc/tm.texi.in: Update.
6348         * doc/tm.texi: Rebuild.
6349         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
6350         * var-tracking.c (gate_handle_var_tracking): Likewise.
6351         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
6352         (bfin_flag_var_tracking): Drop.
6353         (output_file_start): Don't save and override flag_var_tracking.
6354         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
6355         (bfin_reorg): Test original variables.
6356         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6357         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
6358         (ia64_flag_var_tracking): Drop.
6359         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6360         (ia64_file_start): Don't save and override flag_var_tracking.
6361         (ia64_override_options_after_change): Ditto
6362         flag_schedule_insns_after_reload.
6363         (ia64_reorg): Test original variables.
6364         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
6365         (picochip_flag_var_tracking): Drop.
6366         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6367         (picochip_option_override): Don't save and override
6368         flag_schedule_insns_after_reload.
6369         (picochip_asm_file_start): Ditto flag_var_tracking.
6370         (picochip_reorg): Test original variables.
6371         * config/spu/spu.c (spu_flag_var_tracking): Drop.
6372         (TARGET_DELAY_VARTRACK): Define.
6373         (spu_var_tracking): New.
6374         (spu_machine_dependent_reorg): Call it.
6375         (asm_file_start): Don't save and override flag_var_tracking.
6376
6377 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
6378
6379         PR target/49163
6380         * config/sh/predicates.md (general_movsrc_operand): Return 0
6381         for memory and memory subreg of which address is an invalid
6382         indexed address for QI and HImode.
6383         (general_movdst_operand): Likewise.
6384
6385 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
6386
6387         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
6388         edges only, when there is a non-local label in the function.
6389         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
6390
6391 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
6392
6393         * config/i386/constraints.md (Y3): New register constraint.
6394         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
6395         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
6396         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
6397         *sse2_interleave_lowv2df.
6398
6399 2011-06-02  Julian Brown  <julian@codesourcery.com>
6400
6401         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
6402         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
6403         (arm_cortex_a5_tune): New.
6404
6405 2011-06-02  Julian Brown  <julian@codesourcery.com>
6406
6407         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
6408         * config/arm/arm.c (arm_default_branch_cost): New.
6409         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6410         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
6411         (arm_fa726_tune): Set branch_cost field using
6412         arm_default_branch_cost.
6413         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
6414         current_tune structure.
6415         * dojump.c (tm_p.h): Include file.
6416
6417 2011-06-02  Julian Brown  <julian@codesourcery.com>
6418
6419         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
6420         tuning.
6421         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
6422         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
6423         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
6424         field.
6425         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
6426         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
6427         (arm_fa726te_tune): Add prefer_constant_pool setting.
6428         (arm_v6t2_tune, arm_cortex_tune): New.
6429         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
6430         prefer_constant_pool setting.
6431
6432 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
6433
6434         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
6435         switch statement.
6436         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
6437         (*movdf_internal) <case 6,7,8>: Ditto.
6438
6439         * config/i386/constraints.md (Y4): New register constraint.
6440         * config/i386/sse.md (vec_set<mode>_0): Merge with
6441         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
6442         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
6443         *vec_extractv2di_1_sse.
6444         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
6445         and *vec_concatv2di_rex64_sse.
6446
6447 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
6448
6449         PR target/48807
6450         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
6451         of cgraph_local_info for null before attempting to use it.
6452
6453 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
6454
6455         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
6456         (current_function_dynamic_alloc_count): Delete.
6457         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
6458         (expand_builtin_nonlocal_goto): Remove obsolete comment.
6459         (expand_builtin_update_setjmp_buf): Remove dead code.
6460         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
6461         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
6462         support.
6463         * function.c (instantiate_virtual_regs): Likewise.
6464         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
6465         for a block with a single abnormal incoming edge.
6466         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
6467         (SETJMP_VIA_SAVE_AREA): Delete.
6468         * config/sparc/sparc-protos.h (load_got_register): Declare.
6469         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
6470         (load_got_register): Make global.
6471         (sparc_frame_pointer_required): Add 'static'.
6472         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
6473         (sparc_builtin_setjmp_frame_value): New function.
6474         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
6475         (save_stack_nonlocal): New expander.
6476         (restore_stack_nonlocal): Likewise.
6477         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
6478         (nonlocal_goto_internal): New insn.
6479         (goto_handler_and_restore): Delete.
6480         (builtin_setjmp_setup): Likewise.
6481         (do_builtin_setjmp_setup): Likewise.
6482         (setjmp): Likewise.
6483         (builtin_setjmp_receiver): New expander.
6484
6485 2011-06-01  David Li  <davidxl@google.com>
6486
6487         PR middle-end/49261
6488         * tree-pretty-print.c (dump_function_header): Format cleanup.
6489
6490 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
6491
6492         PR target/49238
6493         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
6494         needed when original operands are used for msw_skip comparison.
6495
6496 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
6497
6498         PR debug/49250
6499         * var-tracking.c (add_uses, add_stores): Don't call
6500         cselib_subst_to_values on ENTRY_VALUE.
6501
6502 2011-06-01  Diego Novillo  <dnovillo@google.com>
6503
6504         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
6505         output_record_start with LTO_null instead of output_zero.
6506         (lto_output_ts_binfo_tree_pointers): Likewise.
6507         (lto_output_tree): Likewise.
6508         (output_eh_try_list): Likewise.
6509         (output_eh_region): Likewise.
6510         (output_eh_lp): Likewise.
6511         (output_eh_regions): Likewise.
6512         (output_bb): Likewise.
6513         (output_function): Likewise.
6514         (output_unreferenced_globals): Likewise.
6515         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
6516         instead of NUM_TREE_CODES.
6517         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
6518         (lto_output_int_in_range): Change << to >> when shifting VAL.
6519
6520 2011-06-01  Diego Novillo  <dnovillo@google.com>
6521
6522         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
6523         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
6524
6525 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
6526
6527         PR target/45074
6528         * optabs.h (valid_multiword_target_p): Declare.
6529         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
6530         doing multi-word operations.
6531         * optabs.c (expand_binop): Likewise.
6532         (expand_doubleword_bswap): Likewise.
6533         (expand_absneg_bit): Likewise.
6534         (expand_unop): Likewise.
6535         (expand_copysign_bit): Likewise.
6536         (multiword_target_p): New function.
6537
6538 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
6539
6540         PR rtl-optimization/48830
6541         PR rtl-optimization/48808
6542         PR rtl-optimization/48792
6543         * reload.c (push_reload): Check contains_reg_of_mode.
6544         * reload1.c (strip_paradoxical_subreg): New function.
6545         (gen_reload_chain_without_interm_reg_p): Use it to handle
6546         paradoxical subregs.
6547         (emit_output_reload_insns, gen_reload): Likewise.
6548
6549 2011-06-01  David Li  <davidxl@google.com>
6550
6551         * predict.c : Change pass name
6552         * ipa.c: Ditto.
6553         * dce.c: Ditto.
6554         * tree-profile.c: Ditto.
6555         * except.c: Ditto.
6556
6557 2011-06-01  David Li  <davidxl@google.com>
6558
6559         * tree-pretty-print.c (dump_function_header): New function.
6560         * final.c (rest_of_clean_state): Use header dumper.
6561         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
6562         * passes.c (pass_init_dump_file): Use header dumper.
6563
6564 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
6565
6566         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
6567         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
6568         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
6569         New functions.
6570         (mem_loc_descriptor): Use them.
6571
6572         * var-tracking.c (create_entry_value): New function.
6573         (vt_add_function_parameter): Use it.
6574
6575 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6576
6577         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
6578         Include <signal.h>, <ucontext.h>.
6579         (sigill_caught): Define.
6580         (sigill_hdlr): New function.
6581         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
6582         insns can be executed.
6583         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
6584         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
6585
6586 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6587
6588         * config/t-slibgcc-darwin: Move to ...
6589         * config/t-slibgcc-dummy: ... this.  Clarify comments.
6590         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
6591         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
6592         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
6593         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
6594         Remove i386/t-crtstuff from tmake_file.
6595         (i[34567]86-*-solaris2*): Remove t-svr4,
6596         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
6597         t-slibgcc-dummy.
6598         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
6599         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
6600         sparc/t-crtfm from tmake_file.
6601         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
6602         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
6603         Remove extra_parts.
6604         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
6605         * config/i386/t-nwld (SHLIB_LINK): Remove.
6606         * config/i386/t-rtems-i386: Rename to ...
6607         * config/i386/t-rtems: ... this.
6608         ($(T)crti.o, $(T)crtn.o): Remove.
6609         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
6610         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
6611         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
6612         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
6613         EXTRA_MULTILIB_PARTS): Remove.
6614         * config/sparc/t-sol2-64: Likewise.
6615         * config/sparc/t-sol2: Remove.
6616         * config/sparc/t-crtin: Remove.
6617         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
6618         * config/i386/gmon-sol2.c: Remove.
6619         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
6620         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
6621         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
6622         * config/i386/sol2-gc1.asm: Remove.
6623         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
6624         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
6625         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
6626         * config/t-slibgcc-sld: Remove.
6627
6628 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
6629
6630         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
6631         base_type_for_mode with op_mode instead of mode.
6632
6633 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
6634
6635         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
6636         Cortex-A15.
6637         * config/arm/arm-tune.md: Regenerate.
6638         * config/arm/arm-tables.opt: Regenerate.
6639         * config/arm/arm.c (FL_DIV): Rename...
6640         (FL_THUMB_DIV): ... to this.
6641         (FL_ARM_DIV): Define.
6642         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
6643         (arm_arch_hwdiv): Remove.
6644         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
6645         (arm_issue_rate): Add cortexr5.
6646         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
6647         __ARM_ARCH_EXT_IDIV__.
6648         (TARGET_IDIV): Define.
6649         (arm_arch_hwdiv): Remove.
6650         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
6651         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
6652         (divsi3, udivsi3): New patterns.
6653         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
6654         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
6655
6656 2011-06-01  Martin Jambor  <mjambor@suse.cz>
6657
6658         * ipa-utils.c (ipa_dfs_info): New field scc_no.
6659         * ipa-utils.c (searchc): Set scc_no.
6660
6661 2011-06-01  Martin Jambor  <mjambor@suse.cz>
6662
6663         * ipa-utils.c (searchc_env): New field allow_overwritable.
6664         (searchc): do not ignore edges to overwritable nodes if indicated
6665         by env->allow_overwritable.
6666         (ipa_reduced_postorder): Set env.allow_overwritable.
6667
6668 2011-06-01  Richard Guenther  <rguenther@suse.de>
6669
6670         * tree.c (free_lang_data): Do not reset boolean_type_node nor
6671         char_type_node.
6672         * lto-streamer.c (lto_record_common_node): Take node pointer,
6673         do not register types.
6674         (lto_preload_common_nodes): Explicitly skip preloading nodes
6675         that differ between frontends.
6676
6677 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
6678
6679         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
6680         NON_FLOAT_REGS.
6681
6682 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
6683
6684         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
6685         parameter value for dump. Dump cost on outermost call only.
6686         (rs6000_memory_move_cost): Dump cost on outermost call only.
6687
6688 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
6689
6690         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
6691         DW_OP_GNU_convert ops.
6692
6693         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
6694         cselib_preserve_constants.
6695         (cselib_lookup_1): If cselib_preserve_constants,
6696         a new VALUE is being created for REG and there is a VALUE for the
6697         same register in wider mode, add another loc with lowpart SUBREG of
6698         the wider VALUE.
6699         (cselib_subst_to_values): Handle ENTRY_VALUE.
6700         * var-tracking.c  (replace_expr_with_values): Return NULL for
6701         ENTRY_VALUE too.
6702         * dwarf2out.c (convert_descriptor_to_signed): New function.
6703         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
6704         instead of two shifts.
6705         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
6706         the right mode if needed.
6707         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
6708         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
6709         convert_descriptor_to_signed.
6710         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
6711         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
6712
6713         PR target/48688
6714         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
6715
6716 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
6717
6718         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
6719         of X87MODEI12 and SWI48x instead of SSEMODEI24.
6720         (SWI248x): New mode iterator, rename from X87MODEI.
6721         (X87MODEI): Remove mode iterator.
6722         (X87MODEI12): Ditto.
6723         (SSEMODEI24): Ditto.
6724
6725 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6726
6727         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
6728         * doc/invoke.texi: Document max-vartrack-expr-depth.
6729         * var-tracking.c (EXPR_DEPTH): New.
6730         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
6731
6732 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6733
6734         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
6735         * config/i386/sse.md: Add n to negated FMA pattern names.
6736
6737 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6738
6739         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
6740
6741 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
6742
6743         * gengtype-state.c (read_state_params_structs): Initialize previous.
6744
6745 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
6746
6747         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
6748         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
6749
6750 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
6751
6752         * config/i386/i386.md (*movtf_internal): Avoid allocating general
6753         registers.  Penalize F*r->o alternative to prevent partial memory
6754         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
6755         CONST_DOUBLE immediates when optimizing function for size.  Do not move
6756         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6757         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
6758         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
6759         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
6760         alternatives.
6761         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
6762
6763         (fp_register_operand splitters): Use fp_register_operand
6764         constraint.  Do not use FP_REG_P in insn condition.
6765         (any_fp_register_operand splitters): Use any_fp_register_operand
6766         constraint.  Do not use ANY_FP_REG_P in insn condition.
6767
6768 2011-05-31  Jan Hubicka  <jh@suse.cz>
6769
6770         * cgraph.h (cgraph_inline_failed_t): Give enum a name
6771         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
6772         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
6773         (lto_output_edge): Use output_enum and var_len_unsigned.
6774         (lto_output_varpool_node): Likewise.
6775         (input_overwrite_node): Do not take resolution parameter;
6776         extract it from a bitpack.
6777         (input_node): Do not read resolution; use input_enum and
6778         var_len_unsigned.
6779         (input_varpool_node): Likewise.
6780         (input_edge): Likewise.
6781         (input_cgraph_1): Likewise.
6782
6783 2011-05-31  Richard Guenther  <rguenther@suse.de>
6784
6785         * gimple.c (gimple_register_canonical_type): Do not register
6786         any types via gimple_register_type.
6787
6788 2011-05-31  Jan Hubicka  <jh@suse.cz>
6789
6790         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
6791         of thunks.
6792
6793 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
6794
6795         PR rtl-optimization/49235
6796         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
6797         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
6798
6799 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
6800
6801         PR tree-optimization/49093
6802         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
6803         data references.
6804
6805 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
6806
6807         PR debug/49047
6808         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6809         for concrete functions containing the code of cloned functions.
6810
6811 2011-05-31  Richard Guenther  <rguenther@suse.de>
6812
6813         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
6814         to ...
6815         (forward_propagate_into_comparison_1): ... this.
6816         (forward_propagate_comparison): Rename to ...
6817         (forward_propagate_into_comparison): ... this.  Split out
6818         real forward propagation code to ...
6819         (forward_propagate_comparison): ... this.
6820         (forward_propagate_into_gimple_cond): Remove looping.
6821         (forward_propagate_into_cond): Likewise.
6822         (simplify_not_neg_expr): Return whether we have done something.
6823         (simplify_gimple_switch): Likewise.
6824         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
6825         (ssa_forward_propagate_and_combine): ... this.  Re-structure
6826         to do a forward forward-propagation walk on BBs and a backward
6827         stmt combining walk on BBs.  Consistently re-scan changed statements.
6828         (pass_forwprop): Adjust.
6829
6830 2011-05-30  Ian Lance Taylor  <iant@google.com>
6831
6832         * godump.c (go_format_type): Correct length of name added to
6833         obstack for anonymous field.
6834
6835 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
6836
6837         PR target/49186
6838         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
6839         part of the second operand is 0.
6840
6841 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
6842
6843         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
6844         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
6845         to memory for !TARGET_MEMORY_MISMATCH_STALL.
6846         (*movdf_internal_rex64): Do not penalize F->r alternative.
6847         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
6848         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
6849         when optimizing function for size.  Do not move CONST_DOUBLEs
6850         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6851         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
6852         SUBREGs.  Do not check for MEM_P operands in the insn condition,
6853         check for ANY_FP_REGNO_P instead.
6854         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
6855         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
6856         function for speed.
6857         * config/i386/i386.c (ix86_option_override_internal): Do not
6858         set TARGET_INTEGER_DFMODE_MOVES here.
6859
6860 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
6861
6862         PR target/49168
6863         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
6864
6865 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
6866
6867         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
6868         DW_TAG_rvalue_reference_type even for
6869         -gdwarf-4 -fno-debug-types-section.
6870
6871 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6872
6873         PR tree-optimization/46728
6874         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
6875         (build_and_insert_binop): New.
6876         (gimple_expand_builtin_pow): Reorder args for
6877         build_and_insert_call; use build_and_insert_binop; add more
6878         optimizations for fractional exponents.
6879
6880 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
6881
6882         PR bootstrap/49190
6883
6884         Revert:
6885         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
6886
6887         * tree.h (struct tree_identifier): Inherit from tree_typed, not
6888         tree_common.
6889         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
6890         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
6891         TS_BASE instead of TS_COMMON.
6892         * varasm.c (assemble_name): Remove assert.
6893
6894 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
6895
6896         * config.gcc: Keep obselete list sorted.
6897
6898 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
6899             Eric Botcazou  <ebotcazou@adacore.com>
6900
6901         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
6902         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
6903         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
6904         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
6905         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
6906
6907 2011-05-30  Richard Guenther  <rguenther@suse.de>
6908
6909         * gimple.c (gimple_types_compatible_p_1): Compare record
6910         and union type members properly.
6911
6912 2011-05-30  Richard Guenther  <rguenther@suse.de>
6913
6914         PR tree-optimization/49210
6915         * ipa-split.c (split_function): Care for the case where the call
6916         result is not trivially convertible to the result holding variable.
6917
6918 2011-05-30  Richard Guenther  <rguenther@suse.de>
6919
6920         PR tree-optimization/49218
6921         * tree-vrp.c (adjust_range_with_scev): Properly check whether
6922         overflow occured.
6923
6924 2011-05-30  Richard Guenther  <rguenther@suse.de>
6925
6926         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
6927         New function split out from ...
6928         (forward_propagate_into_gimple_cond): ... here.  Adjust.
6929         (forward_propagate_into_cond): Likewise.
6930         (forward_propagate_comparison): Also propagate into
6931         comparisons on assignment RHS.  Change return value to
6932         behave similar to forward_propagate_into_cond.
6933         (tree_ssa_forward_propagate_single_use_vars): Handle
6934         strict-overflow warnings properly for forward_propagate_comparison.
6935
6936 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6937
6938         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
6939         from plugin linker.
6940         * configure: Regenerate.
6941
6942 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
6943
6944         PR tree-optimization/49199
6945         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
6946         non-reduction operands are either defined in the loop or by induction.
6947
6948 2011-05-29  Xinliang David Li  <davidxl@google.com>
6949
6950         * opts-global.c (handle_common_deferred_options): Handle new options.
6951         * passes.c (register_one_dump_file): Call register_pass_name.
6952         (execute_one_pass): Check explicit enable/disable flag.
6953         (passr_hash): New function.
6954         (passr_eq): Ditto.
6955         (register_pass_name): Ditto.
6956         (get_pass_by_name): Ditto.
6957         (pass_hash): Ditto.
6958         (pass_eq): Ditto.
6959         (enable_pass): Ditto.
6960         (disable_pass): Ditto.
6961         (is_pass_explicitly_enabled_or_disabled): Ditto.
6962
6963 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
6964
6965         * config/i386/i386.md (*movoi_internal_avx): Use
6966         standard_sse_constant_opcode for alternative 0.
6967         (*movti_internal_sse): Ditto.
6968         (*movti_internal_rex64): Use standard_sse_constant_opcode for
6969         alternative 2.
6970         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
6971         sselog1 type moves.
6972         (*movsi_internal): Ditto.
6973         (*movdi_internal): Ditto.  Add ssecvt type moves.
6974
6975 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
6976
6977         PR target/48830
6978         * rtlanal.c (simplify_subreg_regno): Adjust comment.
6979
6980 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
6981
6982         PR rtl-optimization/49095
6983         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
6984         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
6985
6986 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
6987
6988         PR target/43995
6989         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
6990         recurse_p argument.  Only follow register copies if it is set,
6991         and prevent mips_find_pic_call_symbol from recursing.
6992         (mips_find_pic_call_symbol): Add a recurse_p argument.
6993         Pass it to mips_pic_call_symbol_from_set.
6994         (mips_annotate_pic_calls): Update accordingly.
6995
6996 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
6997
6998         * emit-rtl.c (try_split): Use a loop to search for
6999         NOTE_INSN_CALL_ARG_LOCATIONs.
7000
7001 2011-05-29  Richard Guenther  <rguenther@suse.de>
7002
7003         PR tree-optimization/49217
7004         * ipa-pure-const.c (propagate_pure_const): Fix typos.
7005
7006 2011-05-28  Jan Hubicka  <jh@suse.cz>
7007
7008         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
7009         length.
7010         (string_slot_free): Remove
7011         (create_output_block): Initialize obstack.
7012         (destroy_output_block): Free obstack.
7013         (lto_string_index): Add PERSISTENT parameter; do not duplicate
7014         the string unless it needs to be added into the hash.
7015         (lto_output_string_with_length): Add persistent attribute;
7016         handle NULL strings.
7017         (lto_output_string): Add PERSISTENT parameter.
7018         (output_string_cst, output_identifier): Simplify.
7019         (lto_output_location_bitpack): Update.
7020         (lto_output_builtin_tree): Update.
7021         * lto-streamer.h (struct output_block): Add obstack.
7022         (lto_output_string, lto_output_string_with_length): Remove
7023         declarations; functions are static now.
7024
7025 2011-05-28  Jan Hubicka  <jh@suse.cz>
7026
7027         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
7028         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
7029         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
7030         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
7031         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
7032         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
7033         unpack_ts_decl_with_vis_value_fields,
7034         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
7035         lto_get_builtin_tree): Use enum and variable length i/o.
7036         * basic-block.h (profile_status_d): Add PROFILE_LAST.
7037         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
7038         New functions.
7039         (bp_pack_enum, bp_unpack_enum): New macros.
7040
7041 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7042
7043         * genrecog.c: Remove redundant forward declarations.
7044
7045 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7046
7047         * config.gcc: Deprecate mips*-*-openbsd*.
7048
7049 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
7050
7051         PR bootstrap/49195
7052         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
7053         for match_op_dup.
7054
7055 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
7056
7057         PR middle-end/48981
7058         * gengtype.c (vec_prefix_type): New function.
7059         (note_def_vec): Use vec_prefix_type and change the length
7060         attribute to be based on the prefix.
7061         * vec.c: Include coretypes.h before vec.h.
7062         (struct vec_prefix): Remove.
7063         (vec_gc_p_reserve): Change the offsetof to sizeof.
7064         (vec_gc_p_reserve_exact): Likewise.
7065         (vec_heap_p_reserve): Likewise.
7066         (vec_heap_p_reserve_exact): Likewise.
7067         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
7068         (vec_stack_p_reserve): Change the offsetof to sizeof.
7069         (vec_stack_p_reserve_exact): Likewise.
7070         * vec.h (struct vec_prefix): New struct definition.
7071         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
7072         (VEC_T_GTY(T,B)): Likewise.
7073         (DEF_VEC_FUNC_P(T)): Use prefix field.
7074         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
7075         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
7076
7077 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7078
7079         PR tree-optimization/46728
7080         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
7081         (powi_as_mults): Add gimple_set_location.
7082         (build_and_insert_call): New.
7083         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
7084         0.5, 0.25, 0.75, 1./3., or 1./6.
7085
7086 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
7087
7088         * doc/contrib.texi: Update copyright years.
7089         (Contributors): Add Zdenek Sojka.
7090
7091 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
7092
7093         * c-decl.c (c_push_function_context): Copy the current statement
7094         list stack.
7095         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
7096         (finish_struct): Call building_stmt_list_p instead of checking
7097         cur_stmt_list.
7098         * c-parser.c (c_parser_postfix_expression): Likewise.
7099         * c-typeck.c (c_end_compound_stmt): Likewise.
7100         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
7101         * tree-iterator.c (stmt_list_cache): Change to a VEC.
7102         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
7103         (free_stmt_list): Likewise.
7104         * tree.h (struct tree_statement_list): Include typed_tree instead
7105         of tree_common.
7106         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
7107         as TS_TYPED instead of TS_COMMON.
7108
7109 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7110             Uros Bizjak  <ubizjak@gmail.com>
7111
7112         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
7113         (HAVE_AS_IX86_TLSGDPTL): Define.
7114         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
7115         (HAVE_AS_IX86_TLSLDMPLT): Define.
7116         * configure: Regenerate.
7117         * config.in: Regenerate.
7118         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
7119         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
7120         TARGET_SUN_TLS, use @tlsgdplt or @plt.
7121         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
7122         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
7123         @tlsldmplt or @plt.
7124         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
7125
7126 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
7127
7128         * sched-int.h (struct _haifa_deps_insn_data): New members cond
7129         and reverse_cond.
7130         (INSN_COND, INSN_REVERSE_COND): New macros.
7131         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
7132         once.
7133         (sched_get_condition_with_rev): Cache the results, and look them up
7134         if possible.
7135         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
7136         are clobbered by the current insn.
7137         * target.def (exposed_pipline): New sched data hook.
7138         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
7139         * doc/tm.texi: Regenerate.
7140
7141 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7142
7143         PR tree-optimization/49170
7144         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
7145         sincos or cexp.
7146
7147 2011-05-27  Richard Guenther  <rguenther@suse.de>
7148
7149         PR middle-end/49189
7150         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
7151         of comparisons.
7152
7153 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
7154
7155         * haifa-sched.c (sched_scan_info): Remove.
7156         (schedule_block): Call sched_extend_luids rather than sched_init_luids
7157         with NULL args.
7158         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
7159         Remove functions.
7160         (sched_scan): Remove.
7161         (sched_extend_luids): Renamed from luids_extend_insn and no longer
7162         static.  All callers changed.
7163         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
7164         static.  All callers changed.
7165         (sched_init_luids): Remove all arguments except the first.  All
7166         callers changed.  Don't use sched_scan.
7167         (haifa_init_h_i_d): Likewise.
7168         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
7169         manually rather than using sched_init_luids.  Likewise with
7170         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
7171         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
7172         rather than sched_init_luids with NULL args.
7173         * sel-sched-ir.c (new_insns): Remove variable.
7174         (sched_scan): New static function, previously in haifa-sched.c.  Remove
7175         all arguments but the first two; all callers changed.
7176         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
7177         rather than sched_init_luids.
7178         (sel_init_bbs): Remove second argument.  All callers changed.
7179         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
7180         with NULL arguments.
7181         (create_insn_rtx_from_pattern): Likewise.
7182         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
7183         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
7184         (sched_init_insn_luid, sched_extend_luids): Declare.
7185         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
7186         declarations.
7187
7188 2011-05-27  Richard Guenther  <rguenther@suse.de>
7189
7190         PR middle-end/49177
7191         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
7192         A CMP B ? (T) true : (T) false for non-integral types T again.
7193
7194 2011-05-27  Jan Hubicka  <jh@suse.cz>
7195
7196         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
7197         so 0 means NULL string.
7198         (lto_output_string_with_length): ... here.
7199         (lto_output_string, output_string_cst, output_identifier): Update
7200         handling of NULL strings.
7201         (lto_output_location_bitpack): New function.
7202         (lto_output_location): Use it.
7203         (lto_output_tree_ref): Use output_record_start.
7204         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
7205         len values.
7206         * lto-streamer-in.c (string_for_index): Break out from ...; offset
7207         values by 1.
7208         (input_string_internal): ... here;
7209         (input_string_cst, input_identifier, lto_input_string): Update handling
7210         of NULL strings.
7211         (lto_input_location_bitpack): New function
7212         (lto_input_location): Use it.
7213         (unpack_ts_type_common_value_fields): Pack align & alias in var len
7214         values.
7215         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
7216         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
7217         (bp_pack_value): Sanity check the value range.
7218         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
7219         New functions.
7220         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
7221         New functions.
7222
7223 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
7224
7225         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
7226         call_arg_location instructions down the floor.
7227
7228 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
7229
7230         PR rtl-optimization/49154
7231         * ira.c (setup_pressure_classes): Process class without sublcasses
7232         as a candidate for pressure classes.
7233
7234 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
7235
7236         PR rtl-optimization/48575
7237         * genrecog.c (position_type): New enum.
7238         (position): New structure.
7239         (decision): Use position structure instead of a string.
7240         (root_pos, peep2_insn_pos_list): New variables.
7241         (next_position, compare_positions): New functions.
7242         (new_decision): Use position structures instead of strings.
7243         (maybe_both_true): Likewise.
7244         (change_state): Likewise.
7245         (write_tree): Likewise.
7246         (make_insn_sequence): Likewise.
7247
7248 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7249
7250         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
7251         TS_BASE instead of TS_COMMON.
7252         (find_decls_types_r): Check for TS_TYPED structure before looking at
7253         TREE_TYPE.
7254         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
7255         Add chain field.
7256         (BLOCK_CHAIN): Use new chain field.
7257
7258 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
7259
7260         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
7261         moves expensive on Power7 also.
7262
7263 2011-05-26  Richard Guenther  <rguenther@suse.de>
7264
7265         * fold-const.c (fold_unary_loc): Remove bogus code.
7266
7267 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
7268
7269         * tree.h (struct tree_identifier): Inherit from tree_typed, not
7270         tree_common.
7271         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7272         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7273         TS_BASE instead of TS_COMMON.
7274         * varasm.c (assemble_name): Remove assert.
7275
7276 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
7277
7278         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
7279         substituted first.
7280         * libgcc-std.ver: Delete file.
7281
7282 2011-05-26  Richard Guenther  <rguenther@suse.de>
7283
7284         PR tree-optimization/48702
7285         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
7286         only when we know the base address is within bounds.
7287         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
7288         assume the base address of TARGET_MEM_REFs is in bounds.
7289
7290 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7291
7292         PR target/49099
7293         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
7294         declaration in TARGET_SOLARIS.
7295
7296 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
7297
7298         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
7299         The instruction is then expanded explicitly.
7300         (supported_compare): Callable instruction.
7301         (compare): Likewise.
7302
7303 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
7304
7305         PR c++/49165
7306         * gimplify.c (shortcut_cond_r): Don't special case
7307         COND_EXPRs if they have void type on one of their arms.
7308
7309 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
7310
7311         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
7312         to reduce duplication, and to achieve a slightly more logical order
7313         of operations.
7314
7315 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
7316
7317         PR tree-optimization/49161
7318         * tree-vrp.c (struct case_info): New type.
7319         (compare_case_labels): Sort case_info structs instead of
7320         trees, and not primarily by CASE_LABEL uids but by
7321         label_for_block indexes.
7322         (find_switch_asserts): Put case labels into struct case_info
7323         array instead of TREE_VEC, adjust sorting, compare label_for_block
7324         values instead of CASE_LABELs.
7325
7326 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7327
7328         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
7329         ("orndi3_neon"): Likewise.
7330         ("bic<mode>3_neon"): Likewise.
7331
7332 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
7333
7334         PR tree-optimization/49038
7335         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
7336         Ensure at least one epilogue iteration if required by data
7337         accesses with gaps.
7338         * tree-vectorizer.h (struct _loop_vec_info): Add new field
7339         to mark loops that require peeling for gaps.
7340         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
7341         (vect_get_known_peeling_cost): Take peeling for gaps into
7342         account.
7343         (vect_transform_loop): Generate epilogue if required by data
7344         access with gaps.
7345         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
7346         loop as requiring an epilogue if there are gaps in the end of
7347         the strided group.
7348
7349 2011-05-25  Ian Lance Taylor  <iant@google.com>
7350
7351         * godump.c (go_format_type): Output the first field with a usable
7352         Go type, if any.
7353
7354 2011-05-25  Ian Lance Taylor  <iant@google.com>
7355
7356         * godump.c (go_format_type): Check for invalid type names, pointer
7357         target types, and struct field types.
7358
7359 2011-05-25  Jason Merrill  <jason@redhat.com>
7360
7361         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
7362
7363 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
7364
7365         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
7366
7367 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7368
7369         * config/i386/i386.md (*movqi_extv_1)): Put back
7370         "register_operand" check in "type" calculation.
7371         (*movqi_extzv_2): Likewise.
7372
7373 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7374
7375         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
7376
7377 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
7378
7379         PR bootstrap/49160
7380         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
7381         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
7382         __divxc3, __divtc3): Wrap definitions in #ifndef.
7383
7384 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7385
7386         PR target/49142
7387         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
7388         "register_operand" check and replace q_regs_operand with
7389         QIreg_operand in "type" calculation.
7390         (*movqi_extv_1): Likewise.
7391         (*movqi_extzv_2_rex64): Likewise.
7392         (*movqi_extzv_2): Likewise.
7393
7394         * config/i386/predicates.md (QIreg_operand): New.
7395
7396 2011-05-25  Richard Guenther  <rguenther@suse.de>
7397
7398         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
7399         type-based offset disambiguation, streamline MEM_REF and
7400         TARGET_MEM_REF handling.
7401
7402 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
7403
7404         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
7405         (bdesc_special_args): Add pause intrinsic.
7406
7407         * config/i386/i386.md (UNSPEC_PAUSE): New.
7408         (pause): Likewise.
7409         (*pause): Likewise.
7410         * config/i386/ia32intrin.h (__pause): Likewise.
7411
7412         * doc/extend.texi (X86 Built-in Functions): Add documentation for
7413         pause intrinsic.
7414
7415 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7416
7417         PR tree-optimization/46728
7418         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
7419         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
7420
7421 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
7422
7423         * tree.h (struct tree_exp): Inherit from struct tree_typed.
7424         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
7425         instead of TS_COMMON.
7426
7427 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
7428
7429         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
7430         LIBGCC2_GNU_PREFIX is defined.
7431         (__N): New macro.
7432         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
7433         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
7434         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
7435         __clz_tab): Define using __N.
7436         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
7437         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
7438         * target.def (libfunc_gnu_prefix): New hook.
7439         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
7440         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
7441         * doc/tm.texi: Regenerate.
7442         * system.h (LIBGCC2_GNU_PREFIX): Poison.
7443         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
7444         account.
7445         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
7446         (init_optabs): Likewise for the bswap libfuncs.
7447         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
7448         and divide.
7449         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
7450         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
7451         * libgcc-std.ver: Remove.
7452         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
7453         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
7454         libgcc-std.ver.
7455         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7456         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
7457         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
7458         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
7459         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
7460         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7461         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7462         * config/fixed-bit.h (FIXED_OP): Define differently depending on
7463         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
7464         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
7465
7466 2011-05-25  Jan Hubicka  <jh@suse.cz>
7467
7468         * lto-streamer-out.c (output_record_start): Use lto_output_enum
7469         (lto_output_tree): Use output_record_start.
7470         * lto-streamer-in.c (input_record_start): Use lto_input_enum
7471         (lto_get_pickled_tree): Use input_record_start.
7472         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
7473         (lto_value_range_error): New function.
7474         * lto-streamer.h (lto_value_range_error): Declare.
7475         (lto_output_int_in_range, lto_input_int_in_range): New functions.
7476         (lto_output_enum, lto_input_enum): New macros.
7477
7478 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
7479
7480         * common.opt (flag_stack_usage_info): New variable.
7481         (-Wstack-usage): New option.
7482         * doc/invoke.texi (Warning options): Document -Wstack-usage.
7483         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
7484         <OPT_fstack_usage>: Likewise.
7485         * toplev.c (output_stack_usage): Handle -Wstack-usage.
7486         * calls.c (expand_call): Test flag_stack_usage_info variable instead
7487         of flag_stack_usage.
7488         (emit_library_call_value_1): Likewise.
7489         * explow.c (allocate_dynamic_stack_space): Likewise.
7490         * function.c (instantiate_virtual_regs ): Likewise.
7491         (prepare_function_start): Likewise.
7492         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
7493         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
7494         * config/arm/arm.c (arm_expand_prologue): Likewise.
7495         (thumb1_expand_prologue): Likewise.
7496         * config/avr/avr.c (expand_prologue): Likewise.
7497         * config/i386/i386.c (ix86_expand_prologue): Likewise.
7498         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
7499         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
7500         * config/mips/mips.c (mips_expand_prologue): Likewise.
7501         * config/pa/pa.c (hppa_expand_prologue): Likewise.
7502         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
7503         * config/s390/s390.c (s390_emit_prologue): Likewise.
7504         * config/sh/sh.c (sh_expand_prologue): Likewise.
7505         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
7506         * config/spu/spu.c (spu_expand_prologue): Likewise.
7507
7508 2011-05-25  Richard Guenther  <rguenther@suse.de>
7509
7510         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
7511         (gimple_canonical_types_compatible_p): Likewise.
7512
7513 2011-05-25  Jan Hubicka  <jh@suse.cz>
7514
7515         PR middle-end/49062
7516         * ipa.c (function_and_variable_visibility): Only add to same
7517         comdat group list if DECL_ONE_ONLY.
7518
7519 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
7520
7521         PR rtl-optimization/49014
7522         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
7523
7524 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
7525
7526         PR target/49128
7527         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
7528
7529 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
7530
7531         PR rtl-optimization/48757
7532         * ira-build.c (loop_with_eh_edge_p): Rename to
7533         loop_with_complex_edge_p, check edges on complexity, make function
7534         conditional.
7535         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
7536         conditional.
7537
7538 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
7539
7540         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
7541         force flag_ira_share_save_slots to 0.
7542
7543 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
7544
7545         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
7546         (vt_initialize): Set PROLOGUE_BB unconditionally.
7547         Add block comment about CFA_BASE_RTX machinery.
7548         Reset FP_CFA_OFFSET to -1 on all invalid paths.
7549         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
7550
7551 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
7552
7553         PR objc/48187
7554         * c-parser.c (c_parser_objc_class_instance_variables): More robust
7555         parsing of syntax error in ObjC instance variable lists.  In
7556         particular, avoid an infinite loop if there is a stray ']'.
7557         Updated error message.
7558
7559 2011-05-24  Ian Lance Taylor  <iant@google.com>
7560
7561         * godump.c (go_define): Don't accept a string immediately after
7562         another operand.
7563
7564 2011-05-24  Ian Lance Taylor  <iant@google.com>
7565
7566         * godump.c (struct godump_container): Add invalid_hash field.
7567         (go_format_type): Return false if type is found in invalid_hash.
7568         (go_output_typedef): Add invalid type to invalid_hash.
7569         (go_finish): Create and delete invalid_hash.
7570
7571 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7572
7573         PR tree-optimization/46728
7574         * tree-ssa-math-opts.c (powi_table): New.
7575         (powi_lookup_cost): New.
7576         (powi_cost): New.
7577         (powi_as_mults_1): New.
7578         (powi_as_mults): New.
7579         (gimple_expand_builtin_powi): New.
7580         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
7581         (gate_cse_sincos): Remove sincos/cexp restriction.
7582
7583 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7584
7585         PR target/3746
7586         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
7587         mips-tdump native.
7588         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
7589         * mips-tdump.c: Likewise.
7590
7591 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
7592
7593         PR target/49128
7594         * config/i386/driver-i386.c (host_detect_local_cpu): Always
7595         add -mno-XXX.  Handle FMA.
7596
7597 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
7598
7599         PR rtl-optimization/48633
7600         * ira-build.c (loop_with_eh_edge_p): New function.
7601         (mark_loops_for_removal): Use it.
7602
7603 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
7604
7605         PR rtl-optimization/48971
7606         * ira.c (setup_pressure_classes): Don't check register move cost
7607         for classes with one registers.  Don't add pressure class if there
7608         is a pressure class with the same available hard registers.
7609         Check contains_reg_of_mode.  Fix a typo in collecting
7610         temp_hard_regset.  Ignore hard registers not belonging to a class.
7611
7612 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
7613
7614         PR target/49133
7615         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
7616
7617 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
7618             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7619
7620         PR gcov-profile/48845
7621         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
7622
7623 2011-05-24  Richard Guenther  <rguenther@suse.de>
7624
7625         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
7626         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
7627         (gimple_types_compatible_p_1): Adjust.
7628         (iterative_hash_canonical_type): Do not bother about complete vs.
7629         incomplete types.
7630         (gimple_canonical_types_compatible_p): Likewise.
7631
7632 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7633
7634         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
7635
7636 2011-05-24  Richard Guenther  <rguenther@suse.de>
7637
7638         PR bootstrap/49078
7639         * gimple.c (gimple_register_canonical_type): Revert
7640         previous change.
7641         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
7642         does not for a tree for the case where it matters.  Cache
7643         pointer-type alias-sets.
7644
7645 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
7646
7647         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
7648         (OBJS): Remove options.o, opts-common.o and prefix.o.
7649         (OBJS-libcommon-target): New.
7650         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
7651         (BACKEND): Include libcommon-target.a.
7652         (MOSTLYCLEANFILES): Include libcommon-target.a.
7653         (libcommon-target.a): New.
7654         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
7655         prefix.o.
7656
7657 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
7658
7659         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
7660         parts of output shared with the driver.
7661         * optc-gen.awk: Don't generate parts of output not shared with the
7662         driver.
7663         * opth-gen.awk: Remove GCC_DRIVER conditionals.
7664         * doc/options.texi (SourcerInclude): Mention options-save.c.
7665         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
7666         (OBJS): Add options-save.o.
7667         (options-save.c, options-save.o): New.
7668         (options.o): Update dependencies.
7669         (gcc-options.o): Remove.
7670         (mostlyclean): Remove options-save.c.
7671
7672 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
7673
7674         PR debug/49032
7675         * dbxout.c: Include cgraph.h.
7676         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
7677         and without value expr, return NULL if no varpool node exists for
7678         it or if it is not needed.
7679         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
7680
7681         PR c/49120
7682         * c-decl.c (start_decl): Convert expr to void_type_node.
7683
7684 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
7685
7686         PR rtl-optimization/48826
7687         * emit-rtl.c (try_split): When splitting a call that is followed
7688         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
7689
7690 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
7691
7692         * cfgexpand.c (expand_debug_expr): For unused non-addressable
7693         parameters passed in memory prefer using DECL_INCOMING_RTL over
7694         the pseudos it will be copied into.
7695
7696 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
7697
7698         PR target/47315
7699         * config/i386/i386.c (ix86_option_override_internal): Save the
7700         initial options after checking vzeroupper.
7701
7702 2011-05-23  David Li  <davidxl@google.com>
7703
7704         PR tree-optimization/48988
7705         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
7706         Initialize has_valid_pred for each pred chain.
7707
7708 2011-05-23  Richard Guenther  <rguenther@suse.de>
7709
7710         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
7711         (iterative_hash_gimple_type): Always hash type names.
7712
7713 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
7714
7715         * c-typeck.c (build_function_call_vec): Tweak call to
7716         check_function_arguments.
7717
7718 2011-05-23  Richard Guenther  <rguenther@suse.de>
7719
7720         PR tree-optimization/49115
7721         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
7722         is not necessarily carried out, do not claim it kills the ref.
7723         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
7724
7725 2011-05-23  Richard Guenther  <rguenther@suse.de>
7726
7727         PR middle-end/15419
7728         * builtins.c (fold_builtin_memory_op): Be less restrictive about
7729         what pointer types we accept for folding.
7730
7731 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7732
7733         * gthr-gnat.c: Remove.
7734         * gthr-gnat.h: Remove.
7735         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
7736         * config/t-freebsd (LIB2ADDEH): Likewise.
7737         * config/t-linux (LIB2ADDEH): Likewise.
7738         * config/t-sol2 (LIB2ADDEH): Likewise.
7739         * config/ia64/t-vms (LIB2ADDEH): Likewise.
7740         * configure.ac (target_thread_file): Remove gnat handling.
7741         * configure: Regenerate.
7742         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
7743
7744 2011-05-23  Tristan Gingold  <gingold@adacore.com>
7745             Eric Botcazou  <ebotcazou@adacore.com>
7746
7747         * gcov.c (create_file_names): If no object directory is specified,
7748         keep the directory of the file.
7749
7750 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7751
7752         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
7753         * configure: Regenerate.
7754
7755 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
7756
7757         PR middle-end/48973
7758         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
7759         failed and the comparison has a single bit signed type, use
7760         constm1_rtx instead of const1_rtx for true value.
7761         (do_store_flag): If ops->type is single bit signed type, disable
7762         signel bit test optimization and pass -1 instead of 1 as last
7763         parameter to emit_store_flag_force.
7764
7765 2011-05-23  Tom de Vries  <tom@codesourcery.com>
7766
7767         PR target/45098
7768         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
7769         function.
7770         (infer_loop_bounds_from_undefined): Use new function.
7771
7772 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
7773
7774         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
7775         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
7776         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
7777         and -O0 otherwise.
7778         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
7779
7780 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
7781
7782         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
7783         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
7784         returns true.
7785
7786 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
7787
7788         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
7789
7790 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
7791
7792         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
7793         UNSPEC_MOVE_PIC pattern.
7794
7795 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
7796
7797         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
7798         (sparc-*-rtems*): Likewise.
7799         (sparc64-*-elf*): Likewise.
7800         (sparc64-*-rtems*): Likewise.
7801         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
7802         * config/sparc/t-crtin: New file.
7803         * config/sparc/t-sol2 (crti.o): Delete rule.
7804         (crtn.o): Likewise.
7805         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
7806         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
7807         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
7808         (ENDFILE_SPEC): Add crtn.o.
7809
7810 2011-05-22  Tom de Vries  <tom@codesourcery.com>
7811
7812         PR middle-end/48689
7813         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
7814         CODE_CONTAINS_STRUCT (TS_COMMON).
7815
7816 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
7817
7818         PR middle-end/49029
7819         * expmed.c (extract_fixed_bit_field): Test whether target can be used
7820         only after deciding which mode to use.
7821
7822 2011-05-22  Tom de Vries  <tom@codesourcery.com>
7823
7824         PR target/45098
7825         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
7826         for call to get_shiftadd_cost.
7827
7828 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
7829
7830         PR target/49104
7831         * config/i386/cpuid.h (bit_MMXEXT): New define.
7832
7833 2011-05-22  Nick Clifton  <nickc@redhat.com>
7834
7835         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
7836         initialisation of non-existant args[2] element.  Use args[] array
7837         not arg[] array to pass arguments to build_function_type_list.
7838
7839 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
7840
7841         PR tree-optimization/49087
7842         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
7843
7844 2011-05-21  Jason Merrill  <jason@redhat.com>
7845
7846         PR c++/49092
7847         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
7848         static storage duration.
7849
7850 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
7851
7852         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
7853         frame pointer.
7854
7855 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
7856
7857         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
7858         false if there are call-saved registers here...
7859         (sparc_can_use_return_insn_p): ...but here instead.
7860         (save_or_restore_regs): Fix thinko.
7861         (sparc_expand_prologue): Use current_function_is_leaf.
7862         (sparc_frame_pointer_required): Likewise.
7863
7864 2011-05-21  Nick Clifton  <nickc@redhat.com>
7865
7866         PR target/49098
7867         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
7868
7869 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
7870
7871         * gengtype.c (walk_type): Implemented "atomic" GTY option.
7872         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
7873
7874 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
7875
7876         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
7877         * optc-gen.awk: Move common code to opt-read.awk.
7878         * opth-gen.awk: Likewise.
7879         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
7880
7881 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
7882
7883         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
7884
7885 2011-05-20  Tom de Vries  <tom@codesourcery.com>
7886
7887         PR target/45098
7888         * tree-ssa-loop-ivopts.c: Include expmed.h.
7889         (get_shiftadd_cost): New function.
7890         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
7891
7892 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
7893
7894         PR bootstrap/49086
7895         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
7896         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
7897
7898 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
7899
7900         * Makefile.in: Update comment referring to $(OBJS-common).
7901
7902 2011-05-20  Ian Lance Taylor  <iant@google.com>
7903
7904         * godump.c (go_output_typedef): Put enum constants in the macro
7905         hash table to avoid duplicate Go const definitions.
7906
7907 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
7908
7909         * Makefile.in (LIBDEPS): Add libcommon.a.
7910         (LIBS): Likewise.
7911         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
7912         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
7913         pretty-print.o and version.o.
7914         (OBJS-libcommon): New.
7915         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
7916         (BACKEND): Add libcommon.a.
7917         (MOSTLYCLEANFILES): Likewise.
7918         (libcommon.a): New.
7919         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
7920         (cpp$(exeext)): Likewise.
7921         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
7922         pretty-print.o and input.o.
7923         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
7924         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
7925         (errors.o): Remove.
7926         (mips-tfile): Don't explicitly use version.o.
7927         (mips-tdump): Likewise.
7928         (gcov.o): Depend on $(DIAGNOSTIC_H).
7929         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
7930         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
7931         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
7932         * gcov-dump.c: Include intl.h and diagnostic.h.
7933         (main): Initialize diagnostics.
7934         * gcov.c: Include diagnostic.h.
7935         (fnotice): Remove.
7936         (main): Initialize diagnostics.
7937         * lto-wrapper.c: Include diagnostic.h.
7938         (main): Initialize diagnostics.
7939
7940 2011-05-20  Michael Matz  <matz@suse.de>
7941
7942         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
7943
7944 2011-05-20  Michael Matz  <matz@suse.de>
7945             Richard Guenther  <rguenther@suse.de>
7946
7947         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
7948         use lto_streamer_cache_append directly instead of returning a VEC.
7949         (preload_common_node): Remove.
7950         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
7951         track seen nodes.
7952         (lto_streamer_cache_create): Call lto_preload_common_nodes.
7953
7954 2011-05-20  Richard Guenther  <rguenther@suse.de>
7955
7956         PR tree-optimization/49079
7957         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
7958         MEM_REFs correctly for the trailing array access detection.
7959         Special case constants the same way as decls for overall size
7960         constraining.
7961
7962 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
7963
7964         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
7965         argument expansion.
7966
7967 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
7968
7969         PR tree-optimization/49073
7970         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
7971         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
7972         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
7973
7974 2011-05-20  Richard Guenther  <rguenther@suse.de>
7975
7976         PR middle-end/48849
7977         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
7978         of pointer types the same way the middle-end does.
7979
7980 2011-05-20  Richard Guenther  <rguenther@suse.de>
7981
7982         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
7983         or pointer-to chains.  Delay all fixup to uniquify_nodes.
7984
7985 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
7986
7987         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
7988         (fma4_fmaddsub): Likewise
7989
7990 2011-05-19  Jan Hubicka  <jh@suse.cz>
7991
7992         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
7993         (GIMPLE_TYPE_PAIR_SIZE): New macro.
7994         (type_pair_cache): New static var.
7995         (lookup_type_pair): Use fixed sized custom hash; make inline.
7996         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
7997         calls of lookup_type_pair.
7998         (print_gimple_types_stats): Remove cache stats.
7999         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
8000         and gtc_ob.
8001
8002 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
8003
8004         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
8005         when TARGET_RDRND is active.
8006         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
8007         Generate dummy SImode target register when target is NULL.
8008
8009 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
8010
8011         * config/arm/arm-fpus.def: New.
8012         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
8013         arm-fpus.def.
8014         * config/arm/arm-tables.opt: Regenerate.
8015         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
8016         (arm_option_override): Don't decode FPU name to string here.
8017         * config/arm/arm.opt (mfpu=): Use Enum.
8018         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
8019         Update dependencies.
8020
8021 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
8022
8023         * collect2.c: Include diagnostic.h.
8024         (fatal_perror, fatal, error, fancy_abort): Remove.
8025         (main): Set progname.  Call xmalloc_set_program_name and
8026         diagnostic_initialize.
8027         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
8028         scan_libraries, resolve_lib_name): Call fatal_error instead of
8029         fatal and fatal_perror.
8030         * collect2.h (error, fatal, fatal_perror): Don't declare.
8031         * tlink.c: Include diagnostic-core.h.
8032         (recompile_files): Call fatal_error instead of fatal_perror.
8033         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
8034         pretty-print.o and input.o.
8035         (collect2.o, tlink.o): Update dependencies.
8036
8037 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8038
8039         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
8040
8041 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8042
8043         PR target/40483
8044         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
8045         COMDAT group syntax, both SPARC and x86 variants.
8046         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
8047         * configure: Regenerate.
8048         * config/sol2.h (TARGET_SOLARIS): Define.
8049         (PUSHSECTION_FORMAT): Remove.
8050         (SECTION_NAME_FORMAT): Define.
8051         * config/sol2.c: Include hashtab.h.
8052         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
8053         expansion, using SECTION_NAME_FORMAT.
8054         (solaris_comdat_htab): New variable.
8055         (struct comdat_entry): Define.
8056         (comdat_hash): New function.
8057         (comdat_eq): New function.
8058         (solaris_elf_asm_comdat_section): New function.
8059         (solaris_define_comdat_signature): New function.
8060         (solaris_code_end): New function.
8061         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
8062         (solaris_code_end): Declare.
8063         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
8064         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
8065         solaris_code_end.
8066         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
8067         Remove ATTRIBUTE_UNUSED.
8068         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
8069         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
8070         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
8071         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
8072         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
8073         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
8074         (PUSHSECTION_FORMAT): Remove.
8075         (SECTION_NAME_FORMAT): Redefine.
8076
8077 2011-05-19  Kai Tietz  <ktietz@redhat.com>
8078
8079         * tree-cfg.c (verify_gimple_assign_binary): Barf on
8080         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
8081         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
8082
8083 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
8084             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8085
8086         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
8087
8088 2011-05-19  Richard Guenther  <rguenther@suse.de>
8089
8090         PR middle-end/48985
8091         * tree-object-size.c (addr_object_size): If the pointed-to
8092         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
8093
8094 2011-05-19  Richard Guenther  <rguenther@suse.de>
8095
8096         * gimple.c (gimple_types_compatible_p_1): Compare names of
8097         the types themselves.
8098         (iterative_hash_gimple_type): And hash them that way.
8099         (gimple_register_type_1): If we register a main variant properly
8100         initialize the leader to ourselves.
8101
8102 2011-05-19  Tom de Vries  <tom@codesourcery.com>
8103
8104         PR target/45098
8105         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
8106         get_loop_invariant_expr_id.
8107         (get_loop_invariant_expr_id): Use get_expr_id.
8108         (parm_decl_cost): New function.
8109         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
8110         Improve bound cost estimation.  Use different inv_expr_id for elim and
8111         express cases.
8112
8113 2011-05-19  Tom de Vries  <tom@codesourcery.com>
8114
8115         PR target/45098
8116         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
8117         cost_base.cost == 0.
8118
8119 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
8120
8121         PR target/49002
8122         * config/i386/sse.md
8123         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
8124         load cast.
8125
8126 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
8127
8128         PR tree-optimization/49039
8129         * tree-vrp.c (extract_range_from_binary_expr): For
8130         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
8131         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
8132
8133 2011-05-18  Tom de Vries  <tom@codesourcery.com>
8134
8135         PR target/45098
8136         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
8137
8138 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
8139
8140         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
8141         (*tls_global_dynamic_64): Ditto.
8142         (*tls_local_dynamic_base_32_gnu): Ditto.
8143         (*tls_local_dynamic_base_64): Ditto.
8144         (tls_initial_exec_64_sun): Ditto.
8145
8146 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
8147
8148         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
8149         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
8150         bf592-none.
8151         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
8152         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
8153         * config/bfin/bfin.c (bfin_cpus): Add bf592.
8154         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8155         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
8156         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
8157         * config/bfin/elf.h (LIB_SPEC): Add bf592.
8158
8159 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
8160
8161         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
8162         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
8163         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
8164         target_thread_pointer, arm_structure_size_boundary, struct
8165         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
8166         struct abi_name, arm_all_abis): Remove.
8167         (arm_option_override) Don't process most enumerated option values here.
8168         Don't process target_fpe_name here.  Work with integer not string for
8169         structure size boundary; use separate diagnostics for each case.
8170         * config/arm/arm.h (enum float_abi_type, enum
8171         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
8172         to arm-opts.h.
8173         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
8174         arm_structure_size_boundary): Remove.
8175         * config/arm/arm.opt (mabi=): Use Enum and Init.
8176         (arm_abi_type): New Enum and EnumValue entries.
8177         (mfloat-abi=): Use Enum and Init.
8178         (float_abi_type): New Enum and EnumValue entries.
8179         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
8180         (mfp16-format=): Use Enum and Init.
8181         (arm_fp16_format_type): New Enum and EnumValue entries.
8182         (mstructure-size-boundary=): Use UInteger and Init.
8183         (mtp=): Use Enum and Init.
8184         (arm_tp_type): New Enum and EnumValue entries.
8185
8186 2011-05-18  Richard Guenther  <rguenther@suse.de>
8187
8188         PR tree-optimization/49018
8189         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
8190         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
8191         gimple_has_side_effects.
8192
8193 2011-05-18  Richard Guenther  <rguenther@suse.de>
8194
8195         * gimple.c (gimple_register_type_1): New function, split out from ...
8196         (gimple_register_type): ... here.  Avoid infinite recursion.
8197
8198 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
8199
8200         PR tree-optimization/41881
8201         * tree-vectorizer.h (struct _loop_vec_info): Add new field
8202         reduction_chains along with a macro for its access.
8203         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
8204         (destroy_loop_vec_info): Free reduction chains.
8205         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
8206         (vect_is_slp_reduction): New function.
8207         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
8208         (vect_create_epilog_for_reduction): Support SLP reduction chains.
8209         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
8210         definition types for reduction chains.
8211         (vect_supported_load_permutation_p): Don't allow permutations for
8212         reduction chains.
8213         (vect_analyze_slp_instance): Support reduction chains.
8214         (vect_analyze_slp): Try to build SLP instance from reduction chains.
8215         (vect_get_constant_vectors):  Handle reduction chains.
8216         (vect_schedule_slp_instance): Mark the first statement of the
8217         reduction chain as reduction.
8218
8219 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
8220
8221         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
8222         names for group elements access.
8223         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
8224         reduction chains as well.  Remove data reference and interleaving
8225         related words from the fields names.
8226         * tree-vect-loop.c (vect_transform_loop): Use new names for group
8227         elements access.
8228         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
8229         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
8230         vect_update_interleaving_chain, vect_same_range_drs,
8231         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
8232         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
8233         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
8234         vect_analyze_group_access, vect_analyze_data_ref_access,
8235         vect_create_data_ref_ptr, vect_transform_strided_load,
8236         vect_record_strided_load_vectors): Likewise.
8237         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
8238         vect_model_load_cost, vectorizable_store, vectorizable_load,
8239         vect_remove_stores, new_stmt_vec_info): Likewise.
8240         * tree-vect-slp.c (vect_build_slp_tree,
8241         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
8242
8243 2011-05-18  Richard Guenther  <rguenther@suse.de>
8244
8245         PR middle-end/48989
8246         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
8247         operand verification.
8248         (verify_gimple_assign_binary): Likewise.
8249         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
8250         to non-1-precision BOOLEAN_TYPEs.
8251
8252 2011-05-18  Tom de Vries  <tom@codesourcery.com>
8253
8254         PR target/45098
8255         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
8256
8257 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
8258
8259         PR tree-optimization/49000
8260         * tree-ssa.c (execute_update_addresses_taken): Call
8261         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
8262         be rewritten and decl has been marked for renaming, reset
8263         the debug stmt.
8264
8265 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
8266
8267         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
8268         enum_opts_set when testing if attributes have set -mfpmath=.
8269
8270 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
8271
8272         * config/mips/mips.c (mips_handle_option): Remove unused variable.
8273
8274 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
8275
8276         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
8277         info->entry with 0
8278         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
8279         id.transform_lang_insert_block with NULL.
8280
8281 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
8282
8283         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
8284         (output_fp_compare): Change args 3 and 4 to bool.
8285         (ix86_expand_call): Change arg 6 to bool.
8286         (ix86_attr_length_immediate_default): Change arg 2 to bool.
8287         (ix86_attr_length_vex_default): Change arg 3 to bool.
8288         * config/i386/i386.md: Update all uses.
8289         * config/i386/i386.c: Ditto.
8290         (ix86_flags_dependent): Change return type to bool.
8291
8292 2011-05-17  Richard Guenther  <rguenther@suse.de>
8293
8294         * gimple.c (type_hash_pair_compare): Fix comparison.
8295
8296 2011-05-17  Richard Guenther  <rguenther@suse.de>
8297
8298         * gimple.c (iterative_hash_gimple_type): Simplify singleton
8299         case some more, fix final hash value of the non-singleton case.
8300
8301 2011-05-17  Richard Guenther  <rguenther@suse.de>
8302
8303         PR bootstrap/49013
8304         Revert
8305         2011-05-16  Richard Guenther  <rguenther@suse.de>
8306
8307         * gimple.c (gimple_types_compatible_p_1): Use names of the
8308         type itself, not its main variant.
8309         (iterative_hash_gimple_type): Likewise.
8310
8311 2011-05-17  Richard Guenther  <rguenther@suse.de>
8312
8313         * gimple.c (gimple_register_canonical_type): Use the main-variant
8314         leader for computing the canonical type.
8315
8316 2011-05-17  Nick Clifton  <nickc@redhat.com>
8317
8318         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
8319         moves.
8320
8321         * config/rx/rx.md: Add peephole to remove redundant extensions
8322         after loads.
8323         (bitset_in_memory): Use rx_restricted_mem_operand.
8324         (bitinvert_in_memory): Likewise.
8325         (bitclr_in_memory): Likewise.
8326
8327 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
8328             Nick Clifton  <nickc@redhat.com>
8329
8330         * config/rx/rx.md: Add peepholes to match a register move followed
8331         by a comparison of the moved register.  Replace these with an
8332         addition of zero that does both actions in one instruction.
8333
8334 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
8335
8336         PR target/48986
8337         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
8338         predicate to allow CONST_INT.
8339         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
8340
8341 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
8342
8343         * opts-common.c (opt_enum_arg_to_value): New.
8344         * opts.h (opt_enum_arg_to_value): Declare.
8345         * config/i386/i386.opt (fpmath): Remove.
8346         (mfpmath=): Use Enum, Init and Save.
8347         (fpmath_unit): New Enum and EnumValue entries.
8348         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
8349         name for function fpmath state.
8350         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
8351         * config/i386/i386.c: Include diagnostic.h.
8352         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
8353         (ix86_target_string): Take enum fpmath_unit value instead of string.
8354         (ix86_debug_options): Update call to ix86_target_string.
8355         (ix86_option_override_internal): Don't process fpmath strings here.
8356         (x86_function_specific_save, ix86_function_specific_restore):
8357         Don't handle fpmath state specially.
8358         (ix86_function_specific_print): Pass fpmath state to
8359         ix86_target_string instead of printing in this function.
8360         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
8361         Handle enum attributes.
8362         (IX86_ATTR_ENUM, ix86_opt_enum): New.
8363         (ix86_valid_target_attribute_tree): Update option_strings
8364         handling.  Handle fpmath as enum option.
8365         (ix86_can_inline_p): Update field names for function fpmath state.
8366         (ix86_expand_builtin): Update call to ix86_target_string.
8367         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
8368         (ix86_fpmath): Remove.
8369         * config/i386/t-i386 (i386.o): Update dependencies.
8370
8371 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
8372
8373         PR preprocessor/48677
8374         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
8375         from decoded_options[0], not from itself.
8376
8377 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
8378
8379         * config/i386/constraints.md (z): New constraint.
8380         * config/i386/i386.c (c): New mode attribute.
8381         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
8382         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
8383         constraint for operand 0.
8384         (*call_vzeroupper): Ditto.
8385         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
8386         (*call_rex64_ms_sysv_vzeroupper): Ditto.
8387         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
8388         Use "lzm" constraint for operand 0.
8389         (*call_pop_vzeroupper): Ditto.
8390         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
8391         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
8392         constraint for operand 0.
8393         (*sibcall_vzeroupper): Ditto.
8394         (*sibcall_rex64_ms_sysv): Ditto.
8395         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
8396         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
8397         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
8398         (*sibcall_pop_vzeroupper): Ditto.
8399         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
8400         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
8401         mode iterator.  Use "<c>zm" constraint for operand 1.
8402         (*call_value_vzeroupper): Ditto.
8403         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
8404         for operand 1.
8405         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
8406         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
8407         *call_value_pop_1.  Use "lzm" constraint for operand 1.
8408         (*call_value_pop_vzeroupper): Ditto.
8409         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
8410         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
8411         mode iterator.  Use "Uz" constraint for operand 1.
8412         (*sibcall_value_vzeroupper): Ditto.
8413         (*sibcall_value_rex64_ms_sysv): Ditto.
8414         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
8415         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
8416         constraint for operand 1.
8417         (*sibcall_value_pop_vzeroupper): Ditto.
8418         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
8419         and "z" constraint for operand 2.
8420         (*tls_global_dynamic_32_gnu): Ditto.
8421         (*tls_local_dynamic_base_32_gnu): Ditto.
8422         (*tls_local_dynamic_base_64): Ditto.
8423         (*tls_local_dynamic_32_once): Ditto.
8424         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
8425         Update all callers.
8426         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
8427
8428 2011-05-16  Richard Guenther  <rguenther@suse.de>
8429
8430         * gimple.c (gimple_types_compatible_p_1): Use names of the
8431         type itself, not its main variant.
8432         (iterative_hash_gimple_type): Likewise.
8433
8434 2011-05-16  Richard Guenther  <rguenther@suse.de>
8435
8436         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
8437         always visit pointer target and function result and argument types.
8438
8439 2011-05-16  Jason Merrill  <jason@redhat.com>
8440
8441         PR c++/48999
8442         * tree-inline.c (copy_statement_list): Put back recursion.
8443
8444 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
8445
8446         PR target/27663
8447         PR target/41076
8448         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
8449         * config/avr/avr.md ("*ior<mode>qi.byte0",
8450         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
8451
8452 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
8453
8454         PR target/45099
8455         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
8456         register is needed for a function argument.
8457
8458 2011-05-16  Richard Guenther  <rguenther@suse.de>
8459
8460         * gimple.c (struct type_hash_pair): New type.
8461         (type_hash_pair_compare): New function.
8462         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
8463
8464 2011-05-16  Revital Eres  <revital.eres@linaro.org>
8465
8466         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
8467
8468 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
8469
8470         * config/i386/i386.md (floating point move splitters): Fix
8471         usage of standard_80387_constant_p.
8472         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
8473
8474 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
8475
8476         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
8477
8478 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
8479
8480         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
8481         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
8482         (tree_ssa_lim_finalize): Likewise.
8483
8484 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
8485
8486         * config/i386/constraint.md (Yd, Yx): New register constraints.
8487         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
8488         Yd conditional register constraint.
8489         (*movtf_internal): Use standard_sse_constant_opcode.
8490         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
8491         Yx conditional register constraint.
8492         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
8493         Yd conditional register constraint.  Use standard_sse_constant_p to
8494         check for valid SSE constants and call standard_sse_constant_opcode to
8495         output SSE insn.
8496         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
8497         constants and call standard_sse_constant_opcode to output SSE insn.
8498         * config/i386/i386.c (ix86_option_ovverride_internal): Set
8499         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
8500         optimize_size is set.
8501         (standard_sse_constant_opcode): Output conditional AVX insn templates.
8502
8503 2011-05-14  Tobias Burnus  <burnus@net-b.de>
8504
8505         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
8506
8507 2011-05-13  Martin Jambor  <mjambor@suse.cz>
8508
8509         * ipa-prop.c (ipa_cst_from_jfunc): New function.
8510         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
8511         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
8512         (evaluate_conditions_for_ipcp_clone): Removed.
8513         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
8514         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
8515         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
8516
8517 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
8518
8519         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
8520         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
8521         lieu of MAY_HAVE_DEBUG_STMTS.
8522         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
8523         debug statements if !MAY_HAVE_DEBUG_STMTS.
8524
8525 2011-05-13  Martin Thuresson  <martint@google.com>
8526
8527         PR gcov-profile/47793
8528         * libgcov.c (gcov_exit): Support relative profile paths.
8529         * doc/invoke.texi (-fprofile-dir): Update for above change.
8530
8531 2011-05-13  Richard Guenther  <rguenther@suse.de>
8532
8533         * gimple.c (gimple_canonical_types_compatible_p): Do not use
8534         type-pair caching, do not compare hashes.
8535
8536 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
8537
8538         PR middle-end/48965
8539         * tree-cfg.c (edge_to_cases_cleanup): Return true.
8540         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
8541
8542 2011-05-13  Kai Tietz  <ktietz@redhat.com>
8543
8544         * gimplify.c (gimplify_expr): Make sure operand is boolified.
8545         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
8546         compatible type for TRUTH_NOT_EXPR.
8547
8548 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
8549
8550         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
8551         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
8552         can_create_pseudo_p ().
8553
8554 2011-05-13  Richard Guenther  <rguenther@suse.de>
8555
8556         PR lto/48978
8557         * gimple.c (iterative_hash_gimple_type): Revert change in
8558         pointer target and function result and argument hashing.
8559
8560 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
8561
8562         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
8563         (*movxf_internal_nointeger): Ditto.
8564         (*movdf_internal_rex64): Ditto.
8565         (*movdf_internal): Ditto.
8566         (*movdf_internal_nointeger): Ditto.
8567         (*movsf_internal): Ditto.
8568         (sincos splitters): Use can_create_pseudo ().
8569
8570 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
8571
8572         * config/i386/i386-opts.h: New.
8573         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
8574         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
8575         ix86_section_threshold): Remove.
8576         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
8577         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
8578         OPT_mbranch_cost_.
8579         (ix86_option_override_internal): Don't decode strings for options
8580         other than -march=, -mtune= and -mfpmath=.  Don't allow for
8581         __attribute__ uses in remaining diagnostics for options with
8582         string arguments.  Don't check for integer arguments being negative.
8583         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
8584         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
8585         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
8586         ix86_branch_cost, ix86_section_threshold): Remove.
8587         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
8588         HeaderInclude.
8589         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
8590         but not Var.
8591         (masm=): Use Enum and Init.
8592         (asm_dialect): New Enum and EnumValue entries.
8593         (mbranch-cost=): Use UInteger.
8594         (mlarge-data-threshold=): Use UInteger and Init.
8595         (mcmodel=): Use Enum and Init.
8596         (cmodel): New Enum and EnumValue entries.
8597         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
8598         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
8599         mregparm=): Use UInteger.
8600         (mstringop-strategy=): Use Enum and Init.
8601         (stringop_alg): New Enum and EnumValue entries.
8602         (mtls-dialect=): Use Enum and Init.
8603         (tls_dialect): New Enum and EnumValue entries.
8604         (mabi=): Use Enum and Init.
8605         (calling_abi): New Enum and EnumValue entries.
8606         (mveclibabi=): Use Enum and Init.
8607         (ix86_veclibabi): New Enum and EnumValue entries.
8608
8609 2011-05-13  Nick Clifton  <nickc@redhat.com>
8610
8611         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
8612         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
8613
8614 2011-05-13  Kai Tietz  <ktietz@redhat.com>
8615
8616         PR middle-end/48984
8617         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
8618         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
8619         (gimple_boolify): Check for cast for boolean_type_node instead for
8620         BOOLEAN_TYPE.
8621
8622 2011-05-13  Richard Guenther  <rguenther@suse.de>
8623
8624         PR tree-optimization/48172
8625         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
8626         multiplying by number of iterations for equal step.
8627         (vect_create_cond_for_alias_checks): Likewise.
8628
8629 2011-05-13  Andreas Schwab  <schwab@redhat.com>
8630
8631         * configure.ac: Use AS_HELP_STRING throughout.
8632         * configure: Regenerate.
8633
8634 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
8635
8636         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
8637         (ix86_emit_restore_regs_using_mov): Likewise.
8638         (ix86_emit_restore_sse_regs_using_mov): Likewise.
8639
8640 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
8641
8642         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
8643         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
8644         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
8645         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
8646         RTX_OK_FOR_OLO10_P): ...here.
8647         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
8648         SYMBOLIC_CONST.
8649
8650 2011-05-12  Kai Tietz  <ktietz@redhat.com>
8651
8652         * gimplify.c (gimple_boolify): Re-boolify expression
8653         arguments even if expression type is of kind BOOLEAN_TYPE.
8654         (gimplify_boolean_expr): Removed.
8655         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
8656         and XOR. Additional take care that we keep expression's type.
8657         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
8658         of TRUTH_AND|OR|XOR_EXPR.
8659
8660 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
8661
8662         PR tree-optimization/48975
8663         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
8664         on all bbs here and free and clear ifc_bbs at the end.
8665
8666 2011-05-12  Richard Guenther  <rguenther@suse.de>
8667
8668         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
8669         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
8670         until after simple checks.
8671         (gimple_types_compatible_p): Likewise.
8672         (iterative_hash_gimple_type): Always hash pointer targets
8673         and function return and argument types.
8674         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
8675         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
8676         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
8677         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
8678         completely in the simple compare section.
8679         (gimple_register_canonical_type): Query the cache again after
8680         registering.
8681
8682 2011-05-12  Richard Guenther  <rguenther@suse.de>
8683
8684         PR tree-optimization/48172
8685         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
8686         the number of iterations from the segment size calculation.
8687         (vect_create_cond_for_alias_checks): Adjust.
8688
8689 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
8690
8691         PR debug/48967
8692         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
8693         if validate_subreg fails.
8694
8695 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
8696
8697         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
8698         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
8699         early.
8700
8701 2011-05-12  DJ Delorie  <dj@redhat.com>
8702
8703         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
8704         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
8705         created builtin into rx_builtins array.
8706         (rx_builtin_decl): New function.
8707         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
8708
8709 2011-05-12  DJ Delorie  <dj@redhat.com>
8710             Nick Clifton  <nickc@redhat.com>
8711
8712         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
8713         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
8714         (rx_is_legitimate_address): Add pre-decrement and post-increment
8715         addressing in HImode and QImode.  Fix test for out of range
8716         REG+INT addressing.
8717         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
8718         (rx_align_for_label): Test label before extracting its usage count.
8719         (rx_adjust_insn_lengths): Fix selection of insn codes.
8720         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
8721
8722 2011-05-11  Jason Merrill  <jason@redhat.com>
8723
8724         * tree.c (type_hash_canon): Use struct tree_type_non_common.
8725
8726 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
8727
8728         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
8729         reindent the subsequent block.
8730
8731 2011-05-11  Satoru Takabayashi  <satorux@google.com>
8732             Paul Pluzhnikov  <ppluzhnikov@google.com>
8733
8734         * doc/install.texi (Configuration): Document --with-linker-hash-style.
8735         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
8736         * config.in: Add LINKER_HASH_STYLE.
8737         * configure.ac: Add --with-linker-hash-style.
8738         * configure: Regenerate.
8739
8740 2011-05-11  Richard Guenther  <rguenther@suse.de>
8741
8742         PR middle-end/48964
8743         * gimple.c (iterative_hash_canonical_type): Fix typo.
8744
8745 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
8746
8747         * config/i386/i386.c (legitimize_tls_address)
8748         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
8749         expanders directly for TARGET_GNU2_TLS.  Determine pic and
8750         __tls_get_addr symbol reference here.  Update call to
8751         gen_tls_global_dynamic_{32,64} for added arguments.
8752         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
8753         expanders directly for TARGET_GNU2_TLS.  Determine
8754         __tls_get_addr symbol reference here.  Update call to
8755         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
8756         unique UNSPEC REG_EQUIV to libcall block.
8757         (ix86_tls_get_addr): Declare static.
8758         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
8759         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
8760         Do not determine pic and __tls_get_addr symbol reference here. Do not
8761         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
8762         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
8763         (tls_global_dynamic_64): Add operand 2.  Do not determine
8764         __tls_get_addr symbol reference here.  Do not call
8765         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
8766         (tls_local_dynamic_base64): Ditto for operand 1.
8767
8768 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
8769
8770         * function.c (expand_function_start): Initialize stack_check_probe_note
8771         only if the generic stack checking mechanism is used.
8772
8773 2011-05-11  Richard Guenther  <rguenther@suse.de>
8774
8775         PR tree-optimization/15256
8776         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
8777         (A & B) | C, combine (A op CST1) op CST2.
8778         (tree_ssa_forward_propagate_single_use_vars): Only bother to
8779         visit assigns that have uses.
8780
8781 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
8782
8783         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
8784         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
8785         (unpack_ts_type_common_value_fields): ...this.  Update comment.
8786         (unpack_value_fields): Adjust for renaming.
8787         (lto_input_ts_type_tree_pointers): Split into...
8788         (lto_input_ts_type_common_tree_pointer): ...this and...
8789         (lto_input_ts_type_non_common_tree_pointers): ...this.
8790         (lto_input_tree_pointers): Adjust for above split.
8791         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
8792         (pack_ts_type_common_value_fields): ...this.  Update comment.
8793         (lto_output_ts_type_tree_pointers): Split into...
8794         (lto_output_ts_type_common_tree_pointers): ...this and...
8795         (lto_output_ts_type_non_common_tree_pointers): ...this.
8796         (lto_output_tree_pointers): Adjust for above split.
8797         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
8798         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
8799         * stor-layout.c (vector_type_mode): Adjust location of mode field.
8800         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
8801         Define.
8802         (struct tree_type): Split into...
8803         (struct tree_type_common: ...this and...
8804         (struct tree_type_with_lang_specific): ...this and...
8805         (struct tree_type_non_common): ...this.  Adjust accessor macros
8806         accordingly.
8807         (TYPE_VALUES_RAW): Define.
8808         (union tree_node): Update for above changes.
8809         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
8810         TS_TYPE_NON_COMMON.
8811         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
8812         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
8813         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
8814         * treestructu.def (TS_TYPE): Remove.
8815         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
8816         Define.
8817
8818 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
8819
8820         PR debug/48159
8821         * tree-ssa.c (reset_debug_uses): New function.
8822         * tree-flow.h (reset_debug_uses): New prototype.
8823         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
8824         * tree-loop-distribution.c (generate_loops_for_partition): Call
8825         reset_debug_uses on the stmts that will be removed.  Keep around
8826         all debug stmts, don't count them as bits in partition bitmap.
8827         (generate_builtin): Don't count debug stmts or labels as bits in
8828         partition bitmap.
8829
8830 2011-05-11  Richard Guenther  <rguenther@suse.de>
8831
8832         * gimple.c (gimple_type_hash_1): Merge with ...
8833         (gimple_type_hash): ... this.
8834         (gtc_visit): Remove mode parameter and simplify accordingly.
8835         (gimple_types_compatible_p_1): Likewise.
8836         (gimple_types_compatible_p): Likewise.
8837         (iterative_hash_gimple_type): Likewise.
8838         (visit): Likewise.
8839         (gimple_type_eq): Adjust.
8840
8841 2011-05-11  Revital Eres  <revital.eres@linaro.org>
8842
8843         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
8844         enters the branch create an anti edge in the opposite direction
8845         to prevent the creation of reg-moves.
8846         * modulo-sched.c: Adjust comment to reflect the fact we are
8847         scheduling closing branch.
8848         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
8849         (stage_count): New field in struct partial_schedule.
8850         (calculate_stage_count): New function.
8851         (normalize_sched_times): Rename to reset_sched_times and handle
8852         incrementing the sched time of the nodes by a constant value
8853         passed as parameter.
8854         (duplicate_insns_of_cycles): Skip closing branch.
8855         (sms_schedule_by_order): Schedule closing branch.
8856         (ps_insn_find_column): Handle closing branch.
8857         (sms_schedule): Call reset_sched_times and adjust the code to
8858         support scheduling of the closing branch.
8859         (ps_insert_empty_row): Update calls to normalize_sched_times
8860         and rotate_partial_schedule functions.
8861
8862 2011-05-11  Richard Guenther  <rguenther@suse.de>
8863
8864         PR middle-end/48953
8865         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
8866
8867 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
8868
8869         * opts.c (finish_options): Move warning settings from process_options.
8870         * toplev.c (process_options): Move warning settings to finish_options.
8871
8872 2011-05-11  Richard Guenther  <rguenther@suse.de>
8873
8874         PR tree-optimization/18041
8875         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
8876         (simplify_bitwise_binary): ... this.  Handle operand conversions
8877         by applying them to the result instead.
8878         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
8879
8880 2011-05-11  Richard Guenther  <rguenther@suse.de>
8881
8882         * gimple.c (gimple_canonical_types_compatible_p): Split out
8883         from gimple_types_compatible_p and friends.  Do not recurse
8884         to pointed-to types.
8885         (gimple_canonical_type_eq): Use it.
8886         (iterative_hash_canonical_type): Split out from
8887         iterative_hash_gimple_type and friends.  Do not recurse
8888         to pointed-to types.
8889         (gimple_canonical_type_hash): Use it, allocate the hash here.
8890
8891 2011-05-11  Revital Eres  <revital.eres@linaro.org>
8892
8893         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
8894         recognizing doloop.
8895
8896 2011-05-11  Revital Eres  <revital.eres@linaro.org>
8897
8898         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
8899         instead of PREV_INSN.
8900
8901 2011-05-11  Revital Eres  <revital.eres@linaro.org>
8902
8903         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
8904         * loop-doloop.c (doloop_condition_get): Likewise.
8905         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
8906         (doloop_end): New.
8907         * config/arm/arm.md (*addsi3_compare0): Remove "*".
8908
8909 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
8910
8911         * tree.def (CASE_LABEL_EXPR): Add an operand.
8912         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
8913
8914 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
8915
8916         * c-decl.c (c_override_global_bindings_to_false): Remove.
8917         (global_bindings_p): Don't check
8918         c_override_global_bindings_to_false.
8919         * c-tree.h (c_override_global_bindings_to_false): Remove.
8920         * c-typeck.c (composite_type): Don't set
8921         c_override_global_bindings_to_false.
8922
8923 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
8924
8925         PR target/48857, 48495
8926         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
8927         (VSX_MODE): Ditto.
8928         (VSX_MOVE_MODE): Ditto.
8929         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
8930         VSX vector types.  Add V2DImode.
8931         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
8932         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
8933         (MODES_TIEABLE_P): Ditto.
8934
8935         * config/rs6000/rs6000.c (rs6000_emit_move): Use
8936         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
8937         VSX_VECTOR_MODE.
8938         (init_cumulative_args): Ditto.
8939         (rs6000_function_arg_boundary): Ditto.
8940         (rs6000_function_arg_advance_1): Ditto.
8941         (rs6000_function_arg): Ditto.
8942         (rs6000_function_ok_for_sibcall): Ditto.
8943         (emit_frame_save): Ditto.
8944         (rs6000_function_value): Ditto.
8945         (rs6000_libcall_value): Ditto.
8946
8947 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
8948
8949         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
8950         i386/darwin-lib.h to $libgcc_tm_file.
8951         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
8952
8953 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
8954
8955         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
8956
8957 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
8958
8959         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
8960         * config/rs6000/rs6000-tables.opt: New file (generated).
8961         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
8962         rs6000/rs6000-tables.opt to extra_options.
8963         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
8964         * config/rs6000/rs6000.c (rs6000_select): Remove.
8965         (processor_target_table): Move contents to rs6000-cpus.def.
8966         (darwin_rs6000_override_options): Check
8967         global_options_set.x_rs6000_cpu_index instead of
8968         rs6000_select[1].string.
8969         (rs6000_option_override_internal): Likewise.
8970         (rs6000_handle_option): Don't assert that global structures are in
8971         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
8972         (rs6000_default_cpu): New variable.
8973         (rs6000_file_start): Set it instead of local default_cpu.  Check
8974         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
8975         global_options_set.x_rs6000_tune_index instead of rs6000_select.
8976         (rs6000_darwin_file_start): Check rs6000_default_cpu and
8977         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
8978         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
8979         rs6000_select): Remove.
8980         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
8981         Remove.
8982         (mcpu=, mtune=): Use Var, Init, Enum and Save.
8983         * config/rs6000/t-rs6000
8984         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
8985         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
8986         global_options_set.x_rs6000_cpu_index instead of
8987         rs6000_select[1].string.
8988         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
8989         global_options_set.x_rs6000_cpu_index instead of
8990         rs6000_select[1].string.
8991
8992 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
8993
8994         * config.gcc (libgcc_tm_file): Define instead of including files
8995         from ../../libgcc/config/ in tm_file.
8996         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
8997         * configure: Regenerate.
8998         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
8999         libgcc_tm.h, cs-libgcc_tm.h): New.
9000         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
9001         (clean): Remove libgcc_tm.h.
9002         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
9003         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
9004         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
9005
9006 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
9007
9008         PR target/48896
9009         * config/avr/avr.c (avr_ret_register): Return unsigned int
9010         instead of int.
9011         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
9012         it to avr_libcall_value.
9013         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
9014         expand_expr.
9015         (avr_expand_binop_builtin): Ditto.
9016         (avr_expand_unop_builtin): Ditto.
9017
9018 2011-05-10  DJ Delorie  <dj@redhat.com>
9019
9020         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
9021         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
9022         * config/rx/rx.c (rx_align_for_label): Add label and
9023         uses_threshold parameters.  Do not align when the label is not
9024         used enough.
9025         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
9026
9027 2011-05-10  Richard Guenther  <rguenther@suse.de>
9028
9029         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
9030         a series of conversions and apply foldings similar to what
9031         fold-const does.
9032         (tree_ssa_forward_propagate_single_use_vars): Call it.
9033
9034 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
9035
9036         PR tree-optimization/48611
9037         PR tree-optimization/48794
9038         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
9039         referenced from RESX or EH_DISPATCH arguments.
9040
9041         PR debug/48928
9042         * dfp.c (decimal_to_decnumber): Handle conversion from
9043         dconst{1,2,m1,half}.
9044
9045 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9046
9047         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
9048         for !flag_prefer_avx128.
9049         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
9050
9051 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
9052
9053         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
9054         (fold_ternary_loc): Use expr_location_or.
9055
9056 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
9057
9058         PR debug/48853
9059         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
9060         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
9061         Pmode and mem_mode is not VOIDmode.
9062
9063 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
9064
9065         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
9066         TYPE_QUAL_RESTRICT): Convert to enum.
9067
9068 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9069
9070         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
9071         (const_pow2_1_to_8_operand): Ditto.
9072         (const_pow2_1_to_128_operand): Ditto.
9073         (const_pow2_1_to_32768_operand): Ditto.
9074         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
9075         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
9076         in insn constraint to check integer value of operand 3.
9077         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
9078
9079         (PINSR_MODE): New mode iterator.
9080         (sse2p4_1): New mode attribute.
9081         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
9082         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
9083         iterator.  Use const_int_operand instead of
9084         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
9085         exact_log2 in insn constraint to check integer value of operand 3.
9086
9087 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9088
9089         * config/i386/sse.md (blendbits): Remove mode attribute.
9090         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9091         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9092         Check integer value of operand 3 in insn constraint.
9093
9094 2011-05-09  Richard Guenther  <rguenther@suse.de>
9095
9096         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
9097         for diagnostics.
9098         (lto_symtab_merge): Likewise.  Do not register types here.
9099         (lto_symtab_merge_decls_2): Likewise.
9100         (lto_symtab_merge_decls_1): Likewise.
9101         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
9102         * gimple.c (enum gtc_mode): Declare.
9103         (gimple_types_compatible_p): Make static.
9104
9105 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9106
9107         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
9108         temporary register to match Pmode.
9109
9110 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9111
9112         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
9113         and *vec_concatv4si_1_avx.
9114
9115 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9116
9117         PR rtl-optimization/48927
9118         * ira-conflicts.c (commutative_constraint_p): Use
9119         recog_data.alternative_enabled_p to disable alternatives where
9120         "enabled" attribute is false.
9121         (get_dup_num): Ditto.
9122         * ira-lives.c (single_reg_class): Ditto.
9123         (ira_implicitly_set_insn_hard_regs): Ditto.
9124
9125 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
9126
9127         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
9128         (dataflow_set_preserve_mem_locs): Likewise.
9129
9130 2011-05-09  Philipp Thomas  <pth@suse.de>
9131
9132         * config/mep/mep.c (mep_validate_vliw): Syntax description
9133         should not be translated.
9134
9135 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
9136
9137         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
9138         * config/mips/mips-tables.opt: New file (generated).
9139         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
9140         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
9141         MIPS_ARCH_OPTION_NATIVE): Define.
9142         * config/mips/mips.c (mips_cpu_info_table): Move contents to
9143         mips-cpus.def.
9144         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
9145         mips_parse_cpu): Remove.
9146         (mips_cpu_info_from_opt, mips_default_arch): New.
9147         (mips_handle_option): Don't assert that global structures are in
9148         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
9149         (mips_option_override): Use new variables and functions to set
9150         state of these options.  Use strcmp to check for individual CPU names.
9151         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
9152         definition.
9153         * config/mips/mips.opt (march=): Use ToLower and Enum.
9154         (mips): Use ToLower, Enum and Var.
9155         (mtune=): Use ToLower and Enum.
9156         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
9157
9158 2011-05-08  Jan Hubicka  <jh@suse.cz>
9159
9160         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
9161         Arrange type pairs to be UID ordered.
9162         (gimple_lookup_type_leader): Make inline.
9163
9164 2011-05-09  Nick Clifton  <nickc@redhat.com>
9165
9166         PR target/48899
9167         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
9168         PROCESSOR_DEFAULT.
9169
9170         PR target/48897
9171         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
9172         variable 's'.
9173
9174 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
9175
9176         * combine.c (simplify_comparison): Abstract out parts into...
9177         (simplify_compare_const): ... new function.
9178         (try_combine): Generalize parallel arithmetic/compare combining
9179         to call simplify_compare_const() and CANONICALIZE_COMPARE().
9180
9181 2011-05-08  Jan Hubicka  <jh@suse.cz>
9182
9183         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
9184         (cgraph_create_virtual_clone): Call hooks once virtual clone
9185         is finished.
9186         * cgraph.h (cgraph_clone_node): Update prototype.
9187         * ipa-cp.c (ipcp_estimate_growth): Use
9188         estimate_ipcp_clone_size_and_time.
9189         * ipa-inline-transform.c (clone_inlined_nodes): Update.
9190         * lto-cgraph.c (input_node): Update.
9191         * ipa-inline.c (recursive_inlining): Update.
9192         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
9193         (evaluate_conditions_for_known_args): Break out from ...
9194         (evaluate_conditions_for_edge): ... here.
9195         (evaluate_conditions_for_ipcp_clone): New function.
9196         (inline_node_duplication_hook): Update clone summary based
9197         on parameter map.
9198         (estimate_callee_size_and_time): Rename to ...
9199         (estimate_node_size_and_time): take NODE instead of EDGE;
9200         take POSSIBLE_TRUTHS as argument.
9201         (estimate_callee_size_and_time): Update.
9202         (estimate_ipcp_clone_size_and_time): New function.
9203         (do_estimate_edge_time): Update.
9204
9205 2011-05-08  Richard Guenther  <rguenther@suse.de>
9206
9207         PR middle-end/48908
9208         PR middle-end/48905
9209         * expmed.c (expand_shift_1): Compute adjusted constant shift
9210         amount manually.
9211
9212 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
9213
9214         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
9215
9216 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
9217
9218         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
9219
9220 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
9221
9222         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
9223
9224 2011-05-07  Jan Hubicka  <jh@suse.cz>
9225
9226         * ipa-inline-transform.c (inline_call): Account when program size
9227         decreases.
9228         * ipa-inline.c (relative_time_benefit): New function.
9229         (edge_badness): Reorganize to be power 2 based; fix thinko when
9230         computing badness for negative growth; update comments to match
9231         reality; better dumps.
9232
9233 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
9234
9235         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
9236         type to bool and adjust comment.
9237         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
9238         (fold_mathfn_compare): Remove calls to global_bindings_p.
9239         (fold_inf_compare): Likewise.
9240         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
9241         * c-tree.h (global_bindings_p): Adjust prototype.
9242         * c-decl.c (global_bindings_p): Return bool and simplify.
9243
9244 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
9245
9246         PR tree-optimization/48837
9247         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
9248         when accumulator transformation is performed.
9249
9250 2011-05-06  Jan Hubicka  <jh@suse.cz>
9251
9252         * i386.h (ix86_tune_indices): Add
9253         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
9254         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
9255         * i386.c (initial_ix86_tune_features): Add
9256         X86_SOFTARE_PREFETCHING_BENEFICIAL.
9257         (software_prefetching_beneficial_p): Remove predicate.
9258         (ix86_option_override_internal): Use new macro.
9259
9260 2011-05-06  Jan Hubicka  <jh@suse.cz>
9261
9262         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
9263
9264 2011-05-06  Jan Hubicka  <jh@suse.cz>
9265
9266         * cgraph.c (cgraph_add_thunk): Create real function node instead
9267         of alias node; finalize it and mark needed/reachale; arrange visibility
9268         to be right and add it into the corresponding same comdat group list.
9269         (dump_cgraph_node): Dump thunks.
9270         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
9271         cgraph_function_with_gimple_body_p,
9272         cgraph_first_function_with_gimple_body,
9273         cgraph_next_function_with_gimple_body): New functions.
9274         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
9275         New macros.
9276         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
9277         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9278         * cgraphunit.c (cgraph_finalize_function): Only look into possible
9279         devirtualization when optimizing.
9280         (verify_cgraph_node): Verify thunks.
9281         (cgraph_analyze_function): Analyze thunks.
9282         (cgraph_mark_functions_to_output): Output thunks only in combination
9283         with function they are assigned to.
9284         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
9285         alias into normal node.
9286         (assemble_thunks): New functoin.
9287         (cgraph_expand_function): Use it.
9288         * lto-cgraph.c (lto_output_node): Stream thunks.
9289         (input_overwrite_node): Stream in thunks.
9290         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
9291         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
9292         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
9293         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
9294         (inline_analyze_function): Do not care about thunk jump functions.
9295         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
9296         * ipa-prop.c (ipa_prop_write_jump_functions): Use
9297         cgraph_function_with_gimple_body_p.
9298         * passes.c (do_per_function_toporder): Use
9299         cgraph_function_with_gimple_body_p.
9300         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9301         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
9302         (function_called_by_processed_nodes_p): Likewise.
9303
9304 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
9305
9306         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
9307         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
9308         entries.
9309         (mabi=): Replace with separate entries for mabi=altivec,
9310         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
9311         mabi=ieeelongdouble and mabi=ibmlongdouble.
9312         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
9313         check for -mabi=spe without SPE ABI support here.
9314         (rs6000_handle_option): Replace OPT_mabi_ handling with
9315         OPT_mabi_altivec and OPT_mabi_spe handling.
9316
9317 2011-05-06  Cary Coutant  <ccoutant@google.com>
9318
9319         * dwarf2out.c (contains_subprogram_definition): New function.
9320         (should_move_die_to_comdat): Call it.
9321
9322 2011-05-06  Jeff Law  <law@redhat.com>
9323
9324         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
9325         remove_ctrl_stmt_and_useless_edges.
9326         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
9327         (fixup_template_block, thread_single_edge): Likewise.
9328         (mark_threaded_blocks): Use THREAD_TARGET.
9329
9330 2011-05-06  Alan Modra  <amodra@gmail.com>
9331
9332         PR target/48900
9333         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
9334         const0_rtx as the arg to the dummy __tls_get_addr libcall.
9335
9336 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
9337
9338         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
9339         constraint modifier to "r".
9340
9341 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
9342
9343         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
9344         fall through for OPT_mcmodel_.
9345
9346 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9347
9348         * config/s390/s390.c (s390_asm_trampoline_template): Comment
9349         instruction sizes.
9350         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
9351
9352 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9353
9354         PR target/47930
9355         * config/arm/arm.opt (marm): Document it.
9356         (mthumb): Reject negative variant.
9357
9358 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
9359
9360         PR target/48898
9361         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
9362         Fix typo in "ccvt" variable name.
9363
9364 2011-05-06  Tristan Gingold  <gingold@adacore.com>
9365
9366         PR target/48895
9367         * config/vms/vms-ar.c (main): Remove cwd variable.
9368
9369 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
9370
9371         PR debug/48902
9372         * var-tracking.c (prepare_call_arguments): Move else before #endif.
9373
9374 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
9375
9376         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
9377         * gimplify.c (gimplify_switch_expr): Likewise.
9378         * omp-low.c (expand_omp_sections): Likewise.
9379         * tree-eh.c (lower_try_finally_switch): Likewise.
9380         (lower_eh_dispatch): Likewise.
9381         * tree.h (build_case_label): Declare.
9382         * tree.c (build_case_label): Define.
9383
9384 2011-05-05  Jason Merrill  <jason@redhat.com>
9385
9386         PR c++/40975
9387         * tree-inline.c (copy_tree_r): Use copy_statement_list.
9388         (copy_statement_list): Don't recurse.
9389         * stor-layout.c (copy_self_referential_tree_r): Don't allow
9390         STATEMENT_LIST.
9391
9392 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
9393
9394         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
9395         through from -mfpu= handling.
9396         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
9397
9398 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
9399
9400         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
9401         POST_MODIFY.
9402
9403 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
9404
9405         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
9406         for 11.31.
9407         (hppa[12]*-*-hpux11*): Ditto.
9408         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
9409         * config/ia64/hpux-unix2003.h: New.
9410         * config/pa/pa-hpux1131.opt: New.
9411         * config/pa/pa-hpux1131.h: New.
9412         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
9413         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
9414         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
9415
9416 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
9417
9418         PR debug/48853
9419         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
9420         instead of mode as 3rd argument to recursive call.
9421         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
9422         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
9423         VOIDmode.
9424         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
9425         don't give up if mode is Pmode and mem_mode is not VOIDmode.
9426         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
9427         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
9428
9429 2011-05-05  Julian Brown  <julian@codesourcery.com>
9430
9431         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
9432         parenthesis in D-register case.
9433
9434 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
9435
9436         * opt-functions.awk (var_type_struct): Handle Enum options.
9437         * optc-gen.awk: Don't check range of variables of character type.
9438         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
9439         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
9440         rs6000_sdata_name, rs6000_explicit_options): Remove.
9441         (rs6000_option_override_internal): Check for -malign-power here.
9442         Use global_options_set instead of rs6000_explicit_options.
9443         (rs6000_parse_fpu_option): Remove.
9444         (rs6000_handle_option): Access variables via opts and opts_set
9445         pointers.  Use error_at and warning_at.  Add fall-through
9446         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
9447         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
9448         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
9449         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
9450         here.  Don't use rs6000_parse_fpu_option.
9451         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
9452         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
9453         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
9454         (mrecip=): Use Var.
9455         (mspe): Use Var and Save.
9456         (mtraceback=): Use Enum and Var.
9457         (rs6000_traceback_type): New Enum and EnumValue entries.
9458         (mfloat-gprs=): Use Enum, Var and Save.
9459         (rs6000_float_gprs): New Enum and EnumValue entries.
9460         (mlong-double-): use Var and Save.
9461         (msched-costly-dep=, minsert-sched-nops=): Use Var.
9462         (malign-): Use Enum and Var.
9463         (rs6000_alignment_flags): New Enum and EnumValue entries.
9464         (mfpu=): Use Enum.
9465         (fpu_type_t): New Enum and EnumValue entries.
9466         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9467         global_options_set instead of rs6000_explicit_options.
9468         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9469         global_options_set instead of rs6000_explicit_options.
9470         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9471         global_options_set instead of rs6000_explicit_options.
9472         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9473         global_options_set instead of rs6000_explicit_options.
9474         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
9475         global_options_set instead of rs6000_explicit_options.
9476         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9477         global_options_set instead of rs6000_explicit_options.
9478         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
9479         definition.
9480         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9481         global_options_set instead of rs6000_explicit_options.
9482         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
9483         (rs6000_cmodel): New Enum and EnumValue entries.
9484         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9485         global_options_set instead of rs6000_explicit_options.
9486         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
9487         (mtls-size=): Use Enum and Var.
9488         (rs6000_tls_size): New Enum and EnumValue entries.
9489
9490 2011-05-05  Michael Matz  <matz@suse.de>
9491
9492         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
9493         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
9494         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
9495         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
9496         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
9497         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
9498         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
9499         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
9500         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
9501         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
9502         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
9503         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
9504         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
9505         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
9506         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
9507         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
9508
9509 2011-05-05  Richard Guenther  <rguenther@suse.de>
9510
9511         * expmed.c (expand_variable_shift): Rename to ...
9512         (expand_shift_1): ... this.  Take an expanded shift amount.
9513         For rotates recurse directly not building trees for the shift amount.
9514         (expand_variable_shift): Wrap around expand_shift_1.
9515         (expand_shift): Adjust.
9516
9517 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
9518
9519         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
9520
9521 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
9522
9523         * tree.h (get_pending_sizes): Remove prototype.
9524         (put_pending_size): Likewise.
9525         (put_pending_sizes): Likewise.
9526         * stor-layout.c (pending_sizes): Delete.
9527         (get_pending_sizes): Likewise.
9528         (put_pending_size): Likewise.
9529         (put_pending_sizes): Likewise.
9530         (variable_size): Do not call put_pending_size and tidy up.
9531         * function.h (struct function): Remove dont_save_pending_sizes_p.
9532         * lto-streamer-in.c (input_function): Do not stream it.
9533         * lto-streamer-out.c (output_function): Likewise.
9534         * tree-inline.c (initialize_cfun): Do not copy it.
9535         * c-decl.c (store_parm_decls): Do not set it.
9536         * omp-low.c (create_task_copyfn): Likewise.
9537         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9538
9539 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
9540
9541         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
9542         conditions.
9543         (*movdf_internal): Ditto.
9544         (*movdf_internal_nointeger): Ditto.
9545         (*movsf_internal): Ditto.
9546
9547 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
9548
9549         * c-decl.c (finish_decl): Don't call get_pending_sizes.
9550         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
9551         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
9552         (c_variable_size): Remove.
9553         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
9554         call put_pending_sizes.
9555         (get_parm_info): Add parameter expr.  Use it to set
9556         arg_info->pending_sizes.
9557         (store_parm_decls): Use arg_info->pending_sizes instead or calling
9558         get_pending_sizes.
9559         * c-parser.c (c_parser_parms_declarator): Update call to
9560         c_parser_parms_list_declarator.
9561         (c_parser_parms_list_declarator): Take parameter expr.  Update
9562         call to push_parm_decl.  Update recursive call.  Don't call
9563         get_pending_sizes.  Update calls to get_parm_info.
9564         (c_parser_objc_method_definition): Update calls to
9565         c_parser_objc_method_decl and objc_start_method_definition.
9566         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
9567         (c_parser_objc_method_decl): Add parameter expr.  Update call to
9568         grokparm.
9569         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
9570         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
9571         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
9572
9573 2011-05-05  Michael Hope  <michael.hope@linaro.org>
9574
9575         PR pch/45979
9576         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
9577         __ARM_EABI__ hosts.
9578
9579 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9580
9581         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9582         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
9583         (spu_output_mi_thunk): New function.
9584
9585 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9586
9587         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
9588         targetm.asm_out.print_operand.
9589         * config/sol2.c: Include target.h.
9590
9591 2011-05-04  Jan Hubicka  <jh@suse.cz>
9592
9593         * ipa-inline.c (reset_edge_caches): New function.
9594         (update_caller_keys): Add check_inlinablity_for; do not
9595         reset edge caches; remove now unnecesary loop.
9596         (update_callee_keys): Add comments; reset node_growth_cache of callee.
9597         (update_all_callee_keys): Likewise.
9598         (inline_small_functions): Sanity check cache; update code
9599         recomputing it.
9600
9601 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
9602
9603         PR rtl-optimization/47612
9604         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
9605         as the last insn of the sequence to be moved.
9606
9607 2011-05-04  Tobias Burnus  <burnus@net-b.de>
9608
9609         PR fortran/48864
9610         * doc/invoke.texi (Ofast): Document that it
9611         enables Fortran's -fno-protect-parens.
9612
9613 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
9614
9615         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
9616
9617 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
9618
9619         * stor-layout.c (variable_size): Do not issue errors.
9620
9621 2011-05-04  Richard Guenther  <rguenther@suse.de>
9622
9623         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
9624         for array-ref indices.
9625         (tree_coverage_counter_addr): Likewise.
9626         (build_fn_info_type): Use size_int for index types.
9627         (build_gcov_info): Likewise.
9628
9629 2011-05-04  Richard Guenther  <rguenther@suse.de>
9630
9631         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
9632         to build_int_cst.
9633         * c-typeck.c (really_start_incremental_init): Use bitsize_int
9634         for constructor indices.
9635         (push_init_level): Likewise.
9636
9637 2011-05-04  Richard Guenther  <rguenther@suse.de>
9638
9639         * explow.c (promote_mode): Move variable declarations before code.
9640
9641 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
9642
9643         * tree.h (build_function_type_array): Declare.
9644         (build_varargs_function_type_array): Declare.
9645         (build_function_type_vec, build_varargs_function_type_vec): Define.
9646         * tree.c (build_function_type_array_1): New function.
9647         (build_function_type_array): New function.
9648         (build_varargs_function_type_array): New function.
9649
9650 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
9651
9652         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
9653         before setting STMT_VINFO_TYPE.
9654
9655 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9656
9657         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
9658         instead of spu_pass_by_reference.
9659
9660 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9661
9662         * calls.c (emit_library_call_value_1): Invoke
9663         promote_function_mode hook on libcall arguments.
9664         * explow.c (promote_function_mode, promote_mode): Handle TYPE
9665         argument being NULL.
9666         * targhooks.c (default_promote_function_mode): Lisewise.
9667         * config/s390/s390.c (s390_promote_function_mode): Likewise.
9668         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
9669
9670         * doc/tm.texi: Document that TYPE argument might be NULL.
9671
9672 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9673
9674         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
9675
9676 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9677
9678         From Bernd Schmidt
9679         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
9680
9681 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9682
9683         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
9684         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
9685         Move ...
9686         * mips-tfile.c: ... here.
9687         Don't include coretypes.h, tm.h, filenames.h.
9688         (saber_stop): Remove definition and all calls.
9689         [__SABER__]: Remove.
9690         (__LINE__): Remove default.
9691         (Size_t, Ptrdiff_t): Remove definitions.
9692         Replace by size_t, ptrdiff_t.
9693         [!MIPS_DEBUGGING_INFO]: Remove.
9694         (SHASH_SIZE, THASH_SIZE): Remove defaults.
9695         (progname): Add const.
9696         (STATIC): Remove.
9697         Replace all uses by static.
9698         (ALIGN_SYMTABLE_OFFSET): Remove default.
9699         * mips-tdump.c: Don't include coretypes.h, tm.h.
9700         Remove !MIPS_IS_STAB guard.
9701         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
9702         $(TM_H), filenames.h dependencies.
9703         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
9704
9705 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9706
9707         From Jie Zhang
9708         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
9709         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
9710
9711 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9712
9713         From Bernd Schmidt
9714         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
9715         account and save/restore RETS.
9716         (PROFILE_BEFORE_PROLOGUE): Define.
9717         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
9718         the push insn to use predecrement.
9719
9720 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
9721
9722         From Jie Zhang
9723         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
9724
9725 2011-05-04  Nick Clifton  <nickc@redhat.com>
9726
9727         * config/mn10300/mn10300.c: Include cfgloop.h.
9728         (DUMP): New macro.
9729         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
9730         Lcc or a FLcc insn into the instruction stream.
9731         (mn10300_block_contains_call): New function.  Returns true if the
9732         given basic block contains a CALL insn.
9733         (mn10300_loop_contains_call_insn): New function.  Returns true if
9734         the given loop contains a CALL insn.
9735         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
9736         to use the SETLB and Lcc or FLcc insns.
9737         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
9738         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
9739         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
9740         disable the SETLB optimization.
9741         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
9742         __SETLB__ or __NO_SETLB__.
9743         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
9744         (movsf_internal): Handle MDR register.
9745         (cmpsi): Make visible.
9746         (setlb): New pattern.
9747         (Lcc): New pattern.
9748         (FLcc): New pattern.
9749
9750 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
9751
9752         PR target/48860
9753         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
9754         for reg<->xmm moves.
9755         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
9756         (vec_concatv2di_rex64_sse): Ditto.
9757         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
9758         (*vec_extractv2di_1_rex64): Ditto.
9759
9760         Revert:
9761         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
9762
9763         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
9764         reg<->xmm moves.
9765         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
9766
9767 2011-05-04  Richard Guenther  <rguenther@suse.de>
9768
9769         * tree.h (int_const_binop): Remove notrunc argument.
9770         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
9771         create integer constants that are properly truncated.
9772         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
9773         (const_binop): Remove zero notrunc argument to int_const_binop.
9774         (size_binop_loc): Likewise.
9775         (fold_div_compare): Likewise.
9776         (maybe_canonicalize_comparison_1): Likewise.
9777         (fold_comparison): Likewise.
9778         (fold_binary_loc): Likewise.
9779         (multiple_of_p): Likewise.
9780         * expr.c (store_constructor): Likewise.
9781         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
9782         (maybe_fold_stmt_addition): Likewise.
9783         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
9784         * stor-layout.c (layout_type): Likewise.
9785         * tree-data-ref.c (tree_fold_divides_p): Likewise.
9786         * tree-sra.c (build_ref_for_offset): Likewise.
9787         (build_user_friendly_ref_for_offset): Likewise.
9788         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
9789         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
9790         * tree-ssa-loop-niter.c (inverse): Likewise.
9791         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
9792         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
9793         * tree-switch-conversion.c (check_range): Likewise.
9794         (build_constructors): Likewise.
9795         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
9796         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
9797         (extract_range_from_assert): Likewise.
9798         (vrp_int_const_binop): Likewise.
9799         (extract_range_from_binary_expr): Likewise.
9800         (extract_range_from_unary_expr): Likewise.
9801         (check_array_ref): Likewise.
9802         (find_case_label_range): Likewise.
9803         (simplify_div_or_mod_using_ranges): Likewise.
9804         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
9805         comparing case labels for merging.
9806
9807 2011-05-03  Mark Wielaard  <mjw@redhat.com>
9808
9809         * dwarf2out.c (debug_str_hash_forced): Removed.
9810         (gen_label_for_indirect_string): Removed.
9811         (get_debug_string_label): Removed.
9812         (AT_string_form): Generate label directly.
9813         (output_indirect_string): Test indirect_string_node for
9814         DW_FORM_strp instead of checking label and refcount.
9815         (prune_indirect_string): Removed.
9816         (prune_unused_types): Don't check debug_str_hash_forced or
9817         call prune_indirect_string.
9818
9819 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
9820
9821         PR other/48093
9822         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
9823
9824 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
9825
9826         PR debug/47994
9827         PR debug/47919
9828         * combine.c (try_combine): Skip debug insns at m_split tests.
9829
9830 2011-04-26  Mark Wielaard  <mjw@redhat.com>
9831
9832         PR42288
9833         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
9834         when info_section_emitted.
9835
9836 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
9837
9838         * config/mips/mips-opts.h: New.
9839         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
9840         to mips-opts.h.
9841         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
9842         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
9843         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
9844         via opts pointer.
9845         * config/mips/mips.h (enum mips_code_readable_setting): Move to
9846         mips-opts.h.
9847         (mips_abi, mips_code_readable): Don't declare.
9848         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
9849         (mabi=): Use Enum and Var.
9850         (mips_abi): New Enum and EnumValue entries.
9851         (mcode-readable=): Use Enum and Var.
9852         (mips_code_readable_setting): New Enum and EnumValue entries.
9853         (mr10k-cache-barrier=): Use Enum and Var.
9854         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
9855
9856 2011-05-03  Jan Hubicka  <jh@suse.cz>
9857
9858         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
9859         replace hash by pointer map.
9860         (cgraph_node_set_element_def, cgraph_node_set_element,
9861         const_cgraph_node_set_element, varpool_node_set_element_def,
9862         varpool_node_set_element, const_varpool_node_set_element): Remove.
9863         (free_cgraph_node_set, free_varpool_node_set): New function.
9864         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
9865         * tree-emutls.c: Free varpool node set.
9866         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
9867         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
9868         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
9869         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
9870         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
9871         Move here from ipa.c; implement using pointer_map
9872         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
9873         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
9874         debug_cgraph_node_set, varpool_node_set_new,
9875         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
9876         dump_varpool_node_set, debug_varpool_node_set):
9877         Move to ipa-uitls.c.
9878         * passes.c (ipa_write_summaries): Update.
9879
9880 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
9881
9882         From Mike Frysinger:
9883         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
9884         bf542/bf544/bf547/bf548/bf549.
9885
9886 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
9887
9888         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
9889
9890 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
9891
9892         From Bernd Schmidt:
9893         * config/bfin/bfin.md (MOVCC): New mode_macro.
9894         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
9895         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
9896         comments from generated assembly.
9897
9898 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
9899
9900         From Bernd Schmidt
9901         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
9902         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
9903         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
9904         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
9905         * config/bfin/lib1funcs.asm (___muldi3): New function.
9906
9907 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9908
9909         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
9910         build_function_type_list instead of build_function_type.
9911         Rearrange initialization of `args' to do so.
9912
9913 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9914
9915         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
9916         instead of build_function_type.
9917
9918 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9919
9920         * config/rs6000/rs6000.c (spe_init_builtins): Call
9921         build_function_type_list instead of build_function_type.
9922         (paired_init_builtins, altivec_init_builtins): Likewise.
9923         (builtin_function_type): Likewise.
9924
9925 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9926
9927         * config/sh/sh.c (sh_media_init_builtins): Call
9928         build_function_type_list instead of build_function_type.
9929
9930 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9931
9932         * config/sparc/sparc.c (sparc_file_end): Call
9933         build_function_type_list instead of build_function_type.
9934
9935 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9936
9937         * config/alpha/alpha.c (alpha_init_builtins): Call
9938         build_function_type_list instead of build_function_type.
9939
9940 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9941
9942         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
9943         build_function_type_list instead of build_function_type.
9944
9945 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9946
9947         * config/iq2000/i2000.c (iq2000_init_builtins): Call
9948         build_function_type_list instead of build_function_type.
9949         Delete `endlink' variable.
9950
9951 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9952
9953         * config/avr/avr.c (avr_init_builtins): Call
9954         build_function_type_list instead of build_function_type.
9955
9956 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9957
9958         * config/picochip/picochip.c (picochip_init_builtins): Call
9959         build_function_type_list instead of build_function_type.
9960         Delete `endlink' variable.
9961
9962 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
9963
9964         * config/bfin/bfin.c (bfin_init_builtins): Call
9965         build_function_type_list instead of build_function_type.
9966
9967 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
9968
9969         From Bernd Schmidt
9970         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
9971         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
9972
9973 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
9974
9975         From Jie Zhang:
9976         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
9977         libbffastfp overrides libgcc when -mfast-fp.
9978
9979 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
9980
9981         Originally from Bernd Schmidt
9982         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
9983         * config/bfin/bfin.c (override_options): Test it and error if
9984         TARGET_FDPIC.
9985
9986 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
9987
9988         Originally From Bernd Schmidt
9989         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
9990         FD-PIC.
9991
9992 2011-05-03  Jeff Law  <law@redhat.com>
9993
9994         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
9995         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
9996         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
9997         than accessing AUX field directly.  Free the AUX field before
9998         clearing it.
9999         (thread_block, thread_through_loop_header): Likewise.
10000         (thread_single_edge, mark_threaded_blocks): Likewise.
10001         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
10002         (register_jump_thread): Do not attempt to thread to a NULL edge.
10003
10004 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
10005
10006         * function.c (init_function_start): Call decide_function_section.
10007         * varasm.c (decide_function_section): New function.
10008         (assemble_start_function): When not using
10009         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
10010         or first_function_block_is_cold.
10011         * rtl.h (decide_function_section): Declare.
10012
10013 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
10014             Jakub Jelinek  <jakub@redhat.com>
10015
10016         PR target/48774
10017         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
10018         only succeed if req_mode is the same as set_mode.
10019
10020 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
10021
10022         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
10023         * genemit.c (gen_exp): Handle RETURN.
10024         * emit-rtl.c (verify_rtx_sharing): Likewise.
10025         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
10026         * rtl.c (copy_rtx): RETURN is shared.
10027         * rtl.h (enum global_rtl_index): Add GR_RETURN.
10028         (ret_rtx): New.
10029         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
10030         * config/s390/s390.c (s390_emit_epilogue): Likewise.
10031         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
10032         * config/cris/cris.c (cris_expand_return): Likewise.
10033         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
10034         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
10035         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
10036         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
10037         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
10038         Likewise.
10039         * config/v850/v850.c (expand_epilogue): Likewise.
10040         * config/bfin/bfin.c (bfin_expand_call): Likewise.
10041         * config/arm/arm.md (epilogue): Likewise.
10042         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
10043         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
10044         variable to ret_reg.
10045
10046 2011-05-03  Richard Guenther  <rguenther@suse.de>
10047
10048         PR lto/48846
10049         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
10050         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
10051         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
10052
10053 2011-05-03  Richard Guenther  <rguenther@suse.de>
10054
10055         * c-decl.c (grokdeclarator): Instead of looking at
10056         TREE_OVERFLOW check if the constant fits in the index type.
10057
10058 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10059
10060         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
10061         (vec_store_lanes<mode><mode>): Likewise.
10062
10063 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10064
10065         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
10066         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
10067         convert_optab_index values.
10068         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
10069         * genopinit.c (optabs): Initialize the new optabs.
10070         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
10071         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
10072         (expand_STORE_LANES): New functions.
10073         * tree.h (build_array_type_nelts): Declare.
10074         * tree.c (build_array_type_nelts): New function.
10075         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
10076         (vect_model_load_cost): Likewise.
10077         (vect_store_lanes_supported, vect_load_lanes_supported)
10078         (vect_record_strided_load_vectors): Declare.
10079         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
10080         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
10081         (vect_transform_strided_load): Split out statement recording into...
10082         (vect_record_strided_load_vectors): ...this new function.
10083         * tree-vect-stmts.c (create_vector_array, read_vector_array)
10084         (write_vector_array, create_array_ref): New functions.
10085         (vect_model_store_cost): Add store_lanes_p argument.
10086         (vect_model_load_cost): Add load_lanes_p argument.
10087         (vectorizable_store): Try to use store-lanes functions for
10088         interleaved stores.
10089         (vectorizable_load): Likewise load-lanes and loads.
10090         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
10091         to vect_model_store_cost.
10092         (vect_build_slp_tree): Likewise vect_model_load_cost.
10093
10094 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
10095
10096         * hooks.h (hook_bool_mode_uhwi_false): Declare.
10097         * hooks.c (hook_bool_mode_uhwi_false): New function.
10098         * target.def (array_mode_supported_p): New hook.
10099         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
10100         * doc/tm.texi: Regenerate.
10101         * stor-layout.c (mode_for_array): New function.
10102         (layout_type): Use it.
10103         * config/arm/arm.c (arm_array_mode_supported_p): New function.
10104         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
10105
10106 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
10107
10108         PR target/48723
10109         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
10110         for -fstack-check if the size to allocate is negative.
10111
10112 2011-05-02  Lawrence Crowl  <crowl@google.com>
10113
10114         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
10115         (timevar_cond_start): New for starting a timer only when it is not
10116         already running.
10117         (timevar_cond_stop): New for stopping a timer when it was not already
10118         running.
10119
10120         * timevar.c (timevar_stop): Enable start/stop timers to start again.
10121         (timevar_cond_start): New as above.
10122         (timevar_cond_stop): New as above.
10123
10124         * timevar.def: Add start/stop timers for compiler phases,
10125         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
10126         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
10127         and TV_PHASE_FINALIZE.
10128         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
10129         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
10130         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
10131         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
10132         Make unused TV_OVERLOAD into a start/stop timer.
10133
10134         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
10135         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
10136         to indicate that they are start/stop timers.
10137
10138         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
10139         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
10140         Move initialization to do_compile.
10141         (do_compile): Add initialization from above.
10142         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
10143
10144         * c-decl.c (c_write_global_declarations): Add start/stop of
10145         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
10146
10147         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
10148         or TV_PARSE_INLINE, as appropriate.
10149         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
10150         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
10151
10152 2011-05-02  Jason Merrill  <jason@redhat.com>
10153
10154         PR c++/40975
10155         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
10156
10157 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
10158
10159         PR c/35445
10160         * c-decl.c (finish_decl): Only create a composite if the types are
10161         compatible.
10162
10163 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
10164
10165         * config/fr30/fr30-protos.h (Mmode): Don't define.
10166         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
10167         definition where used.
10168         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
10169         define.  Expand definitions where used.
10170         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
10171         Expand definitions where used.
10172         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
10173         rx_function_arg, rx_function_arg_advance,
10174         rx_function_arg_boundary): Expand definitions of those macros.
10175         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
10176         definition where used.
10177
10178 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
10179
10180         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10181         reg<->xmm moves.
10182         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
10183         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
10184         with *movv2sf_internal_rex64_avx.
10185         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
10186         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
10187         Use %v prefix in insn mnemonic to handle TARGET_AVX.
10188         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
10189         "vex" in "prefix" attribute calculation.
10190         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
10191
10192 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
10193
10194         PR target/47951
10195         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
10196         inputs match the output.
10197
10198 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
10199
10200         PR target/47955
10201         * config/m68k/m68k.c (m68k_expand_prologue): Set
10202         current_function_static_stack_size.
10203
10204 2011-05-02   Jan Hubicka  <jh@suse.cz>
10205
10206         * lto-streamer.c (lto_streamer_cache_insert_1,
10207         lto_streamer_cache_lookup, lto_streamer_cache_create,
10208         lto_streamer_cache_delete): Use pointer map instead of hashtable.
10209         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
10210
10211 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
10212
10213         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
10214         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
10215         config/m68k/t-opts: New files.
10216         * config/m68k/m68k-tables.opt: New file (generated).
10217         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
10218         extra_options and m68k/t-opts to tmake_file.
10219         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
10220         (all_isas): Initialize using m68k-isas.def.
10221         (all_microarchs): Initialize using m68k-microarchs.def.
10222         (m68k_find_selection): Remove.
10223         (m68k_handle_option): Don't assert that global structures are in
10224         use.  Use error_at.  Access variables via opts pointer.  Don't
10225         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
10226         directly for -m68020-40 and -m68020-60.
10227         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
10228         m68k_tune_entry here.
10229         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
10230         to m68k-opts.h.
10231         (m68k_library_id_string): Remove declaration.
10232         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
10233         (m68k_library_id_string): New Variable.
10234         (march=, mcpu=, mtune=): Use Enum and Var.
10235
10236 2011-05-02  Richard Guenther  <rguenther@suse.de>
10237
10238         * varasm.c (output_constructor_regular_field): Compute zero-based
10239         index with double-ints.  Make sure to ICE instead of producing
10240         wrong code.
10241         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
10242         in asserts.  Properly use a signed type.
10243
10244 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
10245
10246         * config/i386/sse.md (V): New mode iterator.
10247         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
10248         TARGET_SSE2.
10249         (V_256): Rename from AVX256MODE.
10250         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
10251         condition to all users.
10252         (VF1): Ditto.
10253         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
10254         condition to all users.
10255         (VF_128): Make V4SF mode unconditional.
10256         (VF_256): Rename from AVX256MODEF2P.
10257         (VI4F_128): Rename from SSEMODE4S.
10258         (VI8F_128): Rename from SSEMODE2D.
10259         (VI4F_256): Rename from AVX256MODE8P.
10260         (VI8F_256): Rename from AVX256MODE4P.
10261         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
10262         (ssescalarmodesuffix): Remove SF and DF modes.
10263         (SSEMODE124): Remove.
10264         (SSEMODE1248): Ditto.
10265         (SSEMODEF2P): Ditto.
10266         (AVXMODEF2P): Ditto.
10267         (AVXMODEFDP): Ditto.
10268         (AVXMODEFSP): Ditto.
10269         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
10270         unconditional.
10271         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
10272         unconditional.
10273         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
10274         xop_pcmov_<mode>256.  Use V mode iterator.
10275
10276         Adjust RTX patterns globally for renamed mode attributes.
10277
10278 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10279
10280         * haifa-sched.c (sched_emit_insn): Emit insn before first
10281         non-scheduled insn.  Inform back-end about new insn.  Add
10282         new insn to scheduled_insns list.
10283
10284 2011-05-02  Richard Guenther  <rguenther@suse.de>
10285
10286         PR tree-optimization/48822
10287         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
10288         (process_scc): Indicate which iteration we start.
10289
10290 2011-05-02  Jan Hubicka  <jh@suse.cz>
10291
10292         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
10293         (lto_section_overrun): New.
10294         * lto-section-out.c (append_block): Rename to ...
10295         (lto_append_block): ... this one; export.
10296         (lto_output_1_stream): Move lto lto-streamer.h
10297         (lto_output_data_stream): Update.
10298         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
10299         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
10300         functions.
10301
10302 2011-05-02  Richard Guenther  <rguenther@suse.de>
10303
10304         * tree.c (tree_code_counts): New global array.
10305         (record_node_allocation_statistics): Count individual tree codes.
10306         (dump_tree_statistics): Dump individual code stats.
10307
10308 2011-05-01  Jan Hubicka  <jh@suse.cz>
10309
10310         * ipa-inline.c (caller_growth_limits): Fix thinko when
10311         looking for largest stack frame.
10312         * ipa-inline.h (dump_inline_summary): Declare.
10313         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
10314         on stack usage.
10315         (dump_inline_summary): Export.
10316         (debug_inline_summary): Declare as DEBUG_FUNCTION.
10317
10318 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
10319
10320         * reginfo.c (memory_move_cost): Change rclass argument type form
10321         'enum reg_class' to reg_class_t.
10322         * reload.h (memory_move_cost): Update prototype.
10323         * postreload.c reload_cse_simplify_set): Change type dclass var to
10324         reg_class_t.
10325         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
10326         Update prototype.
10327         (ira_allocate_and_set_costs): Change aclass argument type form
10328         'enum reg_class' to reg_class_t.
10329         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
10330         Change aclass argument type to reg_class_t.
10331         (update_conflict_hard_reg_costs): Change type aclass and pref vars
10332         to reg_class_t.
10333         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
10334         memory_move_cost call.
10335
10336         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
10337         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
10338         Change type tmp var to reg_class_t.
10339
10340 2011-04-30  Jan Hubicka  <jh@suse.cz>
10341
10342         * ipa-inline.c (can_inline_edge_p): Disregard limits when
10343         inlining into function with flatten attribute.
10344         (want_inline_small_function_p): Be more realistic about inlining
10345         cold calls where callee size grows.
10346
10347 2011-04-30  Jan Hubicka  <jh@suse.cz>
10348
10349         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
10350         flags.
10351
10352 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
10353
10354         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
10355         PRINT_OPERAND_PUNCT_VALID_P): Remove.
10356         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
10357         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
10358         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10359         (print_operand): Rename to...
10360         (sparc_print_operand): ...this. Make static. Adjust
10361         sparc_print_operand function call.
10362         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
10363         functions.
10364
10365 2011-04-30  Jan Hubicka  <jh@suse.cz>
10366
10367         PR middle-end/48752
10368         * ipa-inline.c (early_inliner): Disable when doing late
10369         addition of function.
10370
10371 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
10372
10373         * dwarf2out.c (get_address_mode): New inline.
10374         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
10375         if not dwarf_strict emit
10376         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
10377         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
10378         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
10379         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
10380         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
10381         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
10382         mem_loc_descriptor callers.
10383         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10384         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
10385         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
10386         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
10387         (base_types): New variable.
10388         (get_base_type_offset, calc_base_type_die_sizes,
10389         base_type_for_mode, mark_base_types, base_type_cmp,
10390         move_marked_base_types): New functions.
10391         (calc_die_sizes): Assert that die_offset is 0 or equal to
10392         next_die_offset.
10393         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
10394         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
10395         callers.  If not dwarf_strict, call mem_loc_descriptor even for
10396         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
10397         (gen_subprogram_die): Don't give up on call site parameters
10398         with non-integral or large integral modes.  Adjust
10399         mem_loc_descriptor callers.
10400         (prune_unused_types): Call prune_unused_types_mark on base_types
10401         vector entries.
10402         (resolve_addr): Call mark_base_types.
10403         (dwarf2out_finish): Call move_marked_base_types.
10404
10405         PR tree-optimization/48809
10406         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
10407         type.
10408         (gen_inbound_check): Don't compute index_expr - range_min in utype
10409         again, instead reuse SSA_NAME initialized in build_arrays.
10410         Remove two useless gsi_for_stmt calls.
10411
10412 2011-04-29  Jeff Law  <law@redhat.com>
10413
10414         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
10415
10416 2011-04-29  Martin Jambor  <mjambor@suse.cz>
10417
10418         * cgraph.h (cgraph_postorder): Remove declaration.
10419         * ipa-utils.h (ipa_free_postorder_info): Declare.
10420         (ipa_reverse_postorder): Likewise.
10421         * cgraphunit.c: Include ipa-utils.h.
10422         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
10423         * ipa-inline.c: Include ipa-utils.h.
10424         (ipa_inline): Update call to ipa_reverse_postorder.
10425         * ipa-pure-const.c (propagate_pure_const): Update call to
10426         ipa_reduced_postorder and ipa_print_order.  Call
10427         ipa_free_postorder_info to clean up.
10428         (propagate_nothrow): Likewise.
10429         * ipa-reference.c (propagate): Removed a useless call to
10430         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
10431         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
10432         * ipa.c: Include ipa-utils.h.
10433         (ipa_profile): Update call to ipa_reverse_postorder.
10434         (cgraph_postorder): Moved to...
10435         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
10436         (ipa_utils_print_order): Renamed to ipa_print_order.
10437         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
10438         comments.
10439         (ipa_free_postorder_info): New function.
10440         * passes.c: Include ipa-utils.h.
10441         (do_per_function_toporder): Update call to ipa_reverse_postorder.
10442         (ipa_write_summaries): Likewise.
10443         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
10444         (cgraphunit.o): Likewise.
10445         (ipa.o): Likewise.
10446         (ipa-inline.o): Likewise.
10447
10448 2011-04-29  Jan Hubicka  <jh@suse.cz>
10449
10450         * gcc.dg/tree-ssa/inline-10.c: New testcase.
10451         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
10452         * ipa-inline.h (clause_t): Turn into unsigned int.
10453         * ipa-inline-analysis.c (add_clause): Do more simplification.
10454         (and_predicates): Shortcut more cases.
10455         (predicates_equal_p): Move forward; check that clauses are properly
10456         ordered.
10457         (or_predicates): Shortcut more cases.
10458         (edge_execution_predicate): Rewrite as...
10459         (set_cond_stmt_execution_predicate): ... this function; handle
10460         __builtin_constant_p.
10461         (set_switch_stmt_execution_predicate): New .
10462         (compute_bb_predicates): New.
10463         (will_be_nonconstant_predicate): Update TODO.
10464         (estimate_function_body_sizes): Use compute_bb_predicates
10465         and free them later, always try to estimate if stmt is constant.
10466         (estimate_time_after_inlining, estimate_size_after_inlining):
10467         Gracefully handle optimized out edges.
10468         (read_predicate): Fix off by one error.
10469
10470 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10471
10472         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
10473
10474 2011-04-27  Xinliang David Li  <davidxl@google.com>
10475
10476         * tree-profile.c (init_ic_make_global_vars): Set
10477         tls attribute on ic vars.
10478         * coverage.c (coverage_end_function): Initialize
10479         function_list with zero.
10480
10481 2011-04-29  Richard Guenther  <rguenther@suse.de>
10482
10483         * builtins.c (fold_builtin_classify_type): Use integer_type_node
10484         for the type of the result.
10485         (fold_builtin_isascii): Likewise.
10486         (fold_builtin_toascii): Use integer_type_node where appropriate.
10487         (fold_builtin_logb): Likewise.
10488         (fold_builtin_frexp): Likewise.
10489         (fold_builtin_strstr): Likewise.
10490         (fold_builtin_strpbrk): Likewise.
10491         (fold_builtin_fputs): Likewise.
10492         (fold_builtin_sprintf): Likewise.
10493         (fold_builtin_snprintf): Likewise.
10494         (fold_builtin_printf): Likewise.
10495         (do_mpfr_remquo): Use a proper type for the assigned constant.
10496         (do_mpfr_lgamma_r): Likewise.
10497         * dwarf2out.c (resolve_one_addr): Use size_int.
10498         * except.c (init_eh): Likewise.
10499         (assign_filter_values): Use integer_type_node for filter values.
10500         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
10501         indices.
10502         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
10503         for EH region numbers.
10504         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
10505         for the shift amount.
10506
10507 2011-04-29  Richard Guenther  <rguenther@suse.de>
10508
10509         * expr.h (expand_shift): Rename to ...
10510         (expand_variable_shift): ... this.
10511         (expand_shift): Take a constant shift amount.
10512         * expmed.c (expand_shift): Rename to ...
10513         (expand_variable_shift): ... this.
10514         (expand_shift): New wrapper around expand_variable_shift.
10515         * expr.c (convert_move, emit_group_load_1, emit_group_store,
10516         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
10517         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
10518         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
10519         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
10520         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
10521         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
10522         emit_store_flag_1, emit_store_flag): Likewise.
10523         * builtins.c (expand_builtin_signbit): Likewise.
10524         * calls.c (load_register_parameters): Likewise.
10525         * function.c (assign_parm_setup_block): Likewise.
10526         * lower-subreg.c (resolve_shift_zext): Likewise.
10527         * optabs.c (widen_bswap, expand_abs_nojump,
10528         expand_one_cmpl_abs_nojump, expand_float): Likewise.
10529         * spu/spu.c (spu_expand_extv): Likewise.
10530         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
10531
10532 2011-04-29  Richard Guenther  <rguenther@suse.de>
10533
10534         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
10535         for the remapped region number.
10536         * predict.c (build_predict_expr): Use integer_type_node for the
10537         predict kind.
10538         * fold-const.c (fold_binary_loc): Use integer_type_node for
10539         the shift amount.  Use a proper type for the PLUS_EXPR operand.
10540
10541 2011-04-29  Michael Matz  <matz@suse.de>
10542
10543         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
10544         other trees that just builtins.
10545         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
10546
10547 2011-04-29  Richard Guenther  <rguenther@suse.de>
10548
10549         * tree-nested.c (get_trampoline_type): Use size_int.
10550         (get_nl_goto_field): Likewise.
10551         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
10552         for all indexes.
10553         (lower_eh_constructs_2): Likewise.
10554         (lower_resx): Likewise.
10555         (lower_eh_dispatch): Likewise.
10556         * tree-mudflap.c (mf_build_string): Use size_int.
10557         (mudflap_register_call): Use integer_type_node for the flag.
10558         (mudflap_enqueue_constant): Use size_int.
10559         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
10560         instead of rebuilding it.
10561
10562 2011-04-29  Richard Guenther  <rguenther@suse.de>
10563
10564         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
10565         Handle OBJ_TYPE_REF.
10566         (find_func_aliases_for_call): Use it more consistently.
10567
10568 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
10569
10570         * haifa-sched.c (last_nondebug_scheduled_insn): New.
10571         (rank_for_schedule): Use it.
10572         (schedule_block): Set it.
10573
10574 2011-04-28  David Li  <davidxl@google.com>
10575
10576         * tree.c (crc32_string): Use crc32_byte.
10577         (crc32_byte): New function.
10578         * tree.h (crc32_byte): New function.
10579         * gcov.c (read_graph_file): Handle new cfg_cksum.
10580         (read_count_file): Ditto.
10581         * profile.c (instrument_values): Ditto.
10582         (get_exec_counts): Ditto.
10583         (read_profile_edge_counts): Ditto.
10584         (compute_branch_probabilities): Ditto.
10585         (compute_value_histograms): Ditto.
10586         (branch_prob): Ditto.
10587         (end_branch_prob): Ditto.
10588         * coverage.c (read_counts_file): Ditto.
10589         (get_coverage_counts): Ditto.
10590         (tree_coverage_counter_addr): Ditto.
10591         (coverage_checksum_string): Ditto.
10592         (coverage_begin_output): Ditto.
10593         (coverage_end_function): Ditto.
10594         (build_fn_info_type): Ditto.
10595         (build_fn_info_value): Ditto.
10596         * libgcov.c (gcov_exit): Ditto.
10597         * gcov-dump.c (tag_function): Ditto.
10598         (compute_checksum): Remove.
10599
10600 2011-04-29  Alan Modra  <amodra@gmail.com>
10601
10602         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10603         unspec plus offset.  Tidy macho code.
10604
10605 2011-04-29  Martin Jambor  <mjambor@suse.cz>
10606
10607         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
10608         node instead of a decl.  Update all callers.
10609         * cgraph.h: Update declaration.
10610
10611 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
10612
10613         PR tree-optimization/48765
10614         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
10615         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
10616         to indicate if loop aware SLP is being used.  Scan the statements
10617         and update the vectorization factor according to the type of
10618         vectorization before statement analysis.
10619         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
10620         pass it to vect_analyze_loop_operations.
10621         (vectorizable_reduction): Set number of copies to 1 in case of pure
10622         SLP statement.
10623         * tree-vect-stmts.c (vectorizable_conversion,
10624         vectorizable_assignment, vectorizable_shift,
10625         vectorizable_operation, vectorizable_type_demotion,
10626         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
10627         Likewise.
10628         (vectorizable_condition): Move the check that it is not SLP
10629         vectorization before the number of copies check.
10630         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
10631         to vectorize the loop using SLP.
10632
10633 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
10634
10635         PR middle-end/48597
10636         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
10637         inline asm.
10638
10639 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
10640
10641         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
10642         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
10643         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
10644         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
10645         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
10646         linux*.h headers.
10647         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
10648         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10649         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10650         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10651         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10652         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
10653         REG_NAME.
10654         * config/i386/linux.h (REG_NAME): Don't define.
10655         * config/i386/linux64.h (REG_NAME): Don't define.
10656         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
10657         Undefine before defining.
10658
10659 2011-04-28  Jan Hubicka  <jh@suse.cz>
10660
10661         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
10662         nonconstant_names array.
10663         (estimate_function_body_sizes): Build nonconstant_names array; handle
10664         BUILT_IN_CONSTANT_P.
10665
10666 2011-04-28  Richard Guenther  <rguenther@suse.de>
10667
10668         PR bootstrap/48804
10669         Revert
10670         2011-04-28  Richard Guenther  <rguenther@suse.de>
10671
10672         * tree-ssa-structalias.c (solve_constraints): Build succ graph
10673         as late as possible.
10674
10675 2011-04-28  Richard Guenther  <rguenther@suse.de>
10676
10677         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
10678         (debug_constraint): Do it here.
10679         (dump_constraints): And here.
10680         (rewrite_constraints): And here.
10681         (dump_constraint_edge): Remove.
10682         (dump_constraint_graph): Rewrite to produce DOT output.
10683         (solve_constraints): Build succ graph as late as possible.
10684         Dump constraint graphs before and after solving.
10685
10686 2011-04-28  Richard Guenther  <rguenther@suse.de>
10687
10688         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
10689         New function split out from ...
10690         (find_func_aliases): ... here.  Call it.
10691         (find_func_aliases_for_call): Likewise.
10692
10693 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10694
10695         * internal-fn.h (internal_fn_name_array): Declare.
10696         (internal_fn_flags_array): Likewise.
10697
10698 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
10699
10700         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
10701         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
10702         Move from sse.md.
10703         (ssemodefsuffix): Remove.
10704         (ssevecmodesuffix): New mode attribute.
10705         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
10706         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
10707         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
10708         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
10709         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
10710         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
10711         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
10712         ssemodesuffix mode attribute.
10713         (float splitters): Use ssevecmodesuffix mode attribute.
10714         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
10715         (sseinsmode): Rename from avxvecmode.
10716         (avxsizesuffix): Rename from avxmodesuffix.
10717         (sseintvecmode): Rename from avxpermvecmode.
10718         (ssedoublevecmode): Rename from ssedoublesizemode.
10719         (ssehalfvecmode): Rename from avxhalfvecmode.
10720         (ssescalarmode): Rename from avxscalarmode.
10721         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
10722         templates for ssemodesuffix mode attribute.
10723         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
10724         mode attribute.
10725
10726         Adjust RTX patterns globally for renamed mode attributes.
10727
10728 2011-04-27  Jan Hubcika  <jh@suse.cz>
10729
10730         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
10731         * ipa-inline-analysis.c: Include alloc-pool.h.
10732         (edge_predicate_pool): New.
10733         (trye_predicate_p): New function
10734         (false_predicate_p): New function.
10735         (add_clause): Sanity check that false clauses are "optimized";
10736         never add clauses to predicate that is already known to be false.
10737         (and_predicate): Use flase_predicate_p.
10738         (evaulate_predicate): Rename to ...
10739         (evaluate_predicate): ... this one; update all callers; assert
10740         that false is not listed among possible truths.
10741         (dump_predicate): Use true_predicate_p.
10742         (account_size_time): Use false_predicate_p.
10743         (evaulate_conditions_for_edge): Rename to ...
10744         (evaluate_conditions_for_edge) ... this one.
10745         (edge_set_predicate): New function.
10746         (inline_edge_duplication_hook): Duplicate edge predicates.
10747         (inline_edge_removal_hook): Free edge predicates.
10748         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
10749         (dump_inline_summary): Update.
10750         (estimate_function_body_sizes): Set edge predicates.
10751         (estimate_calls_size_and_time): Handle predicates.
10752         (estimate_callee_size_and_time): Update.
10753         (remap_predicate): Add toplev_predicate; update comment.
10754         (remap_edge_predicates): New function.
10755         (inline_merge_summary): Compute toplev predicate; update.
10756         (read_predicate): New function.
10757         (read_inline_edge_summary): Use it.
10758         (inline_read_section): Likewise.
10759         (write_predicate): New function.
10760         (write_inline_edge_summary): Use it.
10761         (inline_write_summary): Likewise.
10762         (inline_free_summary): Free alloc pool and edge summary vec.
10763
10764 2011-04-27  Richard Guenther  <rguenther@suse.de>
10765
10766         * tree-ssa-structalias.c (changed_count): Remove.
10767         (changed): Use a bitmap.
10768         (unify_nodes): Adjust.
10769         (do_sd_constraint): Likewise.
10770         (do_ds_constraint): Likewise.
10771         (do_complex_constraint): Likewise.
10772         (solve_graph): Likewise.
10773
10774 2011-04-27  Jan Hubicka  <jh@suse.cz>
10775
10776         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
10777
10778 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
10779
10780         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
10781         (avx_vperm2f128_*_operand): Ditto.
10782         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
10783         Use avx_vpermilp_parallel in insn condition.
10784         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
10785         Use avx_vperm2f128_parallel in insn condition.
10786
10787 2011-04-27  Richard Guenther  <rguenther@suse.de>
10788
10789         * Makefile.in (tree-ssa-structalias.o): Remove
10790         gt-tree-ssa-structalias.h dependency.
10791         (GTFILES): Remove tree-ssa-structalias.c.
10792         * tree.c (allocate_decl_uid): New function.
10793         (make_node_stat): Use it.
10794         (copy_node_stat): Likewise.
10795         * tree.h (allocate_decl_uid): Declare.
10796         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
10797         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
10798         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
10799         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
10800         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
10801         (struct heapvar_map): Likewise.
10802         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
10803         heapvar_insert): Likewise.
10804         (make_heapvar_for): Rename to ...
10805         (make_heapvar): ... this.  Simplify.
10806         (fake_var_decl_obstack): New global var.
10807         (build_fake_var_decl): New function.
10808         (make_constraint_from_heapvar): Adjust.
10809         (handle_lhs_call): Likewise.
10810         (create_function_info_for): Likewise.
10811         (intra_create_variable_infos): Likewise.
10812         (init_alias_vars): Allocate fake_var_decl_obstack.
10813         (init_alias_heapvars, delete_alias_heapvars): Remove.
10814         (compute_points_to_sets): Do not call init_alias_heapvars.
10815         (ipa_pta_execute): Likewise.
10816         (delete_points_to_sets): Free fake_var_decl_obstack.
10817
10818 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10819
10820         * config/spu/divmovti4.c (union qword_UTItype): New data type.
10821         (si_from_UTItype, si_to_UTItype): New functions.
10822         (__udivmodti4): Use them to implement type-punning.
10823         * config/spu/multi3.c (union qword_TItype): New data type.
10824         (si_from_TItype, si_to_TItype): New functions.
10825         (__multi3): Use them to implement type-punning.
10826
10827 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10828
10829         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
10830
10831 2011-04-27  Jan Hubicka  <jh@suse.cz>
10832
10833         * ipa-prop.c (function_insertion_hook_holder): New holder.
10834         (ipa_add_new_function): New function.
10835         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
10836         Register/deregister holder.
10837
10838 2011-04-27  Richard Guenther  <rguenther@suse.de>
10839
10840         PR tree-optimization/48772
10841         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
10842
10843 2011-04-27  Richard Guenther  <rguenther@suse.de>
10844
10845         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
10846         TARGET_MEM_REF handling.
10847
10848 2011-04-27  Nick Clifton  <nickc@redhat.com>
10849
10850         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
10851         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
10852         (REG_CLASS_NAMES): Likewise.
10853         (REG_CLASS_CONTENTS): Likewise.
10854         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
10855         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
10856         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
10857         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
10858         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
10859         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
10860         duplicate register classes.
10861         (frv_class_likely_spilled_p): Likewise.
10862         (frv_register_move_cost): Likewise.
10863
10864         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
10865         end of the regno_reg_class array.
10866
10867 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
10868
10869         PR c/48742
10870         * c-typeck.c (build_binary_op): Don't wrap arguments if
10871         int_operands is true.
10872
10873 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
10874
10875         PR target/48767
10876         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
10877         targetm.calls.must_pass_in_stack for void type.
10878
10879 2011-04-26  Jan Hubicka  <jh@suse.cz>
10880
10881         * cgraphbuild.c (build_cgraph_edges): Update call
10882         of cgraph_create_edge and cgraph_create_indirect_edge.
10883         * cgraph.c (cgraph_create_edge_including_clones,
10884         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
10885         cgraph_update_edges_for_call_stmt_node): Do not take nest
10886         argument; do not initialize call_stmt_size/time.
10887         (dump_cgraph_node): Do not dump nest.
10888         (cgraph_clone_edge): Do not take loop_nest argument;
10889         do not propagate it; do not clone call_stmt_size/time.
10890         (cgraph_clone_node): Likewise.
10891         (cgraph_create_virtual_clone): Update.
10892         * cgraph.h (struct cgraph_edge): Remove
10893         call_stmt_size/call_stmt_time/loop_nest.
10894         (cgraph_create_edge, cgraph_create_indirect_edge,
10895         cgraph_create_edge_including_clones, cgraph_clone_node): Update
10896         prototype.
10897         * tree-emutls.c (gen_emutls_addr): Update.
10898         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
10899         loop_nest; handle indirect calls, too.
10900         (clone_inlined_nodes): Do not care about updating inline summaries.
10901         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
10902         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
10903         stream call_stmt_size/call_stmt_time/loop_nest.
10904         * ipa-inline.c (edge_badness): Update.
10905         (ipa_inline): dump summaries after inlining.
10906         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
10907         New.
10908         (inline_edge_summary): New function.
10909         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
10910         (inline_edge_removal_hook): Handle edge summaries.
10911         (inline_edge_duplication_hook): New hook.
10912         (inline_summary_alloc): Alloc hooks.
10913         (initialize_growth_caches): Do not register removal hooks.
10914         (free_growth_caches); Do not free removal hook.
10915         (dump_inline_edge_summary): New function.
10916         (dump_inline_summary): Use it.
10917         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
10918         (inline_update_callee_summaries): New function.
10919         (inline_merge_summary): Use it.
10920         (do_estimate_edge_time, do_estimate_edge_growth): Update.
10921         (read_inline_edge_summary): New function.
10922         (inline_read_section): Use it.
10923         (write_inline_edge_summary): New function.
10924         (inline_write_summary): Use it.
10925         (inline_free_summary): Free edge new holders.
10926         * tree-inline.c (copy_bb): Update.
10927
10928 2011-04-26  Jason Merrill  <jason@redhat.com>
10929
10930         * tree-eh.c (lower_try_finally_switch): Create the label along with
10931         the CASE_LABEL_EXPR.
10932
10933 2011-04-26  David S. Miller  <davem@davemloft.net>
10934             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10935
10936         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
10937         * configure: Regenerate.
10938
10939 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
10940
10941         PR target/48258
10942         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
10943         reduction.
10944         (VEC_reduc): New code iterator and splitters for vector reduction.
10945         (VEC_reduc_name): Ditto.
10946         (VEC_reduc_rtx): Ditto.
10947         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
10948         (reduc_<VEC_reduc_name>_v4sf): Ditto.
10949
10950         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
10951         support for extracting SF on VSX.
10952
10953         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
10954         generating xscvspdp.
10955         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
10956         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
10957         double add, minimum, maximum vector reduction.
10958         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
10959         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
10960         optimize double vector reduction.
10961         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
10962
10963 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
10964
10965         * config/fr30/fr30.h (inhibit_libc): Don't define.
10966         * config/m32r/m32r-protos.h: Correct comment.
10967         * config/v850/v850.h (GHS_default_section_names,
10968         GHS_current_section_names): Use tree, not union tree_node *.
10969
10970 2011-04-26  Xinliang David Li  <davidxl@google.com>
10971
10972         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
10973         * c-family/c-opts.c (c_common_handle_option): Set
10974         warn_maybe_uninitialized.
10975         * opts.c (common_handle_option): Ditto.
10976         * common.opt:  New option.
10977         * tree-ssa.c (warn_uninit): Add one more parameter.
10978         (warn_uninitialized_var): Pass warning code.
10979         * tree-flow.h: Interface change.
10980
10981 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10982
10983         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
10984         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
10985         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
10986
10987 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10988
10989         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
10990         * config/mips/mips.opt (mmips-tfile): Remove.
10991
10992         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
10993         mips-tdump reference to ...
10994         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
10995         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
10996         reference by Tru64 UNIX.
10997
10998 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
10999
11000         PR debug/48768
11001         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
11002         is error_mark_node, set value to NULL.
11003
11004         PR tree-optimization/48734
11005         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
11006         if return value from maybe_fold_*_comparsions isn't something
11007         the code is prepared to handle.
11008
11009 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
11010
11011         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
11012         mode check.
11013         (ext_QIreg_nomode_operands): Remove.
11014         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
11015         (*andsi_1): Ditto.
11016         (*andhi_1): Ditto.
11017
11018 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
11019
11020         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
11021
11022 2011-04-26  Richard Guenther  <rguenther@suse.de>
11023
11024         * c-typeck.c (build_unary_op): Do not expand array-refs via
11025         pointer arithmetic.  Only adjust qualifiers for function types.
11026
11027 2011-04-26  Richard Guenther  <rguenther@suse.de>
11028
11029         PR middle-end/48694
11030         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
11031         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
11032         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
11033         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
11034
11035 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
11036
11037         * doc/extend.texi: Document __underlying_type.
11038
11039 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
11040
11041         * config/rs6000/titan.md (automata_option "progress"): Remove.
11042
11043 2011-04-25  Jeff Law  <law@redhat.com>
11044
11045         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
11046
11047 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
11048
11049         * system.h (ENUM_BITFIELD): Remove.
11050
11051 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
11052             Eric Botcazou  <ebotcazou@adacore.com>
11053
11054         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
11055         for STORE_FLAG_VALUE==-1 case.
11056
11057 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
11058
11059         PR target/43804
11060         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
11061         LEGITIMATE_PIC_OPERAND_P.
11062
11063 2011-04-24  Jan Hubicka  <jh@suse.cz>
11064
11065         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
11066         WPA hack.
11067         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
11068         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
11069         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
11070         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
11071         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
11072         Sanity check predicate length.
11073         (remap_predicate): Likewise; sanity check jump functions.
11074         (inline_read_section, inline_write_summary): Sanity check
11075         predicate length.
11076
11077 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
11078
11079         PR other/48748
11080         * doc/extend.texi (Type Traits): Document __is_standard_layout,
11081         __is_literal_type, and __is_trivial; update throughout about
11082         possibly cv-qualified void types.
11083
11084 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
11085
11086         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
11087         testsuite and make it version agnostic.
11088
11089 2011-04-22  Jan Hubicka  <jh@suse.cz>
11090
11091         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
11092
11093 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
11094
11095         PR c/48685
11096         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
11097         to VOID_TYPE even around MODIFY_EXPR.
11098
11099 2011-04-22  Mike Stump  <mikestump@comcast.net>
11100
11101         * gensupport.c (read_md_rtx): Fix typo in comment.
11102         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
11103         comment.
11104
11105 2011-04-22  Jan Hubicka  <jh@suse.cz>
11106
11107         * gengtype.c (open_base_files): Add ipa-inline.h include.
11108         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
11109         ipa-prop.c; update all uses.
11110         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
11111         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
11112         merge summary of inlined function into former caller.
11113         * ipa-inline.c (max_benefit): Remove.
11114         (edge_badness): Compensate for removal of benefits.
11115         (update_caller_keys): Use
11116         reset_node_growth_cache/reset_edge_growth_cache.
11117         (update_callee_keys): Likewise.
11118         (update_all_callee_keys): Likewise.
11119         (inline_small_functions): Do not collect max_benefit; do not reset
11120         estimated_growth; call free_growth_caches and initialize_growth_caches.
11121         * ipa-inline.h (struct condition, type clause_t, struct predicate,
11122         struct size_time_entry): New structures.
11123         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
11124         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
11125         and estimated_growth.
11126         (edge_growth_cache_entry): New structure.
11127         (node_growth_cache, edge_growth_cache): New global vars.
11128         (estimate_growth): Turn into inline.
11129         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
11130         initialize_growth_caches, free_growth_caches): Declare.
11131         (estimate_edge_growth): Rewrite.
11132         (estimate_edge_time): Implement as inline cache lookup.
11133         (reset_node_growth_cache, reset_edge_growth_cache): New inline
11134         functions.
11135         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
11136         (NUM_CONDITIONS): New constant.
11137         (predicate_conditions): New enum.
11138         (IS_NOT_CONSTANT): New constant.
11139         (edge_removal_hook_holder): New var.
11140         (node_growth_cache, edge_growth_cache): New global vars.
11141         (true_predicate, single_cond_predicate, false_predicate,
11142         not_inlined_predicate, add_condition, add_clause, and_predicates,
11143         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
11144         dump_clause, dump_predicate, account_size_time,
11145         evaulate_conditions_for_edge): New functions.
11146         (inline_summary_alloc): Move to heap.
11147         (inline_node_removal_hook): Clear condition and entry vectors.
11148         (inline_edge_removal_hook): New function.
11149         (initialize_growth_caches, free_growth_caches): New function.
11150         (dump_inline_summary): Update.
11151         (edge_execution_predicate): New function.
11152         (will_be_nonconstant_predicate): New function.
11153         (estimate_function_body_sizes): Compute BB and constantness predicates.
11154         (compute_inline_parameters): Do not clear estimated_growth.
11155         (estimate_edge_size_and_time): New function.
11156         (estimate_calls_size_and_time): New function.
11157         (estimate_callee_size_and_time): New function.
11158         (remap_predicate): New function.
11159         (inline_merge_summary): New function.
11160         (do_estimate_edge_time): New function based on...
11161         (estimate_edge_time): ... this one.
11162         (do_estimate_edge_growth): New function.
11163         (do_estimate_growth): New function based on....
11164         (estimate_growth): ... this one.
11165         (inline_analyze_function): Analyze after deciding on jump functions.
11166         (inline_read_section): New function.
11167         (inline_read_summary): Use it.
11168         (inline_write_summary): Write all the new data.
11169         * ipa-prop.c (ipa_get_param_decl_index): Export.
11170         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
11171         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
11172         Declare.
11173         (ipa_get_lattice): Move here from ipa-cp.c
11174         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
11175         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
11176         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
11177         cgraph_edge_inlinable_p): Remove.
11178         * cgraphunit.c: Include ipainline.h
11179         (cgraph_process_new_functions): Update call of
11180         compute_inline_parameters.
11181
11182 2011-04-22  Richard Guenther  <rguenther@suse.de>
11183
11184         * tree.c (build_int_cst): Properly create canonicalized integer
11185         constants.
11186         (build_int_cst_type): Remove scary comments.
11187
11188 2011-04-22  Xinliang David Li  <davidxl@google.com>
11189
11190         * toplev.c (process_options): Enable -Werror=coverage-mismatch
11191         by default when -Wno-error is not specified.
11192         * opts-global.c (decode_options): Remove call to
11193         control_warning_options.
11194
11195 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
11196
11197         PR tree-optimization/48717
11198         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
11199         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
11200
11201 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
11202
11203         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
11204         definition where used.
11205
11206 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
11207
11208         PR c/48716
11209         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
11210         TREE_STATIC variables declared inside of some OpenMP construct.
11211
11212 2011-04-22  Martin Jambor  <mjambor@suse.cz>
11213
11214         PR middle-end/48585
11215         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
11216
11217 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
11218
11219         PR c/36750
11220         * c-typeck.c (pop_init_level): Do not warn about initializing
11221         with ` = {0}'.
11222
11223 2011-04-22  Alan Modra  <amodra@gmail.com>
11224
11225         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
11226         when returning call_cookie.
11227         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
11228         pointers, to functions with no more vector args than the current
11229         function, and some non-local calls for ABI_V4.
11230         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
11231         sibcall_nonlocal_aix64): Combine to ..
11232         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
11233         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
11234         (sibcall_value_nonlocal_aix<mode>): ..likewise.
11235         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
11236         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
11237         operand.
11238         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
11239         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
11240         sibcall_value_symbolic_64): Delete.
11241
11242 2011-04-21  Xinliang David Li  <davidxl@google.com>
11243
11244         * cgraph.h: Remove pid.
11245         * cgraph.c: Remove pid.
11246         * value-prof.c (init_node_map): New function.
11247         (del_node_map): New function.
11248         (find_func_by_funcdef_no): New function.
11249         (gimple_ic_transform): Call new function.
11250         * cgraphunit.c (cgraph_finalize_function): Remove pid.
11251         * function.c (get_last_funcdef_no): New function.
11252         * function.h (get_last_funcdef_no): New function.
11253         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
11254         to libgcov function.
11255         (tree-profiling): Call node map init and delete function.
11256
11257 2011-04-21  Ian Lance Taylor  <iant@google.com>
11258
11259         * godump.c (go_format_type): Use exported Go name for anonymous
11260         field name.
11261
11262 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11263
11264         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
11265         Call builtin_function_type_list instead of builtin_function_type.
11266         (UNARY, BINARY, TRINARY, QUAD): Likewise.
11267
11268 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11269
11270         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
11271         build_function_type_list instead of build_function_type.
11272         Delete variable `endlink'.
11273
11274 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11275
11276         * config/s390/s390.c (s390_init_builtins): Call
11277         build_function_type_list instead of build_function_type.
11278
11279 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
11280
11281         * config/ia64/ia64.c (ia64_init_builtins): Call
11282         build_function_type_list instead of builtin_function_type.
11283
11284 2011-04-21  Easwaran Raman  <eraman@google.com>
11285
11286         * cfgexpand.c (stack_var): Remove OFFSET...
11287         (add_stack_var): ...and its reference here...
11288         (expand_stack_vars): ...and here.
11289         (stack_var_cmp): Sort by descending order of size.
11290         (partition_stack_vars): Change heuristic.
11291         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
11292         (dump_stack_var_partition): Add newline after each partition.
11293
11294 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
11295             Jeff Law  <law@redhat.com>
11296
11297         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
11298         * gengtype.c (matching_file_name_substitute): Likewise.
11299
11300 2011-04-21  Richard Guenther  <rguenther@suse.de>
11301
11302         PR lto/48703
11303         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
11304
11305 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
11306
11307         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
11308
11309 2011-04-21  Richard Guenther  <rguenther@suse.de>
11310
11311         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
11312         file name.
11313
11314 2011-04-21  Richard Guenther  <rguenther@suse.de>
11315
11316         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
11317         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
11318         Use DECL_P, not SSA_VAR_P.
11319         (ptr_derefs_may_alias_p): Likewise.
11320         (ptr_deref_may_alias_ref_p_1): Likewise.
11321         (decl_refs_may_alias_p): Likewise.
11322         (refs_may_alias_p_1): Likewise.
11323         (ref_maybe_used_by_call_p_1): Likewise.
11324         (call_may_clobber_ref_p_1): Likewise.
11325         (indirect_ref_may_alias_decl_p): Assume indirect refrences
11326         are either MEM_REF or TARGET_MEM_REF.
11327         (indirect_refs_may_alias_p): Likewise.
11328         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
11329         for MEM_EXPR of indirect calls.
11330
11331 2011-04-21  Tristan Gingold  <gingold@adacore.com>
11332
11333         * vmsdbgout.c (write_srccorr): Compute file length from the string.
11334         (dst_file_info_struct): Remove flen field.
11335         (lookup_filename): Remove code that set flen field.
11336
11337 2011-04-21  Tristan Gingold  <gingold@adacore.com>
11338
11339         * config/ia64/ia64.c (ia64_start_function): Add a guard.
11340
11341 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
11342
11343         PR target/48708
11344         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
11345         vec_extract and vec_concat for non-SSE4_1 targets.
11346
11347 2011-04-21  Richard Guenther  <rguenther@suse.de>
11348
11349         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
11350         return statements.
11351
11352 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
11353
11354         * config/i386/cygming.h (union tree_node, TREE): Don't define or
11355         undefine.
11356         (FILE): Don't undefine.
11357
11358 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
11359
11360         * config/alpha/alpha.c (struct machine_function): Use rtx, not
11361         struct rtx_def *.
11362         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
11363         struct rtx_def *.
11364         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
11365         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
11366         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
11367         rtx_def *.
11368         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
11369         definitions where used.
11370         * config/microblaze/microblaze.h (struct microblaze_args): Use
11371         rtx, not struct rtx_def *.
11372         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
11373         rtx_def *.
11374         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
11375         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
11376         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
11377         not struct rtx_def *.
11378         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
11379         struct rtx_def *.
11380         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
11381         rtx_def *.
11382         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
11383
11384 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11385
11386         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
11387         operand_equal_p to compare DR_BASE_ADDRESSes.
11388         (vect_check_interleaving): Likewise.
11389
11390 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11391
11392         PR target/46329
11393         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
11394         for all Neon struct constants.
11395
11396 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11397
11398         * target.def (legitimate_constant_p): New hook.
11399         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
11400         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
11401         * doc/tm.texi: Regenerate.
11402         * hooks.h (hook_bool_mode_rtx_true): Declare.
11403         * hooks.c (hook_bool_mode_rtx_true): Define.
11404         * system.h (LEGITIMATE_CONSTANT_P): Poison.
11405         * calls.c (precompute_register_parameters): Replace uses of
11406         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
11407         (emit_library_call_value_1): Likewise.
11408         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
11409         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
11410         * ira-costs.c (scan_one_insn): Likewise.
11411         * recog.c (general_operand, immediate_operand): Likewise.
11412         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
11413         * reload1.c (init_eliminable_invariants): Likewise.
11414
11415         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
11416         mode argument.
11417         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
11418         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
11419         argument.
11420         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11421         * config/alpha/predicates.md (input_operand): Update call to
11422         alpha_legitimate_constant_p.
11423
11424         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
11425         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
11426         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
11427         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11428         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
11429         (arm_legitimate_constant_p): New functions.
11430         (arm_cannot_force_const_mem): Make static.
11431
11432         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
11433
11434         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
11435         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
11436         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
11437         instead of bfin_legitimate_constant_p.
11438         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
11439         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11440
11441         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
11442
11443         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
11444
11445         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
11446         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
11447         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11448         (frv_legitimate_constant_p): Make static.  Add a mode argument.
11449
11450         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
11451         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
11452         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
11453
11454         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
11455         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
11456         * config/i386/i386.c (legitimate_constant_p): Rename to...
11457         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
11458         argument.
11459         (ix86_cannot_force_const_mem): Update accordingly.
11460         (ix86_legitimate_address_p): Likewise.
11461         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11462         * config/i386/i386.md: Update commentary.
11463
11464         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
11465         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
11466         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11467         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
11468
11469         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
11470
11471         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
11472         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
11473         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11474         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
11475
11476         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
11477         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
11478         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
11479
11480         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
11481         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11482         (m32r_legitimate_constant_p): New function.
11483
11484         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
11485         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
11486         LEGITIMATE_CONSTANT_P.
11487         (LEGITIMATE_CONSTANT_P): Delete.
11488         * config/m68k/m68k.c (m68k_expand_prologue): Call
11489         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
11490         (m68k_legitimate_constant_p): New function.
11491         * config/m68k/m68k.md: Update comments.
11492
11493         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
11494         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11495         (mcore_legitimate_constant_p): New function.
11496
11497         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
11498         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
11499         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
11500         Add a mode argument.
11501         (mep_legitimate_address): Update accordingly.
11502         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11503
11504         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
11505         Delete.
11506         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
11507         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
11508         static.  Check OP's mode for VOIDmode.
11509         (microblaze_legitimate_constant_p): New function.
11510         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11511
11512         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
11513         * config/mips/mips.c (mips_legitimate_constant_p): New function.
11514         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
11515         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11516         * config/mips/predicates.md: Update comments.
11517
11518         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
11519         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
11520         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11521         (mmix_legitimate_constant_p): Make static, return a bool, and take
11522         a mode argument.
11523         (mmix_print_operand_address): Update accordingly.
11524
11525         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
11526         Delete.
11527         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
11528         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
11529         static.  Add a mode argument.
11530         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11531
11532         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
11533
11534         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
11535         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11536         (pa_legitimate_constant_p): New function.
11537
11538         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
11539
11540         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
11541         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11542         (pdp11_legitimate_constant_p): New function.
11543
11544         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
11545         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11546         (rs6000_legitimate_constant_p): New function.
11547
11548         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
11549         (rx_legitimate_constant_p): ...this.
11550         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
11551         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
11552         (rx_legitimate_constant_p): ...this.
11553         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11554         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
11555
11556         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
11557         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
11558         * config/s390/s390.c (legitimate_constant_p): Rename to...
11559         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
11560         and add a mode argument.
11561         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11562
11563         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
11564
11565         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
11566         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11567         (sh_legitimate_constant_p): New function.
11568
11569         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
11570         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
11571         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11572         (legitimate_constant_p): Rename to...
11573         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
11574         argument.
11575         (constant_address_p): Update accordingly.
11576
11577         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
11578         argument and return a bool.
11579         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
11580         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11581         (spu_legitimate_constant_p): Add a mode argument and return a bool.
11582         (spu_rtx_costs): Update accordingly.
11583         * config/spu/predicates.md (vec_imm_operand): Likewise.
11584
11585         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
11586
11587         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
11588         * config/v850/v850.c (v850_legitimate_constant_p): New function.
11589         (TARGET_LEGITIMATE_CONSTANT_P): Define.
11590
11591         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
11592         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
11593         * config/vax/vax.c (legitimate_constant_p): Likewise.
11594
11595         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
11596         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11597         (xtensa_legitimate_constant_p): New function.
11598
11599 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
11600
11601         * target.def (cannot_force_const_mem): Add a mode argument.
11602         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
11603         * doc/tm.texi: Regenerate.
11604         * hooks.h (hook_bool_mode_rtx_false): Declare.
11605         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
11606         (hook_bool_mode_const_rtx_true): Likewise.
11607         (hook_bool_mode_rtx_false): New function.
11608         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
11609         to be non-VOID.  Update call to cannot_force_const_mem.
11610         (find_reloads): Update accordingly.
11611         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
11612         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
11613         argument.
11614         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
11615         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
11616         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
11617         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
11618         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
11619         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
11620         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
11621         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
11622         (m68k_cannot_force_const_mem): ...this new function.
11623         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
11624         argument.
11625         (mips_const_insns, mips_legitimize_const_move): Update calls.
11626         (mips_secondary_reload_class): Likewise.
11627         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
11628         (pa_cannot_force_const_mem): ...this new function.
11629         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
11630         (rs6000_cannot_force_const_mem): ...this new function.
11631         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
11632         argument.
11633         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
11634         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
11635         to...
11636         (xtensa_cannot_force_const_mem): ...this new function.
11637
11638 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
11639
11640         * config/mips/mips.c (mips16_build_function_stub): Call
11641         build_function_type_list instead of build_function_type.
11642         (mips16_build_call_stub): Likewise.
11643
11644 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
11645
11646         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
11647         instead of build_function_type.
11648
11649 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
11650
11651         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
11652         instead of build_function_type.
11653
11654 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
11655
11656         PR target/48678
11657         * config/i386/i386.md (insv): Change operand 0 constraint to
11658         "register_operand".  Change operand 1 and 2 constraint to
11659         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
11660         * config/i386/sse.md (sse4_1_pinsrb): Export.
11661         (sse2_pinsrw): Ditto.
11662         (sse4_1_pinsrd): Ditto.
11663         (sse4_1_pinsrq): Ditto.
11664         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
11665         * config/i386/i386.c (ix86_expand_pinsr): New.
11666
11667 2011-04-20  Easwaran Raman  <eraman@google.com>
11668
11669         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
11670         containing union type only with -fstrict-aliasing.
11671
11672 2011-04-20  Jim Meyering  <meyering@redhat.com>
11673
11674         Remove useless if-before-free tests.
11675         * calls.c (expand_call, save_area): Likewise.
11676         * cfgcleanup.c (try_forward_edges): Likewise.
11677         * collect2.c (collect_execute): Likewise.
11678         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
11679         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
11680         * coverage.c (coverage_checksum_string): Likewise.
11681         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
11682         * cselib.c (cselib_init): Likewise.
11683         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
11684         (df_set_clean_cfg): Likewise.
11685         * function.c (free_after_compilation): Likewise.
11686         * gcc.c (do_spec_1, main): Likewise.
11687         * gcov.c (create_file_names): Likewise.
11688         * gensupport.c (identify_predicable_attribute): Likewise.
11689         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
11690         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
11691         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
11692         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
11693         * ipa-pure-const.c (local_pure_const): Likewise.
11694         * ipa-reference.c (propagate): Likewise.
11695         * ira-costs.c (free_ira_costs): Likewise.
11696         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
11697         * matrix-reorg.c (mat_free): Likewise.
11698         * prefix.c (get_key_value): Likewise.
11699         * profile.c (compute_value_histograms): Likewise.
11700         * reload1.c (free_reg_equiv): Likewise.
11701         * sched-deps.c (free_deps): Likewise.
11702         * sel-sched-ir.c (fence_clear): Likewise.
11703         * sese.c (set_rename, if_region_set_false_region): Likewise.
11704         * tree-data-ref.c (free_rdg): Likewise.
11705         * tree-eh.c (lower_try_finally): Likewise.
11706         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
11707         * tree-ssa-live.c (delete_var_map): Likewise.
11708         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
11709         * tree-ssa-pre.c (phi_trans_add): Likewise.
11710
11711 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
11712
11713         PR tree-optimization/48611
11714         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
11715         beyond ERT_MUST_NOT_THROW region.
11716
11717 2011-04-20  Catherine Moore  <clm@codesourcery.com>
11718
11719         * config/mips/mips.opt (mfix-24k): New.
11720         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
11721         * config/mips/mips.md (length): Increase by 4 for stores if
11722         fixing 24K errata.
11723         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
11724         all noreorder if fixing 24K errata.
11725         * doc/invoke.texi: Document mfix-24k.
11726
11727 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
11728
11729         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
11730         quad-word modes, reduce to 9-bit index range when above 1016 limit.
11731
11732 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
11733
11734         * config/arm/arm.c (arm_gen_constant): Move movw support ....
11735         (const_ok_for_op): ... to here.
11736
11737 2011-04-20  Kai Tietz  <ktietz@redhat.com>
11738
11739         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
11740         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
11741
11742 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
11743
11744         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
11745
11746 2011-04-20  Richard Guenther  <rguenther@suse.de>
11747
11748         PR tree-optimization/47892
11749         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
11750         are if-convertible.
11751
11752 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
11753
11754         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
11755
11756 2011-04-20  Tristan Gingold  <gingold@adacore.com>
11757
11758         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
11759
11760 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
11761
11762         PR target/18145
11763
11764         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
11765         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
11766         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
11767         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
11768         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
11769
11770         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
11771         New prototype.
11772
11773         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
11774         (avr_asm_named_section, avr_asm_output_aligned_common,
11775         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
11776         New functions to update...
11777         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
11778         (avr_asm_init_sections): Overwrite section callbacks for
11779         data_section, bss_section.
11780         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
11781         from here to...
11782         (avr_file_end): ...here.
11783
11784 2011-04-20  Richard Guenther  <rguenther@suse.de>
11785
11786         PR middle-end/48695
11787         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
11788         objects and types here.  Adjust for their offset before comparing.
11789
11790 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
11791
11792         * tree-vect-stmts.c (vectorizable_store): Only chain one related
11793         statement per copy.
11794
11795 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
11796
11797         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
11798         (GIMPLE_H): Include $(INTERNAL_FN_H).
11799         (OBJS-common): Add internal-fn.o.
11800         (internal-fn.o): New rule.
11801         * internal-fn.def: New file.
11802         * internal-fn.h: Likewise.
11803         * internal-fn.c: Likewise.
11804         * gimple.h: Include internal-fn.h.
11805         (GF_CALL_INTERNAL): New gf_mask.
11806         (gimple_statement_call): Put fntype into a union with a new
11807         internal_fn field.
11808         (gimple_build_call_internal): Declare.
11809         (gimple_build_call_internal_vec): Likewise.
11810         (gimple_call_same_target_p): Likewise.
11811         (gimple_call_internal_p): New function.
11812         (gimple_call_internal_fn): Likewise.
11813         (gimple_call_fntype): Return null for internal calls.
11814         (gimple_call_set_fntype): Assert that the function is not internal.
11815         (gimple_call_set_fn): Likewise.
11816         (gimple_call_set_fndecl): Likewise.
11817         (gimple_call_set_internal_fn): New function.
11818         (gimple_call_addr_fndecl): Handle null functions.
11819         (gimple_call_return_type): Likewise null types.
11820         * gimple.c (gimple_build_call_internal_1): New function.
11821         (gimple_build_call_internal): Likewise.
11822         (gimple_build_call_internal_vec): Likewise.
11823         (gimple_call_same_target_p): Likewise.
11824         (gimple_call_flags): Handle calls to internal functions.
11825         (gimple_call_fnspec): New function.
11826         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
11827         (gimple_has_side_effects): Handle null functions.
11828         (gimple_rhs_has_side_effects): Likewise.
11829         (gimple_call_copy_skip_args): Handle calls to internal functions.
11830         * cfgexpand.c (expand_call_stmt): Likewise.
11831         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
11832         * gimple-fold.c (gimple_fold_call): Handle null functions.
11833         (gimple_fold_stmt_to_constant_1): Don't fold
11834         calls to internal functions.
11835         * gimple-low.c (gimple_check_call_args): Handle calls to internal
11836         functions.
11837         * gimple-pretty-print.c (dump_gimple_call): Likewise.
11838         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
11839         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
11840         (do_warn_unused_result): Likewise.
11841         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
11842         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
11843         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
11844         the target of a call.
11845         (initialize_hash_element): Update accordingly.
11846         (hashable_expr_equal_p): Use gimple_call_same_target_p.
11847         (iterative_hash_hashable_expr): Handle calls to internal functions.
11848         (print_expr_hash_elt): Likewise.
11849         * tree-ssa-pre.c (can_value_number_call): Likewise.
11850         (eliminate): Handle null functions.
11851         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
11852         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
11853         (find_func_aliases): Likewise.
11854         * value-prof.c (gimple_ic_transform): Likewise.
11855         (gimple_indirect_call_to_profile): Likewise.
11856         * lto-streamer-in.c (input_gimple_stmt): Likewise.
11857         * lto-streamer-out.c (output_gimple_stmt): Likewise.
11858
11859 2011-04-19  Jan Hubicka  <jh@suse.cz>
11860
11861         * ipa-inline-transform.c (save_inline_function_body): Add comments.
11862         * ipa-inline.c (inline_small_functions): Compute summaries first,
11863         populate heap later.
11864
11865 2011-04-19  Jan Hubicka  <jh@suse.cz>
11866
11867         * cgraph.h (save_inline_function_body): Remove.
11868         * ipa-inline-transform.c: New file, broke out of...
11869         * ipa-inline.c: ... this one; Update toplevel comment.
11870         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
11871         make global.
11872         (update_noncloned_frequencies): Move to ipa-inline-transform.c
11873         (cgraph_mark_inline_edge): Rename to inline_call; move to
11874         ipa-inline-transform.c.
11875         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
11876         move to ipa-inline-transform.c
11877         (recursive_inlining, inline_small_functions, flatten_function,
11878         ipa_inline, inline_always_inline_functions,
11879         early_inline_small_functions): Update.
11880         (inline_transform): Move to ipa-inline-transform.c.
11881         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
11882         Declare.
11883         * Makefile.in (ipa-inline-transform.o): New file.
11884         * cgraphunit.c (save_inline_function_body): Move to
11885         ipa-inline-transform.c
11886
11887 2011-04-19  DJ Delorie  <dj@redhat.com>
11888
11889         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
11890         registers if we already know there aren't any.
11891         (m32c_emit_epilogue): Don't emit a barrier here.
11892         (m32c_emit_eh_epilogue): Likewise.
11893         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
11894         operands at expand time.
11895         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
11896         int" wchar type.
11897         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
11898         duplicates.  Provide aliases instead.
11899         * config/m32c/prologue.md (eh_return): Emit a barrier here.
11900         (eh_epilogue): Add a "(return)" here as a hint to other parts of
11901         the compiler.
11902
11903 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
11904
11905         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
11906         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
11907         (general_or_i64_p, sparc_register_move_cost): New function.
11908
11909 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11910
11911         * doc/install.texi (Configuration, --enable-threads): Remove mach.
11912         Add lynx, mipssde.  Sort table.
11913
11914 2011-04-19  Xinliang David Li  <davidxl@google.com>
11915
11916         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
11917         not negative.
11918
11919 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
11920
11921         PR target/48678
11922         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
11923         is a SUBREG with non-MODE_INT mode inside of it.
11924
11925 2011-04-19  Martin Jambor  <mjambor@suse.cz>
11926
11927         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
11928         also according to actual contants.
11929         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
11930         (gimple_fold_call): Use it.
11931         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
11932
11933 2011-04-19  Martin Jambor  <mjambor@suse.cz>
11934
11935         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
11936         non-pointer assignments.
11937
11938 2011-04-19  Martin Jambor  <mjambor@suse.cz>
11939
11940         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
11941         account anc_offset and otr_type from the indirect edge info.
11942         * ipa-prop.c (get_ancestor_addr_info): New function.
11943         (compute_complex_ancestor_jump_func): Assignment analysis moved to
11944         get_ancestor_addr_info, call it.
11945         (ipa_note_param_call): Do not initialize information about polymorphic
11946         calls, return the indirect call graph edge.  Remove the last
11947         parameter, adjust all callers.
11948         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
11949         parameters.  Initialize polymorphic information in the indirect edge.
11950
11951 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
11952
11953         PR lto/48148
11954         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
11955         the types if they have different enumeration identifiers.
11956
11957 2011-04-19  Jan Hubicka  <jh@suse.cz>
11958
11959         * cgraph.h (cgraph_optimize_for_size_p): Declare.
11960         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
11961         * predict.c (cgraph_optimize_for_size_p): Break out from ...
11962         (optimize_function_for_size_p) ... here.
11963
11964 2011-04-19  Richard Guenther  <rguenther@suse.de>
11965
11966         PR lto/48207
11967         * tree.c (free_lang_data): Do not reset the decl-assembler-name
11968         langhook.
11969
11970 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
11971
11972         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
11973         if DECL_NO_INLINE_WARNING_P is set on the function.
11974
11975 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
11976
11977         PR fortran/47976
11978         * reload1.c (inc_for_reload): Return void. All callers changed.
11979         (emit_input_reload_insns): Don't try to delete previous output
11980         reloads to a register, or record spill_reg_store for autoincs.
11981
11982 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
11983
11984         * gengtype.h: Updated copyright year.
11985         (struct input_file_st): Add inpisplugin field.
11986         (type_fileloc): New function.
11987         * gengtype.c
11988         (write_typed_struct_alloc_def): Add gcc_assert.
11989         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
11990         (write_typed_alloc_defns): Don't output for plugin files.
11991         (input_file_by_name): Clear inpisplugin field.
11992         (main): Set inpisplugin field for plugin files.
11993
11994 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
11995
11996         * gengtype-state.c (string_eq): New.
11997         (read_state): Use string_eq instead of strcmp when creating the
11998         state_ident_tab.
11999
12000 2011-04-19  Wei Guozhi  <carrot@google.com>
12001
12002         PR target/47855
12003         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
12004         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
12005         linkage.
12006         * config/arm/constraints.md (Uu): New constraint.
12007         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
12008
12009 2011-04-19  Tristan Gingold  <gingold@adacore.com>
12010
12011         * config.gcc (-*-*-*vms): Added.
12012         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
12013         definitions moved.
12014         * config/vms/vms-ld.c: New file.
12015         * config/vms/vms-ar.c: New file.
12016         * config/vms/t-vmsnative: New file.
12017
12018 2011-04-18  Xinliang David Li  <davidxl@google.com>
12019
12020         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
12021
12022 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
12023
12024         PR middle-end/48661
12025         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
12026         if TREE_TYPE (v) is non-NULL.
12027
12028         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
12029         gimple_get_virt_mehtod_for_binfo.
12030         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
12031         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
12032         callers.
12033         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12034
12035 2011-04-18  Michael Matz  <matz@suse.de>
12036             Steve Ellcey  <sje@cup.hp.com>
12037
12038         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
12039         use its mode as source mode if it isn't VOIDmode.
12040
12041 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
12042
12043         * doc/passes.texi: Fill crossref nodes.
12044
12045 2011-04-18  Jim Meyering  <meyering@redhat.com>
12046
12047         Fix doubled-word typos in comments and strings
12048         * config/alpha/vms-unwind.h: s/for for/for/
12049         * config/arm/unwind-arm.h: Likewise.
12050         * config/microblaze/microblaze.c: Likewise.
12051         * config/sh/constraints.md: s/in in/in/
12052         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
12053
12054 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
12055
12056         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
12057         (AVX_FLOAT_MODE_P): Ditto.
12058         (AVX128_VEC_FLOAT_MODE_P): Ditto.
12059         (AVX256_VEC_FLOAT_MODE_P): Ditto.
12060         (AVX_VEC_FLOAT_MODE_P): Ditto.
12061         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
12062         (UNSPEC_MASKSTORE): Ditto.
12063         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
12064         Merge from <sse>_movmsk<ssemodesuffix> and
12065         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
12066         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
12067         iterator.
12068         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
12069         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
12070         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
12071
12072 2011-04-18  Jan Hubicka  <jh@suse.cz>
12073
12074         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
12075
12076         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
12077         (want_inline_function_called_once_p): Break out the logic from
12078         ipa_inline.
12079         (edge_badness): Ensure that profile is not misupdated.
12080         (lookup_recursive_calls): Prioritize by call frequencies.
12081         (inline_small_functions): Move program size estimates here;
12082         actually process whole queue even when unit growth has been
12083         met. (to properly compute inline_failed reasons and for the
12084         case unit size decrease.) Revisit comments on recursive inlining.
12085         (ipa_inline): Remove unit summary code; first inline hot calls
12086         of functions called once, cold calls next.
12087         (order, nnodes): Remove unused variables.
12088         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
12089         (GTFILES): Remove ipa-inline.c
12090         * sel-sched.c (fill_insns): Silence uninitialized var warning.
12091
12092 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12093
12094         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
12095
12096 2011-04-18  Jie Zhang  <jie@codesourcery.com>
12097             Richard Earnshaw  <rearnsha@arm.com>
12098
12099         * arm.c (neon_builtin_type_bits): Remove.
12100         (typedef enum neon_builtin_mode): New.
12101         (T_MAX): Don't define.
12102         (typedef enum neon_builtin_datum): Remove bits, codes[],
12103         num_vars and base_fcode.  Add mode, code and fcode.
12104         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
12105         VAR10): Change accordingly.
12106         (neon_builtin_data[]): Change accordingly
12107         (arm_init_neon_builtins): Change accordingly.
12108         (neon_builtin_compare): Remove.
12109         (locate_neon_builtin_icode): Remove.
12110         (arm_expand_neon_builtin): Change accordingly.
12111
12112         * arm.h (enum arm_builtins): Move to ...
12113         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
12114
12115         * arm.c (arm_builtin_decl): Declare.
12116         (TARGET_BUILTIN_DECL): Define.
12117         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
12118         (arm_builtin_decls[]): New.
12119         (arm_init_neon_builtins): Store builtin declarations in
12120         arm_builtin_decls[].
12121         (arm_init_tls_builtins): Likewise.
12122         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
12123         (arm_builtin_decl): New.
12124
12125 2011-04-18  Richard Guenther  <rguenther@suse.de>
12126
12127         * tree.c (upper_bound_in_type): Build properly canonicalized
12128         INTEGER_CSTs.
12129         (lower_bound_in_type): Likewise.
12130
12131 2011-04-18  Richard Guenther  <rguenther@suse.de>
12132
12133         * gimple.h (gimple_call_addr_fndecl): New function.
12134         (gimple_call_fndecl): Use it.
12135         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
12136         for direct calls.
12137         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
12138         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
12139
12140 2011-04-18  Richard Guenther  <rguenther@suse.de>
12141
12142         PR middle-end/48650
12143         * tree.c (build_string): STRING_CST is now derived from tree_typed.
12144
12145 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12146
12147         PR lto/48492
12148         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
12149         DECL_IN_CONSTANT_POOL without RTL.
12150
12151 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
12152             Ira Rosen  <ira.rosen@linaro.org>
12153
12154         PR target/48252
12155         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
12156         to match neon_vzip/vuzp/vtrn_internal.
12157         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
12158         outputs explicitly dependent on both inputs.
12159         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
12160
12161 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
12162
12163         PR tree-optimization/48616
12164         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
12165         whether the shift is by scalar or vector based on whether all SLP
12166         scalar stmts have the same rhs.
12167
12168 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
12169
12170         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
12171         memory operands.
12172
12173 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
12174
12175         PR target/43700
12176         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
12177         registers.
12178
12179 2011-04-17  Jan Hubicka  <jh@suse.cz>
12180
12181         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
12182         * cgrpahunit.c (cgraph_finalize_function): Do not set
12183         finalized_by_frontend.
12184         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12185         finalized_by_frontend.
12186
12187 2011-04-17  Jan Hubicka  <jh@suse.cz>
12188
12189         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
12190         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
12191         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
12192         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
12193         method.
12194         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
12195         gimple-fold.c
12196         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
12197
12198 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
12199
12200         PR lto/48538
12201         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
12202         is non-null before accessing it.
12203         (input_cgraph): Remove trailing spaces.
12204
12205 2011-04-17  Revital Eres  <revital.eres@linaro.org>
12206
12207         * params.def (sms-min-sc): New param flag.
12208         * modulo-sched.c (sms_schedule): Use it.
12209         * doc/invoke.texi (sms-min-sc): Document it.
12210
12211 2011-04-17  Jan Hubicka  <jh@suse.cz>
12212
12213         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
12214         present, also set gimple_call_set_cannot_inline.
12215         * ipa-inline.c: Update toplevel comment.
12216         (MAX_TIME): Remove.
12217         (cgraph_clone_inlined_nodes): Fix linebreaks.
12218         (cgraph_check_inline_limits): Restructure to ...
12219         (caller_growth_limits): ... this one; be more tolerant
12220         on growth in nested inline chains; add explanatory comment;
12221         fix stack accounting thinko introduced by previous patch.
12222         (cgraph_default_inline_p): Remove.
12223         (report_inline_failed_reason): New function.
12224         (can_inline_edge_p): New function.
12225         (can_early_inline_edge_p): New function.
12226         (leaf_node_p): Move upwards in file.
12227         (want_early_inline_function_p): New function.
12228         (want_inline_small_function_p): New function.
12229         (want_inline_self_recursive_call_p): New function.
12230         (cgraph_edge_badness): Rename to ...
12231         (edge_badness) ... this one; fix linebreaks.
12232         (update_edge_key): Update call of edge_baddness; add
12233         detailed dump about queue updates.
12234         (update_caller_keys): Use can_inline_edge_p and
12235         want_inline_small_function_p.
12236         (cgraph_decide_recursive_inlining): Rename to...
12237         (recursive_inlining): Use can_inline_edge_p and
12238         want_inline_self_recursive_call_p; simplify and remove no longer
12239         valid FIXME.
12240         (cgraph_set_inline_failed): Remove.
12241         (add_new_edges_to_heap): Use can_inline_edge_p and
12242         want_inline_small_function_p.
12243         (cgraph_decide_inlining_of_small_functions): Rename to ...
12244         (inline_small_functions): ... this one; cleanup; use
12245         can/want predicates; cleanup debug ouput; work edges till fibheap
12246         is exhausted and do not stop once unit growth is reached; remove
12247         later loop processing remaining edges.
12248         (cgraph_flatten): Rename to ...
12249         (flatten_function): ... this one; use can_inline_edge_p
12250         and can_early_inline_edge_p predicates.
12251         (cgraph_decide_inlining): Rename to ...
12252         (ipa_inline): ... this one; remove unreachable nodes before
12253         inlining functions called once; simplify the pass.
12254         (cgraph_perform_always_inlining): Rename to ...
12255         (inline_always_inline_functions): ... this one; use
12256         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
12257         (cgraph_decide_inlining_incrementally): Rename to ...
12258         (early_inline_small_functions): ... this one; simplify
12259         using new predicates; cleanup; make dumps prettier.
12260         (cgraph_early_inlining): Rename to ...
12261         (early_inliner): newer inline regular functions into always-inlines;
12262         fix updating of call stmt summaries.
12263         (pass_early_inline): Update for new names.
12264         (inline_transform): Fix formating.
12265         (gate_cgraph_decide_inlining): Rename to ...
12266         (pass_ipa_inline): ... this one.
12267         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
12268         * ipa-inline-analysis.c (dump_inline_summary): Update.
12269         (compute_inline_parameters): Do not compute disregard_inline_limits;
12270         look for mismatching arguments.
12271         (estimate_growth): Fix handlig of non-trivial self recursion.
12272         (inline_read_summary): Do not read info->disregard_inline_limits.
12273         (inline_write_summary): Do not write info->disregard_inline_limits.
12274         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
12275         and move all checks into can_inline_edge_p predicate; re-enable code
12276         comparing optimization levels.
12277         (expand_call_inline): Do not test inline_forbidden_into_p.
12278         * Makefile.in (ipa-inline.o): Update arguments.
12279
12280 2011-04-17  Revital Eres  <revital.eres@linaro.org>
12281
12282         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
12283
12284 2011-04-17  Revital Eres  <revital.eres@linaro.org>
12285
12286         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
12287
12288 2011-04-17  Michael Matz  <matz@suse.de>
12289
12290         PR tree-optimization/48622
12291         PR lto/48645
12292         * ipa-inline-analysis.c (inline_read_summary): Read size/time
12293         in same order as they're written.
12294
12295 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12296
12297         * config/pa/predicates.md: Reorganize and simplify predicates.
12298         Eliminate duplicate code checks.
12299         (arith_operand): Rename to arith14_operand
12300         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
12301         * config/pa/pa.md: Use renamed operands.
12302         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
12303         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
12304         arith11_operand, adddi3_operand, indexed_memory_operand,
12305         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
12306         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
12307         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
12308         move_dest_operand, move_src_operand, prefetch_cc_operand,
12309         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
12310         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
12311         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
12312         div_operand, int5_operand, movb_comparison_operator,
12313         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
12314         arith_double_operand, ireg_operand, lhs_lshift_operand,
12315         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
12316         integer_store_memory_operand): Likewise.
12317         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
12318         (integer_store_memory_operand, read_only_operand,
12319         function_label_operand, borx_reg_operand,
12320         non_hard_reg_operand): Likewise.
12321         (eq_neq_comparison_operator): Delete unused operator.
12322         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
12323         function_label_operand.
12324         (emit_move_sequence): Likewise.
12325
12326 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
12327
12328         * config/i386/sse.md (sseunpackmode): New mode attribute.
12329         (ssepackmode): Ditto.
12330         (vec_pack_trunc_<mode>): Macroize expander from
12331         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
12332         (vec_unpacks_lo_<mode>): Macroize expander from
12333         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12334         (vec_unpacks_hi_<mode>): Macroize expander from
12335         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12336         (vec_unpacku_lo_<mode>): Macroize expander from
12337         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12338         (vec_unpacku_hi_<mode>): Macroize expander from
12339         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12340         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
12341         ix86_expand_sse4_unpack.
12342         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
12343
12344 2011-04-16  Jan Hubicka  <jh@suse.cz>
12345
12346         * cgraphbuild.c: Include ipa-inline.h.
12347         (reset_inline_failed): Use initialize_inline_failed.
12348         * cgraph.c: Include ipa-inline.h.
12349         (cgraph_create_node_1): Do not initialize estimated_growth.
12350         (initialize_inline_failed): More to ipa-inline-analysis.c
12351         (dump_cgraph_node): Do not dump inline flags.
12352         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
12353         and disregard_inline_limits flags.
12354         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
12355         time, size, estimated_growth.
12356         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
12357         Update.
12358         * cgraphunit.c (cgraph_decide_is_function_needed): Use
12359         DECL_DISREGARD_INLINE_LIMITS.
12360         (cgraph_analyze_function): Do not initialize
12361         node->local.disregard_inline_limits.
12362         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12363         inlinable, versionable and disregard_inline_limits.
12364         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
12365         cgraph_check_inline_limits, cgraph_default_inline_p,
12366         cgraph_edge_badness, update_caller_keys, update_callee_keys,
12367         add_new_edges_to_heap): Update.
12368         (cgraph_decide_inlining_of_small_function): Update; set
12369         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
12370         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
12371         cgraph_decide_inlining_incrementally): Update.
12372         * ipa-inline.h (inline_summary): Add inlinable, versionable,
12373         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
12374         time, size and estimated_growth parameters.
12375         (estimate_edge_growth): Update.
12376         (initialize_inline_failed): Declare.
12377         * ipa-split.c: Include ipa-inline.h
12378         (execute_split_functions): Update.
12379         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
12380         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
12381         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
12382         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
12383         estimated_growth to INT_MIN.
12384         (inline_node_duplication_hook): Likewise.
12385         (dump_inline_summary): Dump new fields.
12386         (compute_inline_parameters): Update.
12387         (estimate_edge_time, estimate_time_after_inlining,
12388         estimate_size_after_inlining, estimate_growth, inline_read_summary,
12389         inline_write_summary):
12390         (initialize_inline_failed): Move here from cgraph.c.
12391         * tree-sra.c: Include ipa-inline.h.
12392         (ipa_sra_preliminary_function_checks): Update.
12393         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
12394         ipa-inline.h.
12395
12396 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
12397
12398         * config/i386/sse.md (V16): New mode iterator.
12399         (VI1, VI8): Ditto.
12400         (AVXMODEQI, AVXMODEDI): Remove.
12401         (sse2, sse3): New mode attribute.
12402         (mov<mode>): Use V16 mode iterator.
12403         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
12404         (push<mode>1): Use V16 mode iterator.
12405         (movmisalign<mode>): Ditto.
12406         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12407         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
12408         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12409         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
12410         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
12411         avx_movdqu<avxmodesuffix>.
12412         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
12413         *avx_movdqu<avxmodesuffix>.
12414         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
12415         avx_lddqu<avxmodesuffix>.
12416         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
12417         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
12418         avx_movnt<AVXMODEDI:mode>.
12419         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
12420         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
12421
12422 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
12423
12424         PR target/48629
12425         * haifa-sched.c (prune_ready_list, schedule_block): Use
12426         sched_pressure_p rather than flag_sched_pressure.
12427
12428 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
12429
12430         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
12431         cgraph_get_node instead of cgraph_get_create_node.
12432
12433 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
12434
12435         * cfgexpand.c (expand_debug_expr): Use
12436         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
12437
12438 2011-04-15  Michael Matz  <matz@suse.de>
12439
12440         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
12441         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
12442         * function.c (gimplify_parameters): Ditto.
12443         * gimplify.c (gimplify_vla_decl): Ditto.
12444
12445         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
12446         (gimple_call_set_alloca_for_var): New inline function.
12447         (gimple_call_alloca_for_var_p): Ditto.
12448         * gimple.c (gimple_build_call_from_tree): Remember
12449         CALL_ALLOCA_FOR_VAR_P state.
12450         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
12451
12452         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
12453         calls if they were for VLA objects.
12454
12455 2011-04-15  Martin Jambor  <mjambor@suse.cz>
12456
12457         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
12458         of ADR_EXPRs.
12459
12460 2011-04-15  Martin Jambor  <mjambor@suse.cz>
12461
12462         PR middle-end/48601
12463         * tree-emutls.c (lower_emutls_function_body): Call
12464         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
12465         result is non-NULL.
12466
12467 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
12468
12469         * c-decl.c (detect_field_duplicates): Call
12470         objc_detect_field_duplicates instead of objc_get_interface_ivars.
12471
12472 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
12473
12474         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
12475         * gimple.c (gimple_asm_clobbers_memory_p): Define.
12476         * ipa-pure-const.c (check_stmt): Call it.
12477         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
12478
12479 2011-04-15  Richard Guenther  <rguenther@suse.de>
12480
12481         PR tree-optimization/48290
12482         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
12483         Properly decide inhibiting propagation based on the valueized
12484         operand.  Do loop-closed SSA form preserving here ...
12485         (init_copy_prop): ... not here.
12486
12487 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
12488
12489         PR target/48612
12490         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
12491         (*ieee_smax<mode>3): Likewise.
12492
12493 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12494
12495         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
12496         Replace match_operand with match_dup for the third operand in
12497         these expanders.
12498
12499 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
12500
12501         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
12502         to track processing of conditionals.  Update all callers.
12503         (try_combine, simplify_if_then_else): Update.
12504
12505 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
12506
12507         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
12508         -fsched-pressure.
12509
12510 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
12511
12512         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
12513         instead of match_operand for operand 3.
12514
12515 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
12516
12517         * recog.h (insn_operand_data): Add an "allows_mem" field.
12518         * genoutput.c (output_operand_data): Initialize it.
12519         * optabs.c (maybe_legitimize_operand_same_code): New function.
12520         (maybe_legitimize_operand): Use it when matching the original
12521         op->value.
12522
12523 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12524
12525         * gimplify.c: Fix issues in comments throughout.
12526         (voidify_wrapper_expr): Fix long line.
12527         (build_stack_save_restore): Likewise.
12528         (gimplify_loop_expr): Likewise.
12529         (gimplify_compound_lval): Likewise.
12530         (gimplify_init_ctor_eval): Likewise.
12531         (gimplify_modify_expr_rhs): Likewise.
12532         (omp_notice_threadprivate_variable): Likewise.
12533
12534 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12535
12536         * cfgexpand.c (expand_call_stmt): Convert the function type to the
12537         original one if this is not a builtin function.
12538
12539 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
12540
12541         PR target/48605
12542         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
12543         offset it as needed based on top 2 bits in operands[3], change
12544         MEM mode to SFmode and mask those 2 bits away from operands[3].
12545
12546 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
12547
12548         * c-parser.c (c_parser_objc_protocol_definition): Updated for
12549         change from objc_declare_protocols() to objc_declare_protocol().
12550
12551 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
12552
12553         * config/i386/sse.md (sse4_1): New mode attribute.
12554         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
12555         avx_blend<ssemodesuffix><avxmodesuffix> and
12556         sse4_1_blend<ssemodesuffix> using VF mode iterator.
12557         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
12558         avx_blendv<ssemodesuffix><avxmodesuffix> and
12559         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
12560         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
12561         avx_dp<ssemodesuffix><avxmodesuffix> and
12562         sse4_1_dp<ssemodesuffix> using VF mode iterator.
12563         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
12564         (sse4_1_packusdw): Merge with *avx_packusdw.
12565         (sse4_1_pblendvb): Merge with *avx_pblendvb.
12566         (sse4_1_pblendw): Merge with *avx_pblendw.
12567         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
12568         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
12569         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
12570         VF mode iterator.
12571         (sse4_1_round<ssescalarmodesuffix>): Merge with
12572         *avx_round<ssescalarmodesuffix>.
12573         (aesenc): Merge with *avx_aesenc.
12574         (aesenclast): Merge with *avx_aesenclast.
12575         (aesdec): Merge with *avx_aesdec.
12576         (aesdeclast): Merge with *avx_aesdeclast.
12577         (pclmulqdq): Merge with *pclmulqdq.
12578         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
12579         New predicate.
12580         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
12581
12582 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
12583
12584         PR middle-end/48608
12585         * cfgexpand.c (get_decl_align_unit): Renamed to ...
12586         (align_local_variable): This.  Update DECL_ALIGN.
12587         (add_stack_var): Updated.
12588         (expand_one_stack_var): Likewise.
12589
12590 2011-04-14  Richard Guenther  <rguenther@suse.de>
12591
12592         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
12593         Remove.
12594         (dse_initialize_block_local_data, dse_leave_block,
12595         record_voperand_set, get_stmt_uid): Likewise.
12596         (dse_possible_dead_store_p): Allow any kind of killing stmt.
12597         (dse_optimize_stmt): Remove voperand set handling code.
12598         Simplify and improve to handle any kind of killing stmt.
12599         (dse_record_phi): Remove.
12600         (dse_enter_block): Simplify.
12601         (tree_ssa_dse): Likewise.
12602         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
12603
12604 2011-04-14  Jan Hubicka  <jh@suse.cz>
12605
12606         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
12607         * cgraph.h (struct inline_summary): Move to ipa-inline.h
12608         (cgraph_local_info): Remove inline_summary.
12609         * ipa-cp.c: Include ipa-inline.h.
12610         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
12611         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
12612         accesor.
12613         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
12614         (input_overwrite_node): Do not set inline summary.
12615         (input_node): Do not stream inline summary.
12616         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
12617         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
12618         growth; we do not have inline parameters computed for that anyway.
12619         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
12620         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
12621         (inline_summary_t): New type and VECtor.
12622         (debug_inline_summary, dump_inline_summaries): Declare.
12623         (inline_summary): Use VOCtor.
12624         (estimate_edge_growth): Kill hack computing call stmt size directly.
12625         * lto-section-in.c (lto_section_name): Add inline section.
12626         * ipa-inline-analysis.c: Include lto-streamer.h
12627         (node_removal_hook_holder, node_duplication_hook_holder): New holders
12628         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
12629         (inline_summary_vec): Define.
12630         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
12631         dump_inline_summaries): New functions.
12632         (estimate_function_body_sizes): Properly compute size/time of outgoing
12633         calls.
12634         (compute_inline_parameters): Alloc inline_summary; do not compute
12635         size/time of incomming calls.
12636         (estimate_edge_time): Avoid missing time summary hack.
12637         (inline_read_summary): Read inline summary info.
12638         (inline_write_summary): Write inline summary info.
12639         (inline_free_summary): Free all hooks and inline summary vector.
12640         * lto-streamer.h: Add LTO_section_inline_summary section.
12641         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
12642         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
12643
12644 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12645
12646         * tree-vectorizer.h (vect_strided_store_supported): Add a
12647         HOST_WIDE_INT argument.
12648         (vect_strided_load_supported): Likewise.
12649         (vect_permute_store_chain): Return void.
12650         (vect_transform_strided_load): Likewise.
12651         (vect_permute_load_chain): Delete.
12652         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
12653         count argument.  Check that the count is a power of two.
12654         (vect_strided_load_supported): Likewise.
12655         (vect_permute_store_chain): Return void.  Update after above changes.
12656         Assert that the access is supported.
12657         (vect_permute_load_chain): Likewise.
12658         (vect_transform_strided_load): Return void.
12659         * tree-vect-stmts.c (vectorizable_store): Update calls after
12660         above interface changes.
12661         (vectorizable_load): Likewise.
12662         (vect_analyze_stmt): Don't check for strided powers of two here.
12663
12664 2011-04-14  Richard Guenther  <rguenther@suse.de>
12665
12666         PR tree-optimization/48590
12667         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
12668         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
12669         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
12670         BUILT_IN_STACK_SAVE.
12671         * tree-ssa-dce.c (propagate_necessity): Handle
12672         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
12673
12674 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
12675
12676         * c-parser.c (c_parser_objc_class_declaration): Updated call to
12677         objc_declare_class.
12678
12679 2011-04-14  Richard Guenther  <rguenther@suse.de>
12680
12681         * tree.h (get_object_alignment_1): Declare.
12682         * builtins.c (get_object_alignment_1): Split out worker from ...
12683         (get_object_alignment): ... here.
12684         * fold-const.c (get_pointer_modulus_and_residue): Use
12685         get_object_alignment_1.
12686
12687 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12688
12689         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
12690         type parameter.
12691         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
12692         parameter.  Generalise code to handle arrays as well as vectors.
12693         (vect_setup_realignment): Update accordingly.
12694         * tree-vect-stmts.c (vectorizable_store): Likewise.
12695         (vectorizable_load): Likewise.
12696
12697 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12698
12699         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
12700         within the per-copy loop.
12701
12702 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12703
12704         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
12705         in the dump file.
12706
12707 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
12708
12709         * doc/options.texi (Negative): Explicitly mention that the
12710         Negative chain must be circular.
12711
12712 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
12713
12714         * function.h (block_chainon): Declare.
12715         * function.c (block_chainon): Define.
12716
12717 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
12718             Eric Weddington  <eric.weddington@atmel.com>
12719             Georg-Johann Lay  <avr@gjlay.de>
12720
12721         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
12722         New Includes
12723         (avr_init_builtins, avr_expand_builtin,
12724         avr_expand_delay_cycles, avr_expand_unop_builtin,
12725         avr_expand_binop_builtin ): New functions.
12726         (avr_builtin_id): New enum
12727         (struct avr_builtin_description): New struct
12728         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
12729         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
12730
12731         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
12732         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
12733         UNSPECV_DELAY_CYCLES): new enumeration values
12734         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
12735         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
12736         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
12737         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
12738         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
12739         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
12740         "fmulsu"): New insns
12741
12742         * config/avr/avr-c.c: fix line endings
12743         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
12744         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
12745         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
12746         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
12747         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
12748
12749         * doc/extend.texi (AVR Built-in Functions): New node
12750         (Target Builtins): Add documentation of AVR
12751         built-in functions.
12752
12753 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
12754
12755         PR target/44643
12756         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
12757         alone. Error if non-const data has attribute progmem.
12758
12759 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
12760
12761         * tree.h (struct tree_constructor): Include tree_typed instead of
12762         tree_common.
12763         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
12764         TS_TYPED instead of TS_COMMON.
12765
12766 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
12767
12768         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
12769         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
12770         (sse2_psadbw): Merge with *avx_psadbw.
12771         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
12772         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
12773         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
12774         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
12775         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
12776         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
12777         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
12778         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
12779         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
12780         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
12781         (ssse3_palignrti): Merge with *avx_palignrti.
12782
12783 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
12784
12785         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
12786         * tree-ssanames.c (fini_ssanames): VEC_free it.
12787         (make_ssa_name_fn): Update for VECness of free_ssanames.
12788         (release_ssa_name, release_dead_ssa_names): Likewise.
12789         * tree.h (struct tree_ssa_name): Include tree_typed instead of
12790         tree_common.
12791         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
12792         TS_TYPED instead of TS_COMMON.
12793
12794 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
12795
12796         * postreload-gcse.c (gcse_after_reload_main): Add calls to
12797         statistics_counter_event.
12798         * tree-ssa-copyrename.c (stats): Define.
12799         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
12800         statistics_counter_event.
12801         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
12802         (bswap_stats, widen_mul_stats): Define.
12803         (insert_reciprocals): Increment rdivs_inserted.
12804         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
12805         rfuncs_inserted.  Add calls to statistics_counter_event.
12806         (execute_cse_sincos_1): Increment inserted.
12807         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
12808         statistics_counter_event.
12809         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
12810         of bswap_stats.  Add calls to statistics_counter_event.
12811         (convert_mult_to_widen): Increment widen_mults_inserted.
12812         (convert_plusminus_to_widen): Increment maccs_inserted.
12813         (convert_mult_to_fma): Increment fmas_inserted.
12814         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
12815         calls to statistics_counter_event.
12816
12817 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
12818
12819         PR rtl-optimization/48455
12820         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
12821         `temp_costs->mem_cost'.
12822
12823 2011-04-13  Jan Hubicka  <jh@suse.cz>
12824
12825         * ipa-inline.h: New file.
12826         * ipa-inline-analysis.c: New file. Broken out of ...
12827         * ipa-inline.c: ... this file; update toplevel comment;
12828         include ipa-inline.h
12829         (inline_summary): Move to ipa-inline.h
12830         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
12831         ipa-inline-analysis.c.
12832         (cgraph_estimate_time_after_inlining): Rename to
12833         estiamte_time_after_inlining; move to ipa-inline-analysis.c
12834         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
12835         to estimate_edge_growth.
12836         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
12837         rename to estimate_size_after_inlining.
12838         (cgraph_mark_inline_edge): Update for new naming convention.
12839         (cgraph_check_inline_limits): Likewise.
12840         (cgraph_edge_badness): Likewise.
12841         (cgraph_decide_recursive_inlining): Likewise.
12842         (cgraph_decide_inlining_of_small_functions): Likewise.
12843         (cgraph_decide_inlining_incrementally): Likewise.
12844         (cgraph_estimate_growth): Rename to estimate_growth; move to
12845         ipa-inline-analysis.c.
12846         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
12847         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
12848         (compute_inline_parameters): Likewise.
12849         (compute_inline_parameters_for_current): Likewise.
12850         (pass_inline_parameters): Likewise.
12851         (inline_indirect_intraprocedural_analysis): Likewise.
12852         (analyze_function): Rename to inline_analyze_function; likewise.
12853         (add_new_function): Move to ipa-inline-analysis.c.
12854         (inline_generate_summary): Likewise.
12855         (inline_read_summary): Likewise.
12856         (inline_write_summary): Likewise.
12857         * Makefile.in (ipa-inline-analysis.c): New file.
12858
12859 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12860
12861         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
12862         * configure: Regenerate.
12863
12864 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
12865
12866         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
12867         instead of tree_common.
12868         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
12869         Likewise.
12870         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
12871         TS_TYPED rather than TS_COMMON.
12872         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
12873
12874 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
12875
12876         PR target/45263
12877         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
12878         r20 around calls of __tablejump_elpm__
12879
12880 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
12881
12882         PR middle-end/48591
12883         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
12884         NULL.
12885         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
12886
12887 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
12888
12889         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
12890         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
12891         (cfi_vec): New typedef.
12892         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
12893         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
12894         (cie_cfi_vec): New static variable.
12895         (cie_cfi_head): Delete.
12896         (add_cfi): Accept a cfi_vec * as first argument. All callers and
12897         declaration changed. Use vector rather than list operations.
12898         (new_cfi): Don't initialize the dw_cfi_next field.
12899         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
12900         rather than list operations.
12901         (lookup_cfa): Use vector rather than list operations.
12902         (output_cfis): New argument upto. Accept a cfi_vec rather than
12903         a dw_cfi_ref list head as argument. All callers changed.
12904         Iterate over the vector using upto as a maximum index.
12905         (output_all_cfis): New static function.
12906         (output_fde): Use vector rather than list operations. Use the
12907         new upto argument for output_cfis rather than manipulating a
12908         list.
12909         (dwarf2out_begin_prologue): Change initializations to match
12910         new struct members.
12911         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
12912         from the vector length rather than searching for the end of a list.
12913         Use output_all_cfis.
12914         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
12915
12916 2011-04-13  Nick Clifton  <nickc@redhat.com>
12917
12918         * config/rx/rx.md (movmemsi): Do not use this pattern when
12919         volatile pointers are involved.
12920
12921 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
12922
12923         * config/i386/sse.md (pinsrbits): Remove.
12924         (sse2_packsswb): Merge with *avx_packsswb.
12925         (sse2_packssdw): Merge with *avx_packssdw.
12926         (sse2_packuswb): Merge with *avx_packuswb.
12927         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
12928         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
12929         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
12930         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
12931         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
12932         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
12933         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
12934         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
12935         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
12936         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
12937         (sse2_loadld): Merge with *avx_loadld.
12938         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
12939         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
12940         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
12941         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
12942         (vec_concatv2di): Merge with *vec_concatv2di_avx.
12943
12944 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
12945
12946         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
12947         calling TREE_CHAIN.
12948         * print-tree.c (print_node): Likewise.
12949         * tree-inline.c (copy_tree_r): Likewise.
12950         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
12951         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
12952         instead of TS_COMMON.
12953         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
12954         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
12955         (copy_node_stat): Zero TREE_CHAIN only if necessary.
12956         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
12957         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
12958         ...and these...
12959         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
12960         * tree.h: ...here.
12961         (TREE_CHAIN): Check for a TS_COMMON structure.
12962         (TREE_TYPE): Check for a TS_TYPED structure.
12963
12964 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
12965
12966         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
12967         cgraph_get_create_node instead of cgraph_node.
12968
12969 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
12970
12971         * c-parser.c (c_parser_initelt): Updated call to
12972         objc_build_message_expr.
12973         (c_parser_postfix_expression): Likewise.
12974
12975 2011-04-12  Kai Tietz  <ktietz@redhat.com>
12976
12977         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
12978         MASK_MS_BITFIELD_LAYOUT bit.
12979
12980 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
12981
12982         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
12983         assert it is always true.
12984         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
12985         moves.
12986
12987 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
12988
12989         * c-parser.c (c_lex_one_token): Rewritten conditional used when
12990         compiling Objective-C to be more efficient.
12991
12992 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
12993
12994         * opts-common.c (decode_cmdline_options_to_array): Remove variable
12995         argv_copied.
12996
12997 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
12998
12999         * recog.h, genoutput.c, optabs.c: Revert last patch.
13000
13001 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13002
13003         PR target/48090
13004         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
13005
13006 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13007
13008         * recog.h (insn_operand_data): Add an "allows_mem" field.
13009         * genoutput.c (output_operand_data): Initialize it.
13010         * optabs.c (maybe_legitimize_operand_same_code): New function.
13011         (maybe_legitimize_operand): Use it when matching the original
13012         op->value.
13013
13014 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13015
13016         * genpreds.c (process_define_predicate): Move most processing
13017         to gensupport.c.  Continue to validate the expression.
13018         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
13019         (process_define_predicate): Move processing to gensupport.c.
13020         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
13021         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
13022         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
13023         argument.
13024         (valid_predicate_name_p): New function, split out from old
13025         genpreds.c:process_define_predicate.
13026         (process_define_predicate): New function, combining code from
13027         old genpreds.c and genrecog.c functions.
13028         (process_rtx): Call it for DEFINE_PREDICATE and
13029         DEFINE_SPECIAL_PREDICATE.
13030
13031 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
13032
13033         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
13034         size of a '%A' memory reference.
13035         (T_DREG, T_QREG): New neon_builtin_type_bits.
13036         (arm_init_neon_builtins): Assert that the load and store operands
13037         are neon_struct_operands.
13038         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
13039         (NEON_ARG_MEMORY): New builtin_arg.
13040         (neon_dereference_pointer): New function.
13041         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
13042         Handle NEON_ARG_MEMORY.
13043         (arm_expand_neon_builtin): Update after above interface changes.
13044         Use NEON_ARG_MEMORY for loads and stores.
13045         * config/arm/predicates.md (neon_struct_operand): New predicate.
13046         * config/arm/iterators.md (V_two_elem): Tweak formatting.
13047         (V_three_elem): Use BLKmode for accesses that have no associated mode.
13048         (V_four_elem): Tweak formatting.
13049         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
13050         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
13051         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
13052         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
13053         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
13054         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
13055         (neon_vst4<mode>): Replace pointer operand with a memory operand.
13056         Use %A in the output template.
13057         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
13058         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
13059         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
13060         the width of the memory access.  Remove post-increment.
13061         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
13062
13063 2011-04-12  Nick Clifton  <nickc@redhat.com>
13064
13065         * config/v850/v850.c (expand_prologue): Do not use the CALLT
13066         instruction for interrupt handlers if the target is the basic V850
13067         architecture.
13068         (expand_epilogue): Likewise.
13069
13070 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13071
13072         PR rtl-optimization/48549
13073         * combine.c (propagate_for_debug): Also stop after BB_END of
13074         this_basic_block.  Process LAST and just stop processing after it.
13075         (combine_instructions): If last_combined_insn has been deleted,
13076         set last_combined_insn to its PREV_INSN.
13077
13078 2011-04-12  Richard Guenther  <rguenther@suse.de>
13079
13080         PR tree-optimization/46076
13081         * gimple.h (struct gimple_statement_call): Add fntype field.
13082         (gimple_call_fntype): Adjust.
13083         (gimple_call_set_fntype): New function.
13084         * gimple.c (gimple_build_call_1): Set the call function type.
13085         * gimplify.c (gimplify_call_expr): Preserve the function
13086         type the frontend used for the call.
13087         (gimplify_modify_expr): Likewise.
13088         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
13089         function type.
13090         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
13091         function type.
13092         * tree-ssa.c (useless_type_conversion_p): Function pointer
13093         conversions are useless.
13094
13095 2011-04-12  Martin Jambor  <mjambor@suse.cz>
13096
13097         * cgraph.h (cgraph_node): Remove function declaration.
13098         (cgraph_create_node): Declare.
13099         (cgraph_get_create_node): Likewise.
13100         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
13101         Updated all callers.
13102         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
13103         the decl does not already exist.  Call cgraph_get_create_node instead
13104         of cgraph_node.
13105         (cgraph_get_create_node): New function.
13106         (cgraph_same_body_alias): Update comment.
13107         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
13108         assert it does not return NULL.
13109         (cgraph_update_edges_for_call_stmt): Likewise.
13110         (cgraph_clone_edge): Likewise.
13111         (cgraph_create_virtual_clone): Likewise.
13112         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
13113         instead of cgraph_node.
13114         (cgraph_add_new_function): Call cgraph_create_node or
13115         cgraph_get_create_node instead of cgraph_node.
13116         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
13117         instead of cgraph_node.
13118         (record_eh_tables): Likewise.
13119         (mark_address): Likewise.
13120         (mark_load): Likewise.
13121         (build_cgraph_edges): Call cgraph_get_create_node instead
13122         of cgraph_node.
13123         (rebuild_cgraph_edges): Likewise.
13124         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
13125         instead of cgraph_node.
13126         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
13127         cgraph_node.
13128         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
13129         cgraph_create_node instead of cgraph_node.
13130         * c-decl.c (finish_function): Call cgraph_get_create_node instead
13131         of cgraph_node.
13132         * lto-cgraph.c (input_node): Likewise.
13133         * lto-streamer-in.c (input_function): Likewise.
13134         * varasm.c (mark_decl_referenced): Likewise.
13135         (assemble_alias): Likewise.
13136
13137 2011-04-12  Martin Jambor  <mjambor@suse.cz>
13138
13139         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
13140         instead of cgraph_node and assert it does not return NULL.
13141         * lto-streamer-in.c (lto_read_body): Likewise.
13142         * omp-low.c (new_omp_context): Likewise.
13143         (create_task_copyfn): Likewise.
13144         * tree-emutls.c (lower_emutls_function_body): Likewise.
13145         * matrix-reorg.c (transform_allocation_sites): Likewise.
13146
13147 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
13148
13149         PR c/48552
13150         * c-typeck.c (build_asm_expr): Error out on attempts to use
13151         void type outputs or inputs for constraints that allow reg or
13152         don't allow memory.
13153
13154 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
13155             Richard Earnshaw  <rearnsha@arm.com>
13156
13157         PR target/48250
13158         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
13159         to use sign-magnitude offsets. Reject unsupported unaligned
13160         cases. Add detailed description in comments.
13161         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
13162         condition from TARGET_32BIT to TARGET_ARM.
13163
13164 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
13165
13166         * tree.h (struct typed_tree): New.
13167         (struct tree_common): Include it instead of tree_base.
13168         (TREE_TYPE): Update for new location of type field.
13169         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
13170         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
13171         (union tree_node): Add typed field.
13172         * treestruct.def (TS_TYPED): New.
13173         * lto-streamer.c (check_handled_ts_structures): Handle it.
13174         * tree.c (MARK_TS_TYPED): New macro.
13175         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
13176
13177 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
13178
13179         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
13180         (force_nonfallthru): Do not alter the loop nest if no basic block
13181         was created.
13182
13183 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
13184
13185         * config/i386/sse.md (VI): New mode iterator.
13186         (SSEMODEI): Remove.
13187         (AVX256MODEI): Ditto.
13188         (AVXMODEF4P): Ditto.
13189         (avxvecpsmode): Ditto.
13190         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
13191         (sse2_andnot<mode>3): New expander.
13192         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
13193         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
13194         (<any_logic:code><mode>3): Use VI mode iterator.
13195         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
13196         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
13197         (*andnottf3): Handle AVX three-operand constraints.
13198         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
13199
13200 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13201             Robert Millan  <rmh@gnu.org>
13202
13203         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
13204         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
13205         GNU_USER_DYNAMIC_LINKER64): Define.
13206         (REG_NAME): Don't undefine.
13207         (MD_UNWIND_SUPPORT): Undefine.
13208         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
13209         (REG_NAME): Don't undefine.
13210         (MD_UNWIND_SUPPORT): Undefine.
13211         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
13212
13213 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13214
13215         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
13216         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
13217
13218 2011-04-11  Xinliang David Li  <davidxl@google.com>
13219
13220         * value-profile.c (check_ic_target): New function.
13221         (gimple_ic_transform): Sanity check indirect call target.
13222         * gimple-low.c (gimple_check_call_args): Interface change.
13223         (gimple_check_call_matching_types): New function.
13224         * tree-inline.c (tree_can_inline_p): Call new function.
13225
13226 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
13227
13228         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
13229         tree-pretty-print.h & realmpfr.h.
13230
13231 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
13232
13233         PR middle-end/48464
13234         * ira.c (setup_pressure_classes): Fix typo in loop condition.
13235         (setup_allocno_and_important_classes): Ditto.
13236
13237 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13238
13239         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
13240         GNU_USER_DYNAMIC_LINKER.
13241         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
13242         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13243         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
13244         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13245         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13246         GNU_USER_TARGET_OS_CPP_BUILTINS.
13247         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
13248         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13249         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13250         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13251         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
13252         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13253         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13254         GNU_USER_TARGET_OS_CPP_BUILTINS.
13255         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13256         GNU_USER_DYNAMIC_LINKER.
13257         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13258         GNU_USER_TARGET_OS_CPP_BUILTINS.
13259         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
13260         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13261         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
13262         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13263         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
13264         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
13265         GNU_USER_DYNAMIC_LINKER64): Remove.
13266         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
13267         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13268         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13269         GNU_USER_DYNAMIC_LINKER.
13270         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13271         GNU_USER_TARGET_OS_CPP_BUILTINS.
13272         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13273         GNU_USER_TARGET_OS_CPP_BUILTINS.
13274         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
13275         to GNU_USER_TARGET_OS_CPP_BUILTINS.
13276         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13277         GNU_USER_TARGET_OS_CPP_BUILTINS.
13278         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
13279         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
13280         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13281         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
13282         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13283         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13284         GNU_USER_DYNAMIC_LINKER.
13285         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13286         GNU_USER_TARGET_OS_CPP_BUILTINS.
13287         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
13288         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13289         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13290         GNU_USER_DYNAMIC_LINKER.
13291         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13292         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13293         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
13294         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13295         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13296         GNU_USER_DYNAMIC_LINKER.
13297         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
13298         GNU_USER_DYNAMIC_LINKERN32.
13299         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
13300         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
13301         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
13302         GNU_USER_DYNAMIC_LINKER32.
13303         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
13304         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13305         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13306         GNU_USER_DYNAMIC_LINKER.
13307         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13308         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13309         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
13310         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13311         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13312         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
13313         GNU_USER_DYNAMIC_LINKER32.
13314         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13315         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
13316         GNU_USER_DYNAMIC_LINKER.
13317         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
13318         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13319         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13320         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
13321         GNU_USER_DYNAMIC_LINKER64.
13322         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
13323         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13324         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13325         GNU_USER_DYNAMIC_LINKER.
13326         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
13327         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13328         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13329         GNU_USER_DYNAMIC_LINKER.
13330         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
13331         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13332         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13333         GNU_USER_DYNAMIC_LINKER32.
13334         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13335         GNU_USER_DYNAMIC_LINKER64.
13336         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13337         GNU_USER_DYNAMIC_LINKER64.
13338         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
13339         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13340         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
13341         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13342         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13343
13344 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13345
13346         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
13347         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
13348         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
13349         GNU_USER_DYNAMIC_LINKER.
13350         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13351         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
13352         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
13353         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
13354         GNU_USER_DYNAMIC_LINKER64.
13355         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13356         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
13357         GNU_USER_LINK_EMULATION.
13358         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
13359         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
13360         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
13361         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
13362         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
13363         CPP_SPEC, CC1_SPEC): Remove.
13364         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
13365         (GNU_USER_DYNAMIC_LINKER): Define.
13366         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
13367         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
13368         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
13369         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
13370         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
13371         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
13372         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13373         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
13374         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
13375         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
13376         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
13377         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
13378         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
13379         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
13380         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
13381         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13382         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13383         GNU_USER_DYNAMIC_LINKER.
13384         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13385         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
13386         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13387         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
13388         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13389         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
13390         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
13391         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
13392         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
13393         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
13394
13395 2011-04-11  Kai Tietz  <ktietz@redhat.com>
13396
13397         PR target/9601
13398         PR target/11772
13399         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
13400         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
13401         comment.
13402         (ix86_is_msabi_thiscall): Removed.
13403         (ix86_is_type_thiscall): Likewise.
13404         (ix86_get_callcvt): New function.
13405         (ix86_comp_type_attributes): Simplify check.
13406         (ix86_function_regparm): Use ix86_get_callcvt for calling
13407         convention attribute checks.
13408         (ix86_return_pops_args): Likewise.
13409         (ix86_static_chain): Likewise.
13410         (x86_this_parameter): Likewise.
13411         (x86_output_mi_thunk): Likewise.
13412         (ix86_function_type_abi): Optimize check for types without attributes.
13413         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
13414         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
13415         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
13416         by flag-values.
13417         (IX86_BASE_CALLCVT): Helper macro.
13418         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
13419         Use ix86_get_callcvt for calling convention attribute checks and avoid
13420         symbol-decoration for stdcall in TARGET_RTD case.
13421         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
13422         Likewise.
13423         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
13424         for declaration.
13425
13426 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
13427
13428         * config/i386/sse.md (VI_128): New mode iterator.
13429         (VI12_128): Rename from SSEMODE12.
13430         (VI14_128): Rename from SSEMODE14.
13431         (VI124_128): New mode iterator.
13432         (VI24_128): Rename from SSEMODE248.
13433         (VI248_128): Rename from SSEMODE248.
13434         (SSEMODE124C8): Remove.
13435         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
13436         (*sse2_<plusminus_insn><mode>3): Merge with
13437         *avx_<plusminus_insn><mode>3.
13438         (*mulv8hi3): Merge with *avx_mulv8hi3.
13439         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
13440         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
13441         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
13442         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
13443         (ashr<mode>3): Merge with *avx_ashr<mode>3.
13444         (lshr<mode>3): Merge with *avx_lshr<mode>3.
13445         (ashl<mode>3): Merge with *avx_ashl<mode>3.
13446         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
13447         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
13448         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
13449         (*<smaxmin:code>v8hi3): Ditto.
13450         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
13451         (*<smaxmin:code>v16qi3): Ditto.
13452         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
13453         (*sse2_eq<mode>3): Ditto.
13454         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
13455         (*sse2_gt<mode>3): Ditto.
13456         (vcondv2di): Split out of vcond<mode>.
13457         (vconduv2di): Split out of vcondu<mode>.
13458
13459 2011-04-11  Richard Guenther  <rguenther@suse.de>
13460
13461         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
13462         before calling tree_low_cst.
13463
13464 2011-04-11  Richard Guenther  <rguenther@suse.de>
13465
13466         * stor-layout.c (layout_type): Compute all array index size operations
13467         in the original type.
13468         (initialize_sizetypes): Add comment.
13469         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
13470
13471 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
13472
13473         * common.opt (Tbss=, Tdata=, Ttext=): New options.
13474
13475 2011-04-11  Martin Jambor  <mjambor@suse.cz>
13476
13477         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
13478         of cgraph_node, handle NULL return value.
13479         (cgraph_global_info): Likewise.
13480         (cgraph_rtl_info): Likewise.
13481         * tree-inline.c (estimate_num_insns): Likewise.
13482         * gimplify.c (unshare_body): Likewise.
13483         (unvisit_body): Likewise.
13484         (gimplify_body): Likewise.
13485         * predict.c (optimize_function_for_size_p): Likewise.
13486         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
13487         (call_may_clobber_ref_p_1): Likewise.
13488         * varasm.c (function_section_1): Likewise.
13489         (assemble_start_function): Likewise.
13490
13491 2011-04-11  Martin Jambor  <mjambor@suse.cz>
13492
13493         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
13494         of cgraph_node.
13495         * final.c (rest_of_clean_state): Likewise.
13496         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
13497         * passes.c (pass_init_dump_file): Likewise.
13498         (execute_all_ipa_transforms): Likewise.
13499         (function_called_by_processed_nodes_p): Likewise.
13500         * predict.c (maybe_hot_frequency_p): Likewise.
13501         (probably_never_executed_bb_p): Likewise.
13502         (compute_function_frequency): Likewise.
13503         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
13504         (unnest_nesting_tree_1): Likewise.
13505         (lower_nested_functions): Likewise.
13506         * tree-optimize.c (execute_fixup_cfg): Likewise.
13507         (tree_rest_of_compilation): Likewise.
13508         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
13509         * tree-sra.c (ipa_early_sra): Likewise.
13510         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
13511         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
13512         * ipa.c (record_cdtor_fn): Likewise.
13513         * ipa-inline.c (cgraph_early_inlining): Likewise.
13514         (compute_inline_parameters_for_current): Likewise.
13515         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
13516         * ipa-pure-const.c (local_pure_const): Likewise.
13517         * ipa-split.c (split_function): Likewise.
13518         (execute_split_functions): Likewise.
13519         * cgraphbuild.c (build_cgraph_edges): Likewise.
13520         (rebuild_cgraph_edges): Likewise.
13521         (cgraph_rebuild_references): Likewise.
13522         (remove_cgraph_callee_edges): Likewise.
13523         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
13524         (verify_cgraph_node): Likewise.
13525         (cgraph_analyze_functions): Likewise.
13526         (cgraph_preserve_function_body_p): Likewise.
13527         (save_inline_function_body): Likewise.
13528         (save_inline_function_body): Likewise.
13529         * tree-inline.c (copy_bb): Likewise.
13530         (optimize_inline_calls): Likewise.
13531
13532 2011-04-11  Martin Jambor  <mjambor@suse.cz>
13533
13534         PR tree-optimization/48195
13535         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
13536         ipa_check_create_edge_args.
13537         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
13538         ipa_check_create_edge_args.
13539         * ipa-inline.c (inline_generate_summary): Do not call
13540         ipa_check_create_node_params and ipa_check_create_edge_args.
13541         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
13542         ipa_check_create_edge_args.
13543
13544 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
13545
13546         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
13547         instead of loop.
13548         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13549         * function.c (record_hard_reg_sets): Likewise.
13550         * ira.c (compute_regs_asm_clobbered): Likewise.
13551         * sched-deps.c (sched_analyze_1): Likewise.
13552         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
13553
13554 2011-04-09  Xinliang David Li  <davidxl@google.com>
13555
13556         PR tree-optimization/PR48484
13557         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
13558         has_valid_pred lazily
13559
13560 2011-04-09  Duncan Sands  <baldrick@free.fr>
13561
13562         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
13563
13564 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
13565
13566         * combine.c (combine_validate_cost): Adjust comments.  Set registered
13567         cost of I0 to zero at the end, if any.
13568
13569 2011-04-08  Xinliang David Li  <davidxl@google.com>
13570
13571         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
13572         to insane profile data.
13573
13574 2011-04-08  Xinliang David Li  <davidxl@google.com>
13575
13576         * ipa-cp.c (ipcp_update_profiling): Correct
13577          negative scale factor due to insane profile data.
13578
13579 2011-04-08  Xinliang David Li  <davidxl@google.com>
13580
13581         * final.c (dump_basic_block_info): New function.
13582         (final): Dump basic block.
13583         (final_scan_insn): Remove old dump.
13584
13585 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
13586
13587         PR target/47829
13588         * config.gcc (i386-*-freebsd): Disable unwind table generation for
13589         crtbegin/crtend.
13590
13591 2011-04-08  Michael Matz  <matz@suse.de>
13592
13593         PR middle-end/48389
13594         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
13595         functions.
13596         (rebuild_jump_labels): Call rebuild_jump_labels_1.
13597         * rtl.h (rebuild_jump_labels_chain): Declare.
13598         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
13599         insns inserted on edges.
13600
13601 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
13602
13603         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
13604         * config/arm/arm-arches.def: New.
13605         * config/arm/arm-opts.h: New.
13606         * config/arm/genopt.sh: New.
13607         * config/arm/arm-tables.opt: New (generated).
13608         * config/arm/arm.c (arm_handle_option, arm_target_help,
13609         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
13610         (all_architectures): Get most table contents from arm-arches.def.
13611         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
13612         arm_selected_tune here.
13613         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
13614         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
13615         (march=, mcpu=, mtune=): Use Enum and Var.
13616         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
13617         (arm.o): Update dependencies.
13618
13619 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
13620
13621         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
13622         of header_file.
13623         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
13624         (write_typed_alloc_defns): Likewise.
13625         (main): Calls write_typed_alloc_defns with output_header.
13626
13627 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
13628
13629         PR inline-asm/48435
13630         * ira-color.c (setup_profitable_hard_regs): Add comments.
13631         Don't take prohibited hard regs into account.
13632         (setup_conflict_profitable_regs): Rename to
13633         get_conflict_profitable_regs.
13634         (check_hard_reg_p): Check prohibited hard regs.
13635
13636 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
13637
13638         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
13639         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
13640         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
13641
13642 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13643
13644         PR target/48366
13645         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
13646         move from floating point to shift amount register.
13647         (emit_move_sequence): Remove secondary reload support for floating
13648         point to shift amount amount register copies.
13649         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
13650         amount register copies.
13651         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
13652         register, return false if mode isn't a scalar integer mode.
13653         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
13654
13655 2011-04-08  Richard Guenther  <rguenther@suse.de>
13656
13657         * gimple.c (gimple_call_flags): Remove kludge.
13658
13659 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13660
13661         * sel-sched.c (sel_region_init): Move call to
13662         sel_setup_region_sched_flags after setup_current_loop_nest.
13663
13664 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
13665
13666         PR rtl-optimization/48272
13667         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
13668         init_insn_reg_pressure_info.  Adjust a caller.
13669         * sched-int.h (init_insn_reg_pressure_info): Declare.
13670         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
13671         when sched-pressure is enabled.
13672
13673 2011-04-08  Richard Guenther  <rguenther@suse.de>
13674
13675         * gimple.c (gimple_set_modified): Do not queue calls to
13676         MODIFIED_NORETURN_CALLS here ...
13677         * tree-ssa-operands.c (update_stmt_operands): ... but here.
13678
13679 2011-04-08  Richard Guenther  <rguenther@suse.de>
13680
13681         PR lto/48467
13682         * toplev.c (lang_dependent_init): Do not open asm_out_file
13683         in WPA mode, nor perform debug machinery initialization.
13684         (finalize): Do not unlink asm_out_file in WPA mode.
13685
13686 2011-04-08  Richard Guenther  <rguenther@suse.de>
13687
13688         * gimple.h (gimple_call_fntype): New function.
13689         (gimple_call_return_type): Use it.
13690         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
13691         * gimple-low.c (gimple_check_call_args): Likewise.
13692         * gimple.c (gimple_call_flags): Likewise.
13693         (gimple_call_arg_flags): Likewise.
13694         (gimple_call_return_flags): Likewise.
13695         * tree-cfg.c (verify_gimple_call): Likewise.
13696         (do_warn_unused_result): Likewise.
13697         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
13698         * value-prof.c (gimple_ic_transform): Fix fndecl check.
13699
13700 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
13701
13702         PR rtl-optimization/48235
13703         * sel-sched.c (code_motion_process_successors): Recompute the last
13704         insn in basic block if control flow changed.
13705         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
13706         Update condition for ilist_remove.
13707
13708 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13709
13710         PR rtl-optimization/48302
13711         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
13712         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
13713         it to record added preheader blocks.
13714         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
13715         on to sel_add_loop_preheaders.
13716         (sel_region_init): Move call to setup_current_loop_nest after
13717         sel_init_bbs.
13718
13719 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13720
13721         PR target/48273
13722         * cfgloop.h (loop_has_exit_edges): New helper.
13723         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
13724         non-clonable.
13725         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
13726         that have no exit edges.
13727
13728 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
13729
13730         PR rtl-optimization/48442
13731         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
13732         all callers.  Adjust assert.
13733
13734 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
13735
13736         PR tree-optimization/48377
13737         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
13738         is_packed to true even for types with smaller TYPE_ALIGN than
13739         TYPE_SIZE.
13740
13741 2011-04-08  Richard Guenther  <rguenther@suse.de>
13742
13743         PR bootstrap/48513
13744         * doc/tm.texi: Re-generate.
13745
13746 2011-04-08  Wei Guozhi  <carrot@google.com>
13747
13748         PR target/47855
13749         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
13750         * config/arm/arm.c (arm_attr_length_push_multi): New function.
13751         * config/arm/arm.md (*push_multi): Change the length computation to
13752         call a C function.
13753
13754 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
13755
13756         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
13757         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
13758         * doc/tm.texi: Regenerate.
13759         * system.h (ASM_OUTPUT_BSS): Poison.
13760         * varasm.c (asm_output_bss): Remove function.
13761         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
13762
13763         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
13764         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
13765         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
13766         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13767         Likewise.
13768         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13769         Likewise.
13770         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13771         Likewise.
13772         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
13773
13774 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
13775
13776         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
13777         EnumValue lines.
13778
13779 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
13780
13781         * config/m68k/m68k.c (m68k_handle_option): Don't handle
13782         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
13783         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
13784         OPT_mcpu32.
13785         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
13786         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
13787         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
13788         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
13789         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
13790         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
13791         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
13792         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
13793         options.  Don't map other m68k options manually.  Don't handle
13794         old-style options as canonical.
13795         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
13796         * doc/install.texi (m68k-*-*): Document binutils version requirement.
13797
13798 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
13799
13800         * basic-block.h (force_nonfallthru): Move to...
13801         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
13802         (force_nonfallthru): ...here.
13803         * cfghooks.c (force_nonfallthru): New function.
13804         * cfgrtl.c (force_nonfallthru): Rename into...
13805         (rtl_force_nonfallthru): ...this.
13806         (commit_one_edge_insertion): Do not set AUX field.
13807         (commit_edge_insertions): Do not discover new basic blocks.
13808         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
13809         (cfg_layout_rtl_cfg_hooks): Likewise.
13810         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
13811         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
13812         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
13813
13814 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
13815
13816         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
13817         Remove macros.
13818
13819 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
13820
13821         * config/i386/sse.md: Update copyright year.
13822         (avxcvtvecmode): Remove.
13823         (sse_movhlps): Merge with *avx_movhlps.
13824         (sse_movlhps): Merge with *avx_movlhps.
13825         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
13826         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
13827         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
13828         (sse_loadhps): Merge with *avx_loadhps.
13829         (sse_storelps): Merge with *avx_storelps.
13830         (sse_loadlps): Merge with *avx_loadlps.
13831         (sse_movss): Merge with *avx_movss.
13832         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
13833         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
13834         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
13835         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
13836         (vec_set<mode>_0): Ditto.
13837         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
13838         (sse4_1_insertps): Merge with *avx_insertps.
13839         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
13840         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
13841         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
13842         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
13843         (sse2_storehpd): Merge with *avx_storehpd.
13844         (sse2_loadhpd): Merge with *avx_loadhpd.
13845         (sse2_loadlpd): Merge with *avx_loadlpd.
13846         (sse2_movsd): Merge with *avx_movsd.
13847         (*vec_concatv2df): Merge with *vec_concatv2df.
13848
13849 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
13850
13851         PR debug/48343
13852         * combine.c (combine_instructions): Add last_combined_insn,
13853         update it if insn is after it, pass it to all try_combine calls.
13854         (try_combine): Add last_combined_insn parameter, pass it instead of
13855         i3 to propagate_for_debug.
13856
13857 2011-04-07  Nick Clifton  <nickc@redhat.com>
13858
13859         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
13860         to handle MDR <-> data register transfers.
13861         (movhi_internal): Likewise.
13862
13863 2011-04-07  Alan Modra  <amodra@gmail.com>
13864
13865         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
13866         previous stack info.
13867
13868 2011-04-07  Tom de Vries  <tom@codesourcery.com>
13869
13870         PR target/43920
13871         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
13872         flow_find_cross_jump.  Swap variables to implement backward replacement.
13873         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
13874
13875 2011-04-07  Tom de Vries  <tom@codesourcery.com>
13876
13877         PR target/43920
13878         * cfgcleanup.c (walk_to_nondebug_insn): New function.
13879         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
13880         and bb2.
13881         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
13882         src1 or src2.  Redirect edges to the last basic block.  Update
13883         frequency and count on multiple basic blocks in case of fallthru.
13884
13885 2011-04-07  Tom de Vries  <tom@codesourcery.com>
13886
13887         PR target/43920
13888         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
13889         function.
13890         (old_insns_match_p): Change return type.  Replace return false/true
13891         with return dir_none/dir_both.  Use can_replace_by.
13892         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
13893         direction from dir_p.  Register replacement direction in dir, last_dir
13894         and afterlast_dir.  Handle new return type of old_insns_match_p using
13895         merge_dir.  Return replacement direction in dir_p.
13896         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
13897         return type of old_insns_match_p.
13898         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
13899         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
13900         flow_find_cross_jump.
13901         * basic-block.h (enum replace_direction): New type.
13902         (flow_find_cross_jump): Add parameter to declaration.
13903
13904 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
13905
13906         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
13907         (AVXMODEDCVTPS2DQ): Ditto.
13908         (VEC_FLOAT_MODE): Ditto.
13909         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
13910         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
13911         (<any_logic:code><mode>3): Use VF mode iterator.
13912         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
13913         Use VF mode iterator.
13914         (copysign<mode>3): Use VF mode iterator.
13915         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
13916         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
13917         (*<any_logic:code><MODEF:mode>3): Merge with
13918         *avx_<any_logic:code><MODEF:mode>3.
13919         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
13920         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
13921         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
13922         (avx_cvtdq2ps<avxmodesuffix>): Remove.
13923         (sse2_cvtdq2ps): Use %v modifier.
13924         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
13925         (avx_cvtps2dq<avxmodesuffix>): Remove.
13926         (sse2_cvtps2dq): Use %v modifier.
13927         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
13928         (avx_cvttps2dq<avxmodesuffix>): Remove.
13929         (sse2_cvttps2dq): Use %v modifier.
13930         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
13931         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
13932         (sse2_cvtsd2siq): Fix insn template.
13933         (sse2_cvtsd2siq_2): Ditto.
13934         (sse2_cvttsd2siq): Ditto.
13935         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
13936         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
13937
13938 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
13939
13940         * gcov-io.c: Use GCC Runtime Library Exception.
13941
13942 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
13943
13944         PR debug/48466
13945         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
13946         as base_reg whatever register reg has been eliminated to, instead
13947         of hardcoding STACK_POINTER_REGNUM.
13948
13949 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
13950
13951         * doc/tm.texi.in: Document C target hooks as separate from general
13952         target hooks.
13953         * doc/tm.texi: Regenerate.
13954         * genhooks.c (struct hook_desc): Add docname field.
13955         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
13956         docname field.
13957         (hook_array): Include c-target.def.
13958         (emit_documentation): Use docname field in output.
13959         (emit_init_macros): Take docname argument.  Only emit definitions
13960         for hooks matching docname.
13961         (main): Expect additional arguments in all cases.  Pass argument
13962         to emit_init_macros.
13963         * target.def: Move initial macro definitions and comments to
13964         target-hooks-macros.h.
13965         (gcc_targetcm): Move to c-family/c-target.def.
13966         * target.h (targetcm): Move declaration to c-family/c-target.h.
13967         * targhooks.c (default_handle_c_option): Move to
13968         c-family/c-opts.c.
13969         * targhooks.h (default_handle_c_option): Move declaration to
13970         c-family/c-common.h.
13971         * target-hooks-macros.h: New file.
13972         * config.gcc (target_has_targetcm): Define and use to add to
13973         c_target_objs and cxx_target_objs.
13974         * config/default-c.c: New file.
13975         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
13976         of target.h and target-def.h.
13977         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
13978         (darwin_objc_construct_string, darwin_cfstring_ref_p,
13979         darwin_check_cfstring_format_arg): Make static.
13980         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
13981         TARGET_STRING_OBJECT_REF_TYPE_P,
13982         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
13983         * config/darwin-protos.h (darwin_objc_construct_string,
13984         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
13985         declare.
13986         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
13987         TARGET_STRING_OBJECT_REF_TYPE_P,
13988         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
13989         * config/t-darwin (darwin-c.o): Update dependencies.
13990         * system.h (TARGET_HAS_TARGETCM): Poison.
13991         * Makefile.in (TARGET_H): Update.
13992         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
13993         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
13994         (default-c.o): New target.
13995         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
13996         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
13997         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
13998         c-target.def.
13999         (build/genhooks.o): Update dependencies.
14000
14001 2011-04-06  Richard Guenther  <rguenther@suse.de>
14002
14003         * ipa-inline.c (enum inlining_mode): Remove.
14004         (cgraph_flatten): Use some other token.
14005         (cgraph_edge_early_inlinable_p): New function, split out from ...
14006         (cgraph_perform_always_inlining): New function, split out from ...
14007         (cgraph_decide_inlining_incrementally): ... here.
14008         (cgraph_mark_inline_edge): Adjust.
14009         (cgraph_early_inlining): Re-structure.
14010         (pass_early_inline): Require SSA form.
14011
14012 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
14013             Julian Brown  <julian@codesourcery.com>
14014             Mark Shinwell  <shinwell@codesourcery.com>
14015
14016         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
14017         LO_REGS only for Thumb-1.
14018         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
14019         be used in short instructions when optimising for size on Thumb-2.
14020
14021 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
14022
14023         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
14024         associated with user returns to be preserved.
14025
14026 2011-04-06  Tristan Gingold  <gingold@adacore.com>
14027
14028         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
14029         symbol_queue_size, DBXOUT_DECR_NESTING,
14030         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
14031         if XCOFF_DEBUGGING_INFO.
14032
14033 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
14034
14035         * config/i386/i386.md (attribute isa): New.
14036         (attribute enabled): New.
14037         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
14038         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
14039         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
14040         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
14041         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
14042         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14043         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
14044         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
14045
14046         * config/i386/sse.md (VF): New mode iterator.
14047         (VF1): Ditto.
14048         (VF2): Ditto.
14049         (VF_128): Ditto.
14050         (SSEMODEF4): Remove.
14051         (attribute sse): Handle V8SF and V4DF modes.
14052         (<absneg:code><mode>2): Use VF mode iterator.
14053         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
14054         mode iterator.
14055         (<plusminus_insn><mode>3): Use VF mode iterator.
14056         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14057         Use VF mode iterator.
14058         (<sse>_vm<plusminus_insn><mode>3): Merge with
14059         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
14060         (mul<mode>3): Use VF mode iterator.
14061         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
14062         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
14063         mode iterator.
14064         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
14065         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
14066         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
14067         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
14068         mode iterator.
14069         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
14070         Use VF1 mode iterator.
14071         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
14072         (sqrt<VF2:mode>2): New expander.
14073         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
14074         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
14075         and sqrtv2df2.  Use VF mode iterator.
14076         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
14077         mode iterator.
14078         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
14079         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
14080         Use VF1 mode iterator.
14081         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
14082         (<smaxmin:code><mode>3): Use VF mode iterator.
14083         (*<smaxmin:code><mode>3_finite): Merge with
14084         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
14085         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14086         (<sse>_vm<smaxmin:code><mode>2): Merge with
14087         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
14088         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
14089         mode iterator.
14090         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
14091         mode iterator.
14092         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
14093         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
14094         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
14095         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
14096         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
14097         VF mode iterator.
14098         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
14099         Use VF_128 mode iterator.
14100         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
14101         mode iterator.
14102         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
14103         VF_128 mode iterator.
14104         (vcond<mode>): Use VF mode iterator.
14105         * config/i386/predicates.md (sse_comparison_operator): Merge with
14106         avx_comparison_float_operator.  Do not declare as special_predicate.
14107         * config/i386/i386.c (struct builtin_description): Update for renamed
14108         compare patterns.
14109         (ix86_expand_args_builtin): Ditto.
14110         (ix86_expand_sse_compare_mask): Ditto.
14111
14112 2011-04-06  Richard Guenther  <rguenther@suse.de>
14113
14114         * tree-inline.c (estimate_num_insns): For calls simply account
14115         for all passed arguments and a used return value.
14116
14117 2011-04-06  Richard Guenther  <rguenther@suse.de>
14118
14119         PR tree-optimization/47663
14120         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
14121         call_stmt_time fields.
14122         (cgraph_edge_inlinable_p): Declare.
14123         (cgraph_edge_recursive_p): New inline function.
14124         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
14125         (cgraph_clone_edge): Copy it.
14126         * ipa-inline.c (cgraph_estimate_edge_time): New function.
14127         Account for call stmt time.
14128         (cgraph_estimate_time_after_inlining): Take edge argument.
14129         (cgraph_estimate_edge_growth): Account call stmt size.
14130         (cgraph_estimate_size_after_inlining): Take edge argument.
14131         (cgraph_mark_inline_edge): Adjust.
14132         (cgraph_check_inline_limits): Likewise.
14133         (cgraph_recursive_inlining_p): Remove.
14134         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
14135         (cgraph_decide_recursive_inlining): Take edge argument and
14136         adjust.
14137         (cgraph_decide_inlining_of_small_functions): Do not avoid
14138         diags for recursive inlining here.
14139         (cgraph_flatten): Adjust.
14140         (cgraph_decide_inlining_incrementally): Likewise.
14141         (estimate_function_body_sizes): Remove call cost handling.
14142         (compute_inline_parameters): Initialize caller edge call costs.
14143         (cgraph_estimate_edge_growth): New function.
14144         (cgraph_estimate_growth): Use it.
14145         (cgraph_edge_badness): Likewise.
14146         (cgraph_check_inline_limits): Take an edge argument.
14147         (cgraph_decide_inlining_of_small_functions): Adjust.
14148         (cgraph_decide_inlining): Likewise.
14149         * tree-inline.c (estimate_num_insns): Only account for call
14150         return value if it is used.
14151         (expand_call_inline): Avoid diagnostics on recursive inline
14152         functions here.
14153         * lto-cgraph.c (lto_output_edge): Output edge call costs.
14154         (input_edge): Input edge call costs.
14155
14156 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14157
14158         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
14159
14160 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
14161
14162         * doc/invoke.texi (Spec Files): Fix typo.
14163
14164 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
14165
14166         * profile.c (branch_prob): Move declaration of local variable.  Remove
14167         obsolete ??? comment.  Expand the location explicitly instead of using
14168         the LOCATION_FILE and LOCATION_LINE macros.
14169
14170 2011-04-06  Wei Guozhi  <carrot@google.com>
14171
14172         PR target/47855
14173         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
14174         (arm_cond_branch): Likewise.
14175         (arm_cond_branch_reversed): Likewise.
14176         (arm_jump): Likewise.
14177         (push_multi): Likewise.
14178         * config/arm/constraints.md (Py): New constraint.
14179
14180 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14181
14182         PR bootstrap/48471
14183         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
14184         Move these...
14185         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
14186         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
14187         #ifdef DBX_DEBUGGING_INFO.
14188
14189 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
14190
14191         PR bootstrap/48403
14192         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
14193         if old and new states differ.
14194
14195 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
14196
14197         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
14198         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
14199         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14200         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
14201         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
14202         mcfv4e): Use Alias.
14203         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
14204         ColdFire options to -mcpu= options.
14205
14206 2011-04-05  Jeff Law  <law@redhat.com>
14207
14208         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
14209         check if BB is a successor of LOOP->header and return
14210         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
14211
14212 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
14213
14214         * cprop.c (struct reg_use): Remove.
14215         (reg_use_table): Make an array of RTX.
14216         (find_used_regs, constprop_register, local_cprop_pass,
14217         bypass_block): Simplify users of reg_use_table.
14218         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
14219         on one of the uses found by find_used_regs.
14220
14221 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14222
14223         PR bootstrap/48469
14224         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
14225         declaration.
14226
14227 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14228
14229         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
14230         as an rtx.
14231         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
14232
14233 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
14234
14235         PR middle-end/48441
14236         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
14237
14238 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14239
14240         * combine.c: Include obstack.h.
14241         (struct insn_link): Define.
14242         (uid_log_links): Adjust type.
14243         (FOR_EACH_LOG_LINK): New macro.
14244         (insn_link_obstack): Declare.
14245         (alloc_insn_link): Define.
14246         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
14247         type of link variables.
14248         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
14249         (try_combine, record_promoted_values, distribute_notes): Likewise.
14250         (distribute_links): Likewise.  Tweak prototype.
14251         (clear_log_links): Delete.
14252         (adjust_for_new_dest): Call alloc_insn_link.
14253         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
14254
14255 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14256
14257         * gcse.c (modify_mem_list): Convert to an array of VECs.
14258         (canon_modify_mem_list, compute_transp): Tweak formatting.
14259         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
14260         (load_killed_in_block_p): Likewise.
14261         (record_last_mem_set_info): Likewise.
14262         (clear_modify_mem_tables): Likewise.
14263
14264 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14265
14266         PR middle-end/48461
14267         * function.c (emit_use_return_register_into_block): Only define if
14268         HAVE_return.
14269
14270 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
14271
14272         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
14273
14274 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
14275
14276         * config/rx/rx-opts.h: New.
14277         * config/rx/rx.c (rx_cpu_type): Remove.
14278         (rx_handle_option): Don't assert that global structures are in
14279         use.  Access variables via opts pointer.  Defer most handling of
14280         OPT_mint_register_.  Use error_at.
14281         (rx_option_override): Handle deferred OPT_mint_register_ here.
14282         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
14283         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
14284         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
14285         (rx_cpu_types): New Enum and EnumValue entries.
14286         (mint-register=): Use Defer and use Var accordingly.
14287
14288 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14289
14290         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
14291         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
14292         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
14293         Move these...
14294         (debug_free_queue, debug_nesting, symbol_queue_index):
14295         ...and these...
14296         * dbxout.c: ...to here.  Make static.
14297
14298 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
14299
14300         * gcse.c (modify_pair): Define.  Define a VEC of it.
14301         (canon_modify_mem_list): Convert to an array of VECs.
14302         (free_insn_expr_list_list): Delete.
14303         (clear_modify_mem_tables): Call VEC_free instead.
14304         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
14305         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
14306         (canon_list_insert, compute_transp): Likewise.
14307
14308 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14309
14310         PR target/43920
14311         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
14312         for size.
14313
14314 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14315
14316         PR target/43920
14317         * function.c (emit_use_return_register_into_block): New function.
14318         (thread_prologue_and_epilogue_insns): Use
14319         emit_use_return_register_into_block.
14320
14321 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14322
14323         PR target/43920
14324         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
14325         insn.
14326
14327 2011-04-05  Tom de Vries  <tom@codesourcery.com>
14328
14329         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
14330
14331 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
14332
14333         * config/arm/arm.md (define_constants for unspec): Replace with
14334         define_c_enum.
14335         (define_constants for unspecv): Replace with define_c_enum.
14336         * config/arm/neon.md (define_constants for unspec): Replace with
14337         define_c_enum.
14338
14339 2011-04-04  Richard Henderson  <rth@redhat.com>
14340
14341         PR bootstrap/48400
14342         * dwarf2out.c (output_line_info): Always emit line info from
14343         at least one section.
14344         (dwarf2out_init): Create text_section_line_info here ...
14345         (set_cur_line_info_table): ... not here.
14346
14347 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
14348
14349         PR target/48380
14350         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
14351         not called.
14352
14353         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
14354
14355 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
14356
14357         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
14358         (expr_equiv_p): Remove.
14359         (insert_set_in_table): Look at <dest, src> pair instead of expr.
14360         (hash_scan_set): Update call to insert_set_in_table.
14361         (dump_hash_table): Dump <dest, src> pair.
14362         (lookup_set): Simplify.  Lookup <dest, src> pair.
14363         (compute_transp): Remove, fold heavily simplified code into...
14364         (compute_local_properties): ...here.  Expect COMP and TRANSP
14365         unconditionally.
14366         (find_avail_set): Take set directly from struct expr.
14367         (find_bypass-set): Likewise.
14368         (bypass_block): Likewise.
14369         (cprop_insn): Likewise.  Remove redundant INSN_P test.
14370
14371         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
14372         checks on form of COND from find_implicit_sets to here.
14373         (find_implicit_sets): Cleanup control flow. Split critical edges
14374         if it exposes implicit sets.  Allocate/resize implicit_sets as
14375         necessary.
14376         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
14377         changed something.  Run df_analyze after find_implicit_sets if any
14378         edges were split.  Do not allocate implicit_sets here.
14379
14380         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
14381         (gcse_obstack): Renamed to cprop_obstack.
14382         (GNEW, GNEWVEC, GNEWVAR): Remove.
14383         (gmalloc): Remove.
14384         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
14385         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
14386         (gcse_alloc): Likewise, and rename to cprop_alloc.
14387         (alloc_gcse_men, free_gcse_mem): Remove.
14388         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
14389         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
14390         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
14391
14392         * cprop.c (oprs_not_set_p): Remove.
14393         (mark_set, mark_clobber): Remove.
14394         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
14395         (reg_not_set_p): New function.
14396         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
14397         (cprop_insn): Likewise.
14398         (cprop_jump): Use FOR_EACH_EDGE.
14399
14400 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
14401
14402         PR bootstrap/48403
14403         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
14404         (rank_for_schedule): Use scheduled_insns vector instead of
14405         last_scheduled_insn.
14406         (ok_for_early_queue_removal): Likewise.
14407         (queue_to_ready): Search forward in nonscheduled_insns_begin if
14408         we have a dbg_cnt.
14409         (choose_ready): Likewise.
14410         (commit_schedule): Use VEC_iterate.
14411         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
14412         a dbg_cnt, use it and ensure the first insn is in the ready list.
14413         (haifa_sched_init): Allocate scheduled_insns.
14414         (sched_extend_ready_list): Don't allocate it; reserve space.
14415         (haifa_sched_finish): Free it.
14416
14417 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
14418
14419         * optc-gen.awk: Always remove type from Variable entry before
14420         recording in var_seen.
14421
14422 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
14423
14424         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
14425         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
14426         call to tidy_fallthru_edges.
14427
14428 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
14429
14430         * doc/options.texi (ToLower): Document.
14431         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
14432         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
14433         * opts.h (cl_option): Add cl_tolower field.
14434         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
14435         arguments with lowercase strings.
14436         * config/rx/rx.opt (mcpu=): Add ToLower.
14437         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
14438         argument.
14439
14440 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
14441
14442         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
14443
14444 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
14445
14446         * config/vax/vax.c: Include reload.h.
14447
14448 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
14449
14450         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
14451         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14452         (sparc_preferred_reload_class): New function.
14453
14454 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
14455
14456         PR debug/48401
14457         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
14458         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
14459
14460 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
14461
14462         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
14463         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
14464
14465 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
14466
14467         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
14468         (ASM_OUTPUT_ALIGNED_BSS): Define.
14469
14470 2011-04-03  Michael Matz  <matz@suse.de>
14471
14472         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
14473         and next_slot members.
14474         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
14475         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
14476         (lto_streamer_cache_append): Declare.
14477         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
14478         unsigned index, remove offset parameter, ensure that we append
14479         or update existing entries.
14480         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
14481         parameter, update next_slot for append.
14482         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
14483         parameter.
14484         (lto_streamer_cache_insert_at): Likewise.
14485         (lto_streamer_cache_append): New function.
14486         (lto_streamer_cache_lookup): Use unsigned index.
14487         (lto_streamer_cache_get): Likewise.
14488         (lto_record_common_node): Don't test tree_node_can_be_shared.
14489         (preload_common_node): Adjust call to lto_streamer_cache_insert.
14490         (lto_streamer_cache_delete): Don't free offsets member.
14491         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
14492         (lto_output_string_with_length): Use lto_output_data_stream.
14493         (lto_output_tree_header): Remove ix parameter, don't write it.
14494         (lto_output_builtin_tree): Likewise.
14495         (lto_write_tree): Adjust callers to above, don't track and write
14496         offset, write unsigned index.
14497         (output_unreferenced_globals): Don't emit all global vars.
14498         (write_global_references): Use unsigned indices.
14499         (lto_output_decl_state_refs): Likewise.
14500         (write_symbol): Likewise.
14501         * lto-streamer-in.c (lto_input_chain): Move earlier.
14502         (input_function): Use unsigned index.
14503         (input_alias_pairs): Don't read and then ignore all global vars.
14504         (lto_materialize_tree): Remove ix_p parameter, don't read index,
14505         don't pass it back, use lto_streamer_cache_append.
14506         (lto_register_var_decl_in_symtab): Use unsigned index.
14507         (lto_register_function_decl_in_symtab): Likewise.
14508         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
14509         index.
14510         (lto_get_builtin_tree): Don't read index, use
14511         lto_streamer_cache_append.
14512         (lto_read_tree): Adjust call to lto_materialize_tree.
14513
14514         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
14515         don't use function calls in arguments to MIN.
14516
14517         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
14518         twice.
14519
14520         * gimple.c (gimple_type_leader_entry): Mark deletable.
14521
14522 2011-04-03  Alan Modra  <amodra@gmail.com>
14523
14524         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
14525
14526 2011-04-03  Michael Matz  <matz@suse.de>
14527
14528         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
14529         an integer.
14530         * tree.h (tree_decl_non_common.vindex): Adjust comment.
14531
14532 2011-04-03  Michael Matz  <matz@suse.de>
14533
14534         * cgraphbuild.c (record_reference): Canonicalize constructor values.
14535         * gimple-fold.c (canonicalize_constructor_val): Accept being called
14536         without function context.
14537         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
14538         current_function_decl and cfun.
14539
14540 2011-04-03  Michael Matz  <matz@suse.de>
14541
14542         * tree.c (decl_init_priority_insert): Don't create entry for
14543         default priority.
14544         (decl_fini_priority_insert): Ditto.
14545         (fields_compatible_p, find_compatible_field): Remove.
14546         * tree.h (fields_compatible_p, find_compatible_field): Remove.
14547         * gimple.c (gimple_compare_field_offset): Adjust block comment.
14548
14549 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
14550
14551         * combine.c (try_combine): Remove useless local variable.
14552
14553 2011-04-03  Richard Guenther  <rguenther@suse.de>
14554             Ira Rosen  <ira.rosen@linaro.org>
14555
14556         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
14557         non-variable offsets and compare the remaining bases of the two
14558         accesses instead of looking for exact same data-ref.
14559
14560 2011-04-02  Kai Tietz  <ktietz@redhat.com>
14561
14562         PR target/48416
14563         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
14564
14565         * i386.c (ix86_is_msabi_thiscall): New helper function.
14566         (ix86_is_type_thiscall): New helper function.
14567         (ix86_comp_type_attributes): Handle thiscall for method-functions
14568         special.
14569         (init_cumulative_args): Likewise.
14570         (find_drap_reg): Likewise.
14571         (ix86_static_chain): Likewise.
14572         (x86_this_parameter): Likewise.
14573         (x86_output_mi_thunk): Likewise.
14574
14575 2011-04-01  Olivier Hainque  <hainque@adacore.com>
14576             Nicolas Setton  <setton@adacore.com>
14577             Eric Botcazou  <ebotcazou@adacore.com>
14578
14579         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
14580         (add_gnat_descriptive_type_attribute): New function.
14581         (gen_array_type_die): Call it.
14582         (gen_enumeration_type_die): Likewise.
14583         (gen_struct_or_union_type_die): Likewise.
14584         (modified_type_die): Likewise.
14585         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
14586         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
14587         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
14588
14589 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
14590
14591         PR bootstrap/48148
14592         * dwarf2out.c (resolve_addr): Don't call force_decl_die
14593         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
14594
14595         Revert:
14596         2011-03-17  Richard Guenther  <rguenther@suse.de>
14597
14598         PR bootstrap/48148
14599         * lto-cgraph.c (input_overwrite_node): Clear the abstract
14600         origin for decls in other ltrans units.
14601         (input_varpool_node): Likewise.
14602
14603 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
14604
14605         PR middle-end/48335
14606         * expr.c (expand_assignment): Handle all possibilities
14607         if TO_RTX is CONCAT.
14608         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
14609         (store_split_bit_field): If SUBREG_REG (op0) or
14610         op0 itself has smaller mode than word, return it
14611         for offset 0 and const0_rtx for out-of-bounds stores.
14612         If word is const0_rtx, skip it.
14613
14614 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
14615
14616         * config/h8300/h8300.c (print_operand_address): Rename to...
14617         (h8300_print_operand_address): ...this. Make static. Adjust comments.
14618         Call h8300_print_operand and h8300_print_operand_address instead of
14619         print_operand and print_operand_address. Declare.
14620         (print_operand): Renake to...
14621         (h8300_print_operand): ...this. Make static. Adjust comments.
14622         Call h8300_print_operand instead of print_operand. Declare.
14623         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
14624         (h8300_register_move_cost): Likewise.
14625         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
14626         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
14627         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
14628         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
14629         * config/h8300/h8300-protos.h (print_operand): Delete.
14630         (print_operand_address): Delete.
14631
14632 2011-04-01  Richard Henderson  <rth@redhat.com>
14633
14634         PR 48400
14635         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
14636         in strict mode before dwarf4.  Re-order tests to early out
14637         before switching sections.
14638
14639 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
14640
14641         * config/h8300/constraints.md: New file.
14642         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
14643         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
14644         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
14645         * config/h8300/predicates.md (bit_operand): Likewise.
14646         (incdec_operand): Use satisfies_constraint_M and
14647         satisfies_constraint_O.  Don't use C code block.
14648         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
14649         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
14650         (compute_mov_length): Use satisfies_constraint_G.
14651         (fix_bit_operand): Use satisfies_constraint_U.
14652         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
14653         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
14654         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
14655         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
14656         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
14657         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
14658         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14659         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
14660         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
14661         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
14662         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
14663         (EXTRA_MEMORY_CONSTRAINT): Delete.
14664
14665 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
14666             Michael Meissner  <meissner@linux.vnet.ibm.com>
14667
14668         PR target/48262
14669         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
14670         operands, as per the specifications.
14671
14672         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
14673         (vec_extract_evenv4sf): Ditto.
14674         (vec_extract_evenv8hi): Ditto.
14675         (vec_extract_evenv16qi): Ditto.
14676         (vec_extract_oddv4si): Ditto.
14677
14678 2011-03-31  Mark Wielaard  <mjw@redhat.com>
14679
14680         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
14681         high_pc attribute if the CU has no associated code. Only output
14682         DW_AT_entry_pc for CU if not generating strict dwarf and
14683         dwarf_version < 4.
14684
14685 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
14686
14687         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
14688         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
14689         out of ...
14690         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
14691         * final.c (final_start_function): Call the new function rather
14692         than using a NULL argument for dwarf2out_frame_debug.
14693
14694         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
14695         that contains the prologue.
14696
14697         * haifa-sched.c (queue_insn): New arg REASON.  All callers
14698         changed.  Print it in debugging output.
14699
14700         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
14701
14702         * sched-ebb.c (begin_schedule_ready): Remove second argument.
14703         Split most of the code into...
14704         (begin_move_insn): ... here.  New function.
14705         (ebb_sched_info): Add a pointer to it.
14706         * haifa-sched.c (scheduled_insns): New static variable.
14707         (sched_extend_ready_list): Allocate it.
14708         (schedule_block): Use it to record the order of scheduled insns.
14709         Perform RTL changes to move insns only after all scheduling
14710         decisions have been made.
14711         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
14712         begin_move_insn field.
14713         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
14714         * sched-int.h (struct haifa_sched_info): Remove second argument
14715         from begin_schedule_ready hook.  Add new member begin_move_insn.
14716         * sched-rgn.c (begin_schedule_ready): Remove second argument.
14717         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
14718
14719         * haifa-sched.c (prune_ready_list): New function, broken out of
14720         schedule_block.
14721         (schedule_block): Use it.
14722
14723 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14724
14725         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
14726
14727 2011-04-01  Kai Tietz  <ktietz@redhat.com>
14728
14729         * config.gcc (*-*-mingw*): Allow as option the
14730         posix threading model.
14731         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
14732         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
14733         definition.
14734         (CPP_SPEC): Add pthread/no-pthread handling.
14735         (LIB_SPEC): Likewise.
14736         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
14737         (LIB_SPEC): Likewise.
14738         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
14739         flag to pass -pthread option for shared libgcc build.
14740         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
14741         for shared libgcc build.
14742         * config/i386/t-mingw-pthread: New file.
14743         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
14744         New define to enable use of library pthread by default.
14745         * config/i386/mingw.opt (pthread): New driver option.
14746         (no-pthread): New driver option.
14747         * config/i386/cygming.opt: Make sure trailing empty line is retained.
14748         * config/i386/mingw-w64.opt: Likewise.
14749
14750 2011-04-01  Gary Funck  <gary@intrepid.com>
14751
14752         * c-decl.c (grokdeclarator): Fix formatting.
14753
14754 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
14755
14756         * expr.c (emit_block_move_via_movmem): Use n_generator_args
14757         instead of n_operands.
14758         (set_storage_via_setmem): Likewise.
14759         * optabs.c (maybe_gen_insn): Likewise.
14760         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
14761         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
14762         (mips_expand_builtin_direct): Likewise.
14763         * config/spu/spu.c (expand_builtin_args): Likewise.
14764
14765 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
14766
14767         * recog.h (insn_data_d): Add n_generator_args.
14768         * genoutput.c (data): Likewise.
14769         (output_insn_data): Print it.
14770         (max_opno, num_dups): Delete.
14771         (scan_operands): Just fill in "d->operand[...]".
14772         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
14773
14774 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
14775
14776         * gensupport.h (pattern_stats): New structure.
14777         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
14778         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
14779         (max_operand_1, max_operand_vec): Delete.
14780         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
14781
14782 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
14783
14784         * emit-rtl.c (emit_pattern_after_setloc): New function.
14785         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
14786         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
14787         (emit_pattern_after): New function.
14788         (emit_insn_after, emit_jump_insn_after): Call it.
14789         (emit_call_insn_after, emit_debug_insn_after): Likewise.
14790         (emit_pattern_before_setloc): New function.
14791         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
14792         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
14793         Likewise.
14794         (emit_pattern_before): New function.
14795         (emit_insn_before, emit_jump_insn_before): Call it.
14796         (emit_call_insn_before, emit_debug_insn_before): Likewise.
14797
14798 2011-03-31  Richard Henderson  <rth@redhat.com>
14799
14800         * dwarf2out.c (dw_separate_line_info_ref): Remove.
14801         (dw_separate_line_info_entry): Remove.
14802         (enum dw_line_info_opcode): New.
14803         (dw_line_info_entry): Use it.
14804         (dw_line_info_table, dw_line_info_table_p): New.
14805         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
14806         (line_info_table, line_info_label_num): Remove.
14807         (line_info_table_in_use): Remove.
14808         (separate_line_info_table): Remove.
14809         (separate_line_info_table_allocated): Remove.
14810         (separate_line_info_table_in_use): Remove.
14811         (LINE_INFO_TABLE_INCREMENT): Remove.
14812         (line_info_label_num): New.
14813         (cur_line_info_table): New.
14814         (text_section_line_info, cold_text_section_line_info): New.
14815         (separate_line_info): New.
14816         (SEPARATE_LINE_CODE_LABEL): Remove.
14817         (print_dwarf_line_table): Remove.
14818         (debug_dwarf): Don't dump it.
14819         (output_one_line_info_table): New.
14820         (output_line_info): Use it.
14821         (new_line_info_table): New.
14822         (set_cur_line_info_table): New.
14823         (dwarf2out_switch_text_section): Use it.
14824         (dwarf2out_begin_function): Likewise.
14825         (push_dw_line_info_entry): New.
14826         (dwarf2out_source_line): Rewrite for new line info tables.
14827         (dwarf2out_init): Remove dead initailizations.
14828
14829 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
14830
14831         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
14832         various flags.
14833         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
14834         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
14835         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
14836         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
14837         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
14838         * opt-functions.awk (flag_init, switch_bit_fields): New.
14839         (switch_flags): Don't handle flags moved to bit-fields.  Don't
14840         generate CL_MISSING_OK or CL_SAVE.
14841         * optc-gen.awk: Update to generate bit-field output as well as
14842         flags field.
14843         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
14844         bit-field instead of CL_REJECT_DRIVER flag.
14845         * opts-common.c (generate_canonical_option,
14846         decode_cmdline_option): Use bit-fields instead of CL_* flags.
14847         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
14848         instead of CL_REJECT_NEGATIVE flag.
14849         * toplev.c (print_switch_values): Use cl_report bit-field instead
14850         of CL_REPORT flag.
14851
14852 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
14853
14854         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
14855         a zero minimum index only if it is redundant.
14856
14857 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
14858
14859         PR rtl-optimization/48381
14860         * ira-color.c (assign_hard_reg): Use hard reg set intersection
14861         instead of ira_class_hard_reg_index for calculating conflicting
14862         hard registers.
14863
14864 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
14865
14866         * cprop.c: Clean up hash table building.
14867         (reg_avail_info): Remove.
14868         (oprs_available_p): Remove.
14869         (record_last_reg_set_info): Remove.
14870         (record_last_set_info): Remove.
14871         (reg_available_p): New function.
14872         (gcse_constant_p): Do not treat unfolded conditions as constants.
14873         (make_set_regs_unavailable): New function.
14874         (hash_scan_set): Simplify with new reg_available_p.
14875         (compute_hash_table_work): Traverse insns stream only once.
14876         Do not compute reg_avail_info. Traverse insns in reverse order.
14877         Record implicit sets after recording explicit sets from the block.
14878
14879 2011-03-31  Michael Matz  <matz@suse.de>
14880
14881         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
14882
14883 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
14884
14885         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
14886         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
14887         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14888         (h8300_mode_dependent_address_p): New function.
14889         (h8300_get_index): Make static.
14890
14891 2011-03-31  Jeff Law  <law@redhat.com>
14892
14893         * reload1.c (elimination_effects): Fix typo in recent change.
14894
14895         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
14896         typo potentially leading to null pointer dereference.
14897
14898         * caller-save.c (new_saved_hard_reg): Eliminate return value.
14899         (setup_save_areas): Corresponding changes to avoid useless
14900         assignments.
14901
14902         * jump.c (reversed_comparison_code_parts): Avoid successive return
14903         statements when REVERSE_CONDITION is defined.
14904
14905         * expr.c (expand_assignment): Avoid useless assignments.
14906         (expand_expr_real_1): Likewise.
14907         (expand_expr_real_2): Avoid useless statements.
14908
14909         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
14910
14911         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
14912
14913         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
14914         statements.
14915
14916         * stmt.c (expand_expr_stmt): Avoid useless assignment.
14917
14918 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
14919
14920         PR target/47109
14921         * doc/tm.texi.in (TARGET_VERSION): Remove.
14922         * doc/tm.texi: Regenerate.
14923         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
14924         * collect2.c (main): Don't use TARGET_VERSION.
14925         * mips-tdump.c (main): Don't use TARGET_VERSION.
14926         * mips-tfile.c (main): Don't use TARGET_VERSION.
14927         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
14928         * config/rs6000/vxworksae.h: Remove.
14929         * config/alpha/alpha.h (TARGET_VERSION): Remove.
14930         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
14931         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
14932         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
14933         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
14934         * config/arm/arm.h (TARGET_VERSION): Remove.
14935         * config/arm/coff.h (TARGET_VERSION): Remove.
14936         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
14937         * config/arm/elf.h (TARGET_VERSION): Remove.
14938         * config/arm/freebsd.h (TARGET_VERSION): Remove.
14939         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
14940         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
14941         * config/arm/pe.h (TARGET_VERSION): Remove.
14942         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
14943         * config/arm/semi.h (TARGET_VERSION): Remove.
14944         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
14945         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
14946         * config/arm/vxworks.h (TARGET_VERSION): Remove.
14947         * config/avr/avr.h (TARGET_VERSION): Remove.
14948         * config/bfin/bfin.h (TARGET_VERSION): Remove.
14949         * config/fr30/fr30.h (TARGET_VERSION): Remove.
14950         * config/frv/frv.h (TARGET_VERSION): Remove.
14951         * config/h8300/h8300.h (TARGET_VERSION): Remove.
14952         * config/i386/cygwin.h (TARGET_VERSION): Remove.
14953         * config/i386/darwin.h (TARGET_VERSION): Remove.
14954         * config/i386/darwin64.h (TARGET_VERSION): Remove.
14955         * config/i386/djgpp.h (TARGET_VERSION): Remove.
14956         * config/i386/freebsd.h (TARGET_VERSION): Remove.
14957         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
14958         * config/i386/gnu.h (TARGET_VERSION): Remove.
14959         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
14960         * config/i386/i386elf.h (TARGET_VERSION): Remove.
14961         * config/i386/linux.h (TARGET_VERSION): Remove.
14962         * config/i386/linux64.h (TARGET_VERSION): Remove.
14963         * config/i386/lynx.h (TARGET_VERSION): Remove.
14964         * config/i386/mingw32.h (TARGET_VERSION): Remove.
14965         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
14966         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
14967         * config/i386/netware.h (TARGET_VERSION): Remove.
14968         * config/i386/nto.h (TARGET_VERSION): Remove.
14969         * config/i386/openbsd.h (TARGET_VERSION): Remove.
14970         * config/i386/vxworks.h (TARGET_VERSION): Remove.
14971         * config/ia64/elf.h (TARGET_VERSION): Remove.
14972         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
14973         * config/ia64/hpux.h (TARGET_VERSION): Remove.
14974         * config/ia64/linux.h (TARGET_VERSION): Remove.
14975         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
14976         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
14977         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
14978         * config/lm32/lm32.h (TARGET_VERSION): Remove.
14979         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
14980         * config/m32c/m32c.h (TARGET_VERSION): Remove.
14981         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
14982         * config/m32r/m32r.h (TARGET_VERSION): Remove.
14983         * config/m68k/linux.h (TARGET_VERSION): Remove.
14984         * config/m68k/m68k.h (TARGET_VERSION): Remove.
14985         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
14986         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
14987         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
14988         * config/mep/mep.h (TARGET_VERSION): Remove.
14989         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
14990         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
14991         * config/mips/iris6.h (MACHINE_TYPE): Remove.
14992         * config/mips/linux.h (TARGET_VERSION): Remove.
14993         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
14994         * config/mips/vxworks.h (TARGET_VERSION): Remove.
14995         * config/mmix/mmix.h (TARGET_VERSION): Remove.
14996         * config/mn10300/linux.h (TARGET_VERSION): Remove.
14997         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
14998         * config/pa/pa.h (TARGET_VERSION): Remove.
14999         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
15000         * config/picochip/picochip.h (TARGET_VERSION): Remove.
15001         * config/rs6000/aix.h (TARGET_VERSION): Remove.
15002         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
15003         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
15004         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
15005         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
15006         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
15007         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
15008         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
15009         * config/rs6000/linux.h (TARGET_VERSION): Remove.
15010         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
15011         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
15012         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
15013         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
15014         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
15015         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
15016         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
15017         * config/s390/linux.h (TARGET_VERSION): Remove.
15018         * config/s390/s390.h (TARGET_VERSION): Remove.
15019         * config/s390/tpf.h (TARGET_VERSION): Remove.
15020         * config/score/score.h (TARGET_VERSION): Remove.
15021         * config/sh/linux.h (TARGET_VERSION): Remove.
15022         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
15023         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
15024         * config/sh/sh.h (TARGET_VERSION): Remove.
15025         * config/sh/sh64.h (TARGET_VERSION): Remove.
15026         * config/sh/superh.h (TARGET_VERSION): Remove.
15027         * config/sh/vxworks.h (TARGET_VERSION): Remove.
15028         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
15029         * config/sparc/linux.h (TARGET_VERSION): Remove.
15030         * config/sparc/linux64.h (TARGET_VERSION): Remove.
15031         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
15032         TARGET_NAME32, TARGET_NAME): Remove.
15033         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
15034         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
15035         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
15036         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
15037         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
15038         * config/spu/spu.h (TARGET_VERSION): Remove.
15039         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
15040         * config/v850/v850.h (TARGET_VERSION): Remove.
15041         * config/vax/linux.h (TARGET_VERSION): Remove.
15042         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
15043         * config/xtensa/elf.h (TARGET_VERSION): Remove.
15044         * config/xtensa/linux.h (TARGET_VERSION): Remove.
15045
15046 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
15047
15048         PR target/48142
15049         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
15050         frame-related from frame-unrelated adjustments to the stack pointer.
15051
15052 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
15053
15054         * common.opt (fdebug-types-section): Move earlier.
15055         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
15056
15057 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
15058
15059         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
15060         var.
15061
15062 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
15063
15064         * tree.h (CASE_CHAIN): Define.
15065         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
15066         (gimple_redirect_edge_and_branch): Likewise.
15067
15068 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15069
15070         PR middle-end/48367
15071         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
15072         calculation.
15073
15074 2011-03-30  Jeff Law  <law@redhat.com>
15075
15076         * PR bootstrap/48371
15077         * reload1.c (reload): Fix botch in last change.
15078
15079         * reload.h (struct reload): Fix typo introduced in last change.
15080
15081 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15082
15083         * config/arm/arm.opt (mhard-float, msoft-float): Mark
15084         Undocumented.  Remove help text.
15085         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
15086         -mhard-float.
15087
15088 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15089
15090         * doc/options.texi (NegativeAlias): Document.
15091         (Alias): Mention NegativeAlias.
15092         * opt-functions.awk: Handle NegativeAlias.
15093         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
15094         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
15095         * opts.h (CL_NEGATIVE_ALIAS): Define.
15096         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
15097         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
15098         OPT_mspe_.
15099         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
15100         Alias entries.
15101         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15102         mno-spe and mno-isel instead of mspe=no and -misel=no.
15103
15104 2011-03-29  Mark Wielaard  <mjw@redhat.com>
15105
15106         * common.opt (fdebug-types-section): New flag.
15107         * doc/invoke.texi: Document new -fno-debug-types-section flag.
15108         * dwarf2out.c (use_debug_types): New define.
15109         (struct die_struct): Mark die_id with GTY desc use_debug_types.
15110         (print_die): Guard output of type unit signatures using
15111         use_debug_types.
15112         (build_abbrev_table): Replace assert of dwarf_version >= 4
15113         with assert on use_debug_types.
15114         (size_of_die): Likewise.
15115         (unmark_dies): Likewise.
15116         (value_format): Decide AT_ref_external form on use_debug_types.
15117         (output_die): Replace dwarf_version version check guard with
15118         use_debug_types where appropriate.
15119         (modified_type_die): Likewise.
15120         (gen_reference_type_die): Likewise.
15121         (dwarf2out_start_source_file): Likewise.
15122         (dwarf2out_end_source_file): Likewise.
15123         (prune_unused_types_walk_attribs): Likewise.
15124         (dwarf2out_finish): Likewise.
15125
15126 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15127
15128         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
15129
15130 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
15131
15132         PR rtl-optimization/48332
15133         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
15134         mode of input operand N and modeN to its actual mode.
15135
15136 2011-03-30  Jeff Law  <law@redhat.com>
15137
15138         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
15139         define accessor macro.
15140         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
15141         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
15142         (reg_equiv_init): Likewise.
15143         (reg_equivs_size): New variable.
15144         (reg_equiv_init_size): Remove.
15145         (allocate_initial_values): Move prototype to here from....
15146         * integrate.h (allocate_initial_values): Remove prototype.
15147         * integrate.c: Include reload.h.
15148         (allocate_initial_values): Corresponding changes.
15149         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
15150         (fix_reg_equiv_init, no_equiv): Corresponding changes.
15151         (update_equiv_regs): Corresponding changes.
15152         (ira): Corresponding changes.
15153         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
15154         (push_secondary_reload): Corresponding changes.
15155         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
15156         (make_memloc, find_reloads_address): Corresponding changes.
15157         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
15158         (find_reloads_address_1): Corresponding changes.
15159         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
15160         (refers_to_regno_for_reload_p): Corresponding changes.
15161         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
15162         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
15163         * reload1.c: Include ggc.h.
15164         (grow_reg_equivs): New function.
15165         (replace_pseudos_in, reload): Corresponding changes.
15166         (calculate_needs_all_insns, alter_regs): Corresponding changes.
15167         (eliminate_regs_1, elimination_effects): Corresponding changes.
15168         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
15169         (delete_output_reload): Likewise.
15170         * caller-save.c (mark_referenced_regs): Corresponding changes.
15171         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
15172         * frv/predicates.md (frv_load_operand): Corresponding changes.
15173         * microblaze/microblaze.c (double_memory_operand): Corresponding
15174         changes.
15175         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
15176         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
15177         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
15178         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
15179         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
15180         changes.
15181         * pa/pa.c (emit_move_sequence): Corresponding changes.
15182         * vax/vax.c (nonindexed_address_p): Corresponding changes.
15183
15184 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
15185
15186         PR target/47551
15187         * config/arm/arm.c (coproc_secondary_reload_class): Handle
15188         structure modes.  Don't check neon_vector_mem_operand for
15189         vector or structure modes.
15190
15191 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
15192             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15193
15194         PR target/43590
15195         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
15196         operand 1 and reshuffle the operands to match.
15197         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
15198
15199 2011-03-30  Christian Schüler  <cschueler@gmx.de>
15200
15201         PR driver/48208
15202         * config/c.opt (F): Added 'Driver' to -F option.
15203
15204         PR driver/48260
15205         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
15206           handler function.
15207         * config/darwin.opt: Added '-arch' option.
15208
15209 2011-03-30  Nick Clifton  <nickc@redhat.com>
15210
15211         * config/rx/rx.md: Add peepholes and patterns to combine
15212         extending loads and simple arithmetic instructions.
15213         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
15214         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
15215         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
15216         modes to use pre-decrement and post-increment addressing.
15217         (rx_is_restricted_memory_address): Add range checking of REG+INT
15218         addresses.
15219         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
15220         (rx_memory_move_cost): Adjust cost of stores.
15221         (rx_adjust_insn_length): New function.
15222
15223 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
15224
15225         PR c/48305
15226         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
15227         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
15228         matching arg00/arg01 types.
15229
15230 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
15231
15232         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
15233         last_location to UNKNOWN_LOCATION.
15234
15235 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
15236
15237         PR target/48349
15238         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
15239         FLOAT_SSE_REGS.
15240
15241 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
15242             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15243
15244         PR bootstrap/48337
15245         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
15246         Init(PROCESSOR_V7).
15247         (sparc_cpu): Likewise.
15248         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
15249         PROCESSOR_V7.
15250
15251 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
15252
15253         PR target/48336
15254         PR middle-end/48342
15255         PR rtl-optimization/48345
15256         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
15257         hard regs for given mode from profitable regs when doing secondary
15258         allocation.
15259
15260 2011-03-29  Jeff Law  <law@redhat.com>
15261
15262         PR bootstrap/48327
15263         * tree-ssa-threadupdate.c (struct redirection_data): Remove
15264         do_not_duplicate field.
15265         (lookup_redirection_data): Corresponding changes.
15266         (create_duplicates): Always create a template block.
15267         (redirect_edges): Remove code which reused the original block
15268         when it was going to become unreachable code.
15269         (thread_block): Don't set do_not_duplicate field.
15270
15271 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
15272
15273         * lto-opts.c (register_user_option_p, lto_register_user_option):
15274         Make type argument unsigned.
15275         * lto-streamer.h (lto_register_user_option): Make type argument
15276         unsigned.
15277         * opth-gen.awk: Make CL_* macros unsigned.
15278         * opts-common.c (find_opt): Make lang_mask argument unsigned.
15279         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
15280         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
15281         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
15282         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
15283         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
15284         (find_opt): Make lang_mask argument unsigned.
15285
15286 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
15287
15288         PR rtl-optimization/48331
15289         PR rtl-optimization/48334
15290         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
15291         for any used algorithm.
15292
15293 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
15294
15295         * ira-conflicts.c (build_object_conflicts): Add unused attribute
15296         to parent_max.
15297
15298 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
15299
15300         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
15301         (alpha_option_override): Don't set alpha_sr_alias_set.
15302         (emit_frame_store_1): Use gen_frame_mem rather than calling
15303         set_mem_alias_set.
15304         (alpha_expand_epilogue): Ditto.
15305
15306 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
15307
15308         PR tree-optimization/48290
15309         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
15310         vectorization, check that relevant phis in the basic block after
15311         the inner loop are really inner loop's exit phis.
15312
15313 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
15314
15315         PR debug/48190
15316         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
15317         (cached_dw_loc_list_def): New structure.
15318         (cached_dw_loc_list): New typedef.
15319         (cached_dw_loc_list_table): New variable.
15320         (cached_dw_loc_list_table_hash): New function.
15321         (cached_dw_loc_list_table_eq): Likewise.
15322         (add_location_or_const_value_attribute): Take a bool cache_p.
15323         Cache the list when the parameter is true.
15324         (gen_formal_parameter_die): Update caller.
15325         (gen_variable_die): Likewise.
15326         (dwarf2out_finish): Likewise.
15327         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
15328         while generating debug info for the decl.
15329         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
15330         (dwarf2out_init): Initialize cached_dw_loc_list_table.
15331         (resolve_addr): Cache the result of resolving a chain of
15332         location lists.
15333
15334 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
15335
15336         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
15337         conflict object hard regset nodes have intersecting hard reg sets.
15338
15339         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
15340         after regstat_init_n_sets_and_refs.
15341
15342         * ira.c: Add more comments at the top.
15343         (setup_stack_reg_pressure_class, setup_pressure_classes):
15344         Add comments how we compute the register pressure classes.
15345         (setup_allocno_and_important_classes): Add more comments.
15346         (setup_class_translate_array, reorder_important_classes)
15347         (setup_reg_class_relations): Add comments.
15348
15349         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
15350         start of the file.
15351
15352         * ira-color.c: Add 2011 to the Copyright line.
15353         (assign_hard_reg):  Add more comments.
15354         (improve_allocation): Ditto.
15355
15356         * ira-costs.c: Add 2011 to the Copyright line.
15357         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
15358         comments.
15359         (setup_regno_cost_classes_by_mode): Ditto.
15360
15361         Initial patches from ira-improv branch:
15362
15363         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
15364
15365         * ira-build.c (ira_create_object): Remove initialization of
15366         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
15367         (ira_create_allocno): Remove initialization of
15368         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
15369         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
15370         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15371         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
15372         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
15373         Initialize ALLOCNO_ADD_DATA.
15374         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
15375         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
15376         ALLOCNO_REG.
15377         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
15378         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
15379
15380         * ira.c (ira_reallocate): Remove.
15381         (setup_pressure_classes): Call
15382         ira_init_register_move_cost_if_necessary.  Use
15383         ira_register_move_cost instead of ira_get_register_move_cost.
15384         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
15385         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
15386
15387         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
15388         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15389         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
15390         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
15391         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
15392         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
15393         Fix formatting.
15394         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
15395         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
15396         (struct allocno_color_data): New.
15397         (allocno_color_data_t): New typedef.
15398         (allocno_color_data): New definition.
15399         (ALLOCNO_COLOR_DATA): New macro.
15400         (struct object_color_data): New.
15401         (object_color_data_t): New typedef.
15402         (object_color_data): New definition.
15403         (OBJECT_COLOR_DATA): New macro.
15404         (update_copy_costs, calculate_allocno_spill_cost): Call
15405         ira_init_register_move_cost_if_necessary.  Use
15406         ira_register_move_cost instead of ira_get_register_move_cost.
15407         (move_spill_restore, update_curr_costs): Ditto.
15408         (allocno_spill_priority): Make it inline.
15409         (color_pass): Allocate and free allocno_color_dat and object_color_data.
15410         (struct coalesce_data, coalesce_data_t): New.
15411         (allocno_coalesce_data): New definition.
15412         (ALLOCNO_COALESCE_DATA): New macro.
15413         (merge_allocnos, coalesced_allocno_conflict_p): Use
15414         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
15415         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
15416         (coalesce_allocnos): Ditto.
15417         (setup_coalesced_allocno_costs_and_nums): Ditto.
15418         (collect_spilled_coalesced_allocnos): Ditto.
15419         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
15420         (setup_slot_coalesced_allocno_live_ranges): Ditto.
15421         (coalesce_spill_slots): Ditto.
15422         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
15423         free allocno_coalesce_data.
15424
15425         * ira-conflicts.c: Fix formatting.
15426         (process_regs_for_copy): Call
15427         ira_init_register_move_cost_if_necessary.  Use
15428         ira_register_move_cost instead of ira_get_register_move_cost.
15429         (build_object_conflicts): Optimize.
15430
15431         * ira-costs.c (record_reg_classes): Optimize.  Call
15432         ira_init_register_move_cost_if_necessary.  Use
15433         ira_register_move_cost, ira_may_move_in_cost, and
15434         ira_may_move_out_cost instead of ira_get_register_move_cost and
15435         ira_get_may_move_cost.
15436         (record_address_regs): Ditto.
15437         (scan_one_insn): Optimize.
15438         (find_costs_and_classes): Optimize.
15439         (process_bb_node_for_hard_reg_moves): Call
15440         ira_init_register_move_cost_if_necessary.  Use
15441         ira_register_move_cost instead of ira_get_register_move_cost.
15442
15443         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
15444         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
15445         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
15446         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
15447         definitions.
15448         (ira_initiate_emit_data, ira_finish_emit_data)
15449         (create_new_allocno): New functions.
15450         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
15451         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
15452         Use ira_register_move_cost instead of ira_get_register_move_cost.
15453
15454         * ira-int.h: Fix some comments.
15455         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
15456         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
15457         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
15458         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
15459         add_data.
15460         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
15461         bitfield after mode.  Make hard_regno a short int.  Make
15462         hard_regno short.  Remove first_coalesced_allocno and
15463         next_coalesced_allocno.  Move mem_optimized_dest_p,
15464         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
15465         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
15466         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
15467         temp, colorable_p.  Add new member add_data.
15468         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
15469         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
15470         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
15471         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
15472         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
15473         (ALLOCNO_ADD_DATA): New macro.
15474         (ira_emit_data_t): New typedef.
15475         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
15476         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
15477         from struct ira_allocno.
15478         (ALLOCNO_EMIT_DATA): New macro.
15479         (ira_allocno_emit_data, allocno_emit_reg): New.
15480         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
15481         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
15482         (OBJECT_ADD_DATA): New macro.
15483         (ira_reallocate): Remove.
15484         (ira_initiate_emit_data, ira_finish_emit_data): New.
15485         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
15486         (ira_init_register_move_cost_if_necessary): New.
15487         (ira_object_conflict_iter_next): Merge into
15488         ira_object_conflict_iter_cond.
15489         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
15490
15491         * ira-live.c (process_single_reg_class_operands): Call
15492         ira_init_register_move_cost_if_necessary.  Use
15493         ira_register_move_cost instead of ira_get_register_move_cost.
15494
15495         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
15496
15497         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
15498
15499         * ira-costs.c: Fix formatting.
15500         (cost_classes, cost_classes_num): Remove.
15501         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
15502         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
15503         (cost_classes_del, cost_classes_htab): New.
15504         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
15505         (initiate_regno_cost_classes, setup_cost_classes): New.
15506         (setup_regno_cost_classes_by_aclass): New.
15507         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
15508         (record_reg_classes): Use regno_cost_classes instead of
15509         cost_classes.  Move checking opposite operand up.
15510         (record_address_regs): Use regno_cost_classes
15511         instead of cost_classes.
15512         (scan_one_insn): Ditto.  Use always general register.
15513         (print_allocno_costs): Use regno_cost_classes instead of
15514         cost_classes.
15515         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
15516         (find_costs_and_classes): Set up cost classes for each registers.
15517         Use also their mode for this.  Use regno_cost_classes instead of
15518         cost_classes.
15519         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
15520         cost_classes.
15521         (free_ira_costs, ira_init_costs): Don't use cost_classes.
15522         (ira_costs, ira_set_pseudo_classes): Call
15523         initiate_regno_cost_classes and finish_regno_cost_classes.
15524
15525         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
15526
15527         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
15528
15529         * target.def (ira_cover_classes): Remove.
15530
15531         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
15532
15533         * doc/tm.texi.in: Ditto.
15534
15535         * ira-conflicts.c: Remove mentioning cover classes from the file.
15536         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
15537         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
15538
15539         * targhooks.c (default_ira_cover_classes): Remove.
15540
15541         * targhooks.h (default_ira_cover_classes): Ditto.
15542
15543         * haifa-sched.c: Remove mentioning cover classes from the file.
15544         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
15545         ira_pressure_classes and ira_pressure_classes_num instead of
15546         ira_reg_class_cover_size and ira_reg_class_cover.  Use
15547         sched_regno_pressure_class instead of sched_regno_cover_class.
15548         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
15549         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15550
15551         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
15552         classes from the file.
15553         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
15554         (struct object_hard_regs, struct object_hard_regs_node): New.
15555         (struct ira_object): New members profitable_hard_regs,
15556         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
15557         (struct ira_allocno): Rename cover_class to aclass.  Rename
15558         cover_class_cost and updated_cover_class_cost to class_cost and
15559         updated_class_cost.  Remove splay_removed_p and
15560         left_conflict_size.  Add new members colorable_p.
15561         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
15562         (ALLOCNO_COLORABLE_P): New macro.
15563         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
15564         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
15565         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
15566         (OBJECT_...): Rename parameter C to O.
15567         (OBJECT_PROFITABLE_HARD_REGS): New macro.
15568         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
15569         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
15570         (struct target_ira_int): New members x_ira_max_memory_move_cost,
15571         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
15572         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
15573         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
15574         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
15575         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
15576         x_ira_reg_class_subunion.
15577         (ira_max_memory_move_cost, ira_max_register_move_cost)
15578         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
15579         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
15580         (ira_important_class_nums, ira_reg_class_superunion): New macros.
15581         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
15582         (ira_reg_class_union): Rename to ira_reg_class_subunion.
15583         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
15584         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
15585         (ira_tune_allocno_costs_and_cover_classes): Rename to
15586         ira_tune_allocno_costs.
15587         (ira_debug_hard_regs_forest): New.
15588         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
15589         (ira_object_conflict_iter_next): Fix comments.
15590         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
15591         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
15592         cover_class to aclass.
15593         (ira_allocate_and_accumulate_costs): Ditto.
15594         (ira_allocate_and_set_or_copy_costs): Ditto.
15595
15596         * opts.c (decode_options): Remove ira_cover_class check.
15597
15598         * ira-color.c: Remove mentioning cover classes from the file.  Use
15599         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
15600         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
15601         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
15602         (splay-tree.h): Remove include.
15603         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
15604         before copy_freq_compare_func.
15605         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
15606         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
15607         New definitions.
15608         (hard_regs_roots, hard_regs_node_vec): Ditto.
15609         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
15610         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
15611         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
15612         (create_new_object_hard_regs_node): Ditto.
15613         (add_new_object_hard_regs_node_to_forest): Ditto.
15614         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
15615         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
15616         Ditto.
15617         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
15618         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
15619         (remove_unused_object_hard_regs_nodes): Ditto.
15620         (enumerate_object_hard_regs_nodes): Ditto.
15621         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
15622         (object_hard_regs_subnode_t): Ditto.
15623         (struct object_hard_regs_subnode): Ditto.
15624         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
15625         (setup_object_hard_regs_subnode_index): Ditto.
15626         (get_object_hard_regs_subnodes_num): Ditto.
15627         (form_object_hard_regs_nodes_forest): Ditto.
15628         (finish_object_hard_regs_nodes_tree): Ditto.
15629         (finish_object_hard_regs_nodes_forest): Ditto.
15630         (allocnos_have_intersected_live_ranges_p): Rename to
15631         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
15632         (pseudos_have_intersected_live_ranges_p): Rename to
15633         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
15634         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
15635         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
15636         (update_copy_costs): Remove assert.  Skip cost update if the hard
15637         reg does not belong the class.
15638         (assign_hard_reg): Process only profitable hard regs.
15639         (uncolorable_allocnos_num): Make it scalar.
15640         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
15641         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
15642         and ira_reg_class_max_nregs.
15643         (bucket_allocno_compare_func): Check frequency first.
15644         (sort_bucket): Add compare function as a parameter.
15645         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
15646         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
15647         (push_allocno_to_stack): Rewrite for checking new allocno
15648         colorability.
15649         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
15650         (push_only_colorable): Pass new parameter to sort_bucket.
15651         (push_allocno_to_spill): Remove.
15652         (allocno_spill_priority_compare): Make it inline and rewrite.
15653         (splay_tree_allocate, splay_tree_free): Remove.
15654         (allocno_spill_sort_compare): New function.
15655         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
15656         build and use splay tree.  Choose first allocno in uncolorable
15657         allocno bucket to spill.  Remove setting spill cost.
15658         (all_conflicting_hard_regs): Remove.
15659         (setup_allocno_available_regs_num): Check only profitable hard
15660         regs.  Print info about hard regs nodes.
15661         (setup_allocno_left_conflicts_size): Remove.
15662         (put_allocno_into_bucket): Don't call
15663         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
15664         (improve_allocation): New.
15665         (color_allocnos): Call setup_profitable_hard_regs,
15666         form_object_hard_regs_nodes_forest, improve_allocation,
15667         finish_object_hard_regs_nodes_forest.  Setup spill cost.
15668         (print_loop_title): Use pressure classes.
15669         (color_allocnso): Ditto.
15670         (do_coloring): Remove allocation and freeing splay_tree_node_pool
15671         and allocnos_for_spilling.
15672         (ira_sort_regnos_for_alter_reg): Don't setup members
15673         {first,next}_coalesced_allocno.
15674         (color): Remove allocating and freeing removed_splay_allocno_vec.
15675         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
15676         prohibited_class_mode_regs.
15677
15678         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
15679         formatting.
15680         (update_allocno_pressure_excess_length): Use pressure classes.
15681         (inc_register_pressure, dec_register_pressure): Check for pressure
15682         class.
15683         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
15684         pressure class.  Use ira_reg_class_nregs instead of
15685         ira_reg_class_max_nregs.
15686         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
15687         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
15688         (single_reg_class): Use ira_reg_class_nregs instead of
15689         ira_reg_class_max_nregs.
15690         (process_bb_node_lives): Use pressure classes.
15691
15692         * ira-emit.c: Remove mentioning cover classes from the file.  Use
15693         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
15694         (change_loop): Use pressure classes.
15695         (modify_move_list): Call ira_set_allocno_class instead of
15696         ira_set_allocno_cover_class.
15697
15698         * ira-build.c: Remove mentioning cover classes from the file.  Use
15699         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
15700         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
15701         ALLOCNO_UPDATED_CLASS_COST instead of
15702         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
15703         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
15704         (ira_create_allocno): Remove initialization of
15705         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
15706         ALLOCNO_COLORABLE_P.
15707         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
15708         Update conflict regs for the objects.
15709         (create_cap_allocno): Remove assert.  Don't propagate
15710         ALLOCNO_AVAILABLE_REGS_NUM.
15711         (ira_free_allocno_costs): New function.
15712         (finish_allocno): Change a part of code into call of
15713         ira_free_allocno_costs.
15714         (low_pressure_loop_node_p): Use pressure classes.
15715         (object_range_compare_func): Don't compare classes.
15716         (setup_min_max_conflict_allocno_ids): Ditto.
15717
15718         * loop-invariant.c: Remove mentioning cover classes from the file.
15719         Use ira_pressure_classes and ira_pressure_classes_num instead of
15720         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
15721         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
15722         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15723         Use reg_allocno_class instead of reg_cover_class.
15724         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
15725         STACK_REG_COVER_CLASS.
15726         (get_regno_cover_class): Rename to get_regno_pressure_class.
15727         (move_loop_invariants): Initialize and finalize regstat.
15728
15729         * ira.c: Remove mentioning cover classes from the file.  Add
15730         comments about coloring without cover classes.  Use ALLOCNO_CLASS
15731         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
15732         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
15733         setup_class_subset_and_memory_move_costs.
15734         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
15735         (setup_cover_and_important_classes): Rename to
15736         setup_allocno_and_important_classes.
15737         (setup_class_translate_array): New.
15738         (setup_class_translate): Call it for allocno and pressure classes.
15739         (cover_class_order): Rename to allocno_class_order.
15740         (comp_reg_classes_func): Use ira_allocno_class_translate instead
15741         of ira_class_translate.
15742         (reorder_important_classes): Set up ira_important_class_nums.
15743         (setup_reg_class_relations): Set up ira_reg_class_superunion.
15744         (print_class_cover): Rename to print_classes.  Add parameter.
15745         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
15746         Print pressure classes too.
15747         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
15748         setup_reg_subclasses.
15749         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
15750         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
15751         (setup_prohibited_class_mode_regs): Use
15752         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
15753         (clarify_prohibited_class_mode_regs): New function.
15754         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
15755         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
15756         (ira_init_once): Initialize them.
15757         (free_register_move_costs): Process them.
15758         (ira_init): Move calls of find_reg_classes and
15759         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
15760         Call clarify_prohibited_class_mode_regs.
15761         (ira_no_alloc_reg): Remove.
15762         (too_high_register_pressure_p): Use pressure classes.
15763
15764         * sched-deps.c: Remove mentioning cover classes from the file.
15765         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
15766         ira_pressure_classes and ira_pressure_classes_num instead of
15767         ira_reg_class_cover_size and ira_reg_class_cover.
15768         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
15769         sched_regno_pressure_class instead of sched_regno_cover_class.
15770         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
15771         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15772
15773         * ira.h: Add 2010 to Copyright.
15774         (ira_no_alloc_reg): Remove external.
15775         (struct target_ira): Rename x_ira_hard_regno_cover_class,
15776         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
15777         x_ira_class_translate to x_ira_hard_regno_allocno_class,
15778         x_ira_allocno_classes_num, x_ira_allocno_classes, and
15779         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
15780         x_ira_pressure_classes, x_ira_pressure_class_translate, and
15781         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
15782         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
15783         x_ira_no_alloc_regs.
15784         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
15785         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
15786         ira_allocno_classes_num and ira_allocno_classes.
15787         (ira_class_translate): Rename to ira_allocno_class_translate.
15788         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
15789         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
15790         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
15791         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
15792         (ira_no_alloc_regs): New.
15793
15794         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
15795         classes from the file.  Use ALLOCNO_CLASS instead of
15796         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
15797         ALLOCNO_COVER_CLASS_COST.
15798         (regno_cover_class): Rename to regno_aclass.
15799         (record_reg_classes): Use ira_reg_class_subunion instead of
15800         ira_reg_class_union.
15801         (record_address_regs): Check overflow.
15802         (scan_one_insn): Ditto.
15803         (print_allocno_costs): Print total mem cost fore regional allocation.
15804         (print_pseudo_costs): Use REG_N_REFS.
15805         (find_costs_and_classes): Use classes intersected with them on the
15806         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
15807         ira_reg_class_union.  Use ira_allocno_class_translate and
15808         regno_aclass instead of ira_class_translate and regno_cover_class.
15809         Modify code for finding regno_aclass.  Setup preferred classes for
15810         the next pass.
15811         (setup_allocno_cover_class_and_costs): Rename to
15812         setup_allocno_class_and_costs.  Use regno_aclass instead of
15813         regno_cover_class.  Use ira_set_allocno_class instead of
15814         ira_set_allocno_cover_class.
15815         (init_costs, finish_costs): Use regno_aclass instead of
15816         regno_cover_class.
15817         (ira_costs): Use setup_allocno_class_and_costs instead of
15818         setup_allocno_cover_class_and_costs.
15819         (ira_tune_allocno_costs_and_cover_classes): Rename to
15820         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
15821         by processing objects.  Use ira_reg_class_max_nregs instead of
15822         ira_reg_class_nregs.
15823
15824         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
15825
15826         * sched-int.h: Remove mentioning cover classes from the file.
15827         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
15828
15829         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
15830         classes from the file.
15831         (struct reg_pref): Rename coverclass into allocnoclass.
15832         (reg_cover_class): Rename to reg_allocno_class.
15833
15834         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
15835
15836         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
15837
15838         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
15839
15840         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
15841
15842         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
15843
15844         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
15845
15846         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
15847
15848         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
15849
15850         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
15851
15852         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
15853
15854         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
15855         (i386_ira_cover_classes): Ditto.
15856
15857         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
15858
15859         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
15860
15861         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
15862
15863         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
15864
15865         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
15866
15867         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
15868
15869         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
15870         (mips_ira_cover_classes): Ditto.
15871
15872         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
15873
15874         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
15875
15876         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
15877
15878         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
15879
15880         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
15881
15882         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
15883         (IRA_COVER_CLASSES_VSX): Ditto.
15884
15885         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
15886         (rs6000_ira_cover_classes): Ditto.
15887
15888         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
15889
15890         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
15891
15892         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
15893
15894         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
15895
15896         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
15897
15898         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
15899
15900         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
15901
15902         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
15903
15904         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
15905
15906         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
15907
15908 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
15909
15910         PR debug/48253
15911         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
15912         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
15913         dw_fde_unlikely_section_end_label, cold_in_std_section,
15914         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
15915         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
15916         fields.
15917         (output_fde): Use dw_fde_second_{begin,end} if second is
15918         true, otherwise dw_fde_{begin,end}.
15919         (output_call_frame_info): Test dw_fde_second_begin != NULL
15920         instead of dw_fde_switched_sections.
15921         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
15922         fields, initialize new fields.  Initialize in_std_section
15923         unconditionally from the first partition.
15924         (dwarf2out_end_epilogue): Don't override dw_fde_end when
15925         dw_fde_second_begin is non-NULL.
15926         (dwarf2out_switch_text_section): Stop initializing removed
15927         dw_fde_struct fields, initialize new fields, initialize
15928         also dw_fde_end here.  Set dw_fde_switch_cfi even when
15929         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
15930         (struct var_loc_list_def): Add last_before_switch field.
15931         (arange_table, arange_table_allocated, arange_table_in_use,
15932         ARANGE_TABLE_INCREMENT, add_arange): Removed.
15933         (size_of_aranges): Count !in_std_section and !second_in_std_section
15934         hunks in fdes, instead of looking at arange_table_in_use.
15935         (output_aranges): Add aranges_length argument, don't call
15936         size_of_aranges here.  Instead of using aranges_table*
15937         emit ranges for fdes when !in_std_section resp.
15938         !second_in_std_section.
15939         (dw_loc_list): Break ranges crossing section switch.
15940         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
15941         use dw_fde_second_end instead of dw_fde_end as end of last range.
15942         (gen_subprogram_die): Don't call add_arange.  Use
15943         dw_fde_{begin,end} for first partition and if switched
15944         section dw_fde_second_{begin,end} for the second.
15945         (var_location_switch_text_section_1,
15946         var_location_switch_text_section): New functions.
15947         (dwarf2out_begin_function): Initialize cold_text_section even
15948         when function_section () isn't text_section.
15949         (prune_unused_types): Don't walk arange_table.
15950         (dwarf2out_finish): Don't needlessly test
15951         flag_reorder_blocks_and_partition when testing cold_text_section_used.
15952         If info_section_emitted, call size_of_aranges and if it indicates
15953         non-empty .debug_aranges, call output_aranges with the computed
15954         size.  Stop using removed dw_fde_struct fields, use
15955         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
15956         for second.
15957
15958         PR debug/48203
15959         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
15960         create ENTRY_VALUE if incoming or address of incoming's MEM
15961         is a hard REG.
15962         * dwarf2out.c (mem_loc_descriptor): Don't emit
15963         DW_OP_GNU_entry_value of DW_OP_fbreg.
15964         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
15965         on ENTRY_VALUE is able to find the canonical parameter VALUE.
15966         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
15967         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
15968         ENTRY_VALUE_EXPs.
15969         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
15970         is a REG_P or MEM_P with REG_P address, compute hash directly
15971         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
15972         (preserve_only_constants): Don't clear VALUES forwaring
15973         ENTRY_VALUE to some other VALUE.
15974
15975 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
15976
15977         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
15978         instead of GEN_INT.
15979
15980 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
15981
15982         * cfgexpand.c (expand_gimple_cond): Always set the source location and
15983         block before expanding the statement.
15984         (expand_gimple_stmt_1): Likewise.  Set them here...
15985         (expand_gimple_stmt): ...and not here.  Tidy.
15986         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
15987         unknown.
15988
15989 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
15990
15991         * Makefile.in: New rule for cprop.o.
15992         * gcse.c: Move constant/copy propagation to cprop.c.
15993         (compute_local_properties): Only handle expression tables.
15994         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
15995         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
15996         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
15997         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
15998         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
15999         compute_cprop_data, find_used_regs, try_replace_reg,
16000         find_avail_set, cprop_jump, constprop_register, cprop_insn,
16001         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
16002         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
16003         find_bypass_set, reg_killed_on_edge, bypass_block,
16004         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
16005         execute_rtl_cprop, pass_rtl_cprop): Move to...
16006         * cprop.c: ...here.  New file, constant/copy propagation for RTL
16007         moved from gcse.c to here with minor cleanups in duplicated code.
16008
16009 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
16010
16011         * config/i386/i386.c (flag_opts): Fix a typo in
16012         -mavx256-split-unaligned-store.
16013
16014 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
16015
16016         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
16017         LIBCALL_VALUE): Remove macros.
16018         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16019         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16020         (h8300_function_value, h8300_libcall_value,
16021         h8300_function_value_regno_p): New functions.
16022
16023 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
16024
16025         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
16026
16027 2011-03-28  Jeff Law  <law@redhat.com>
16028
16029         * tree-ssa-threadupdate.c (redirect_edges): Call
16030         create_edge_and_update_destination_phis as needed.
16031         (create_edge_and_update_destination_phis): Accept new BB argument.
16032         All callers updated.
16033         (thread_block): Do not update the profile when threading around
16034         intermediate blocks.
16035         (thread_single_edge): Likewise.
16036         (determine_bb_domination_status): If BB is not a successor of the
16037         loop header, return NONDOMINATING.
16038         (register_jump_thread): Note when we register a jump thread around
16039         an intermediate block.
16040         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
16041         (thread_across_edge): Use it.
16042
16043 2011-03-28  Tristan Gingold  <gingold@adacore.com>
16044
16045         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
16046         when for_return is 2.
16047
16048 2011-03-28  Jeff Law  <law@redhat.com>
16049
16050         * var-tracking.c (canonicalize_values_mark): Delete unused
16051         lhs assignment.
16052         (canonicalize_values_star, set_variable_part): Likewise.
16053         (clobber_variable_part, delete_variable_part): Likewise.
16054
16055 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
16056
16057         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
16058
16059 2011-03-28  Martin Jambor  <mjambor@suse.cz>
16060
16061         * tree-inline.c (expand_call_inline): Do not check that destination
16062         node is analyzed.
16063         (optimize_inline_calls): Assert that destination node is analyzed.
16064         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
16065         not call tree_lowering_passes.
16066         * cgraph.h (cgraph_analyze_function): Declare.
16067         * cgraphunit.c (cgraph_analyze_function): Make public.
16068
16069 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
16070
16071         * config/sparc/sparc-opts.h: New.
16072         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
16073         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
16074         (sparc_option_override): Store processor_type enumeration rather
16075         than string in cpu_default.  Remove name and enumeration from
16076         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
16077         without using sparc_select.  Use target_flags_explicit instead of
16078         fpu_option_set.
16079         * config/sparc/sparc.h (enum processor_type): Move to
16080         sparc-opts.h.
16081         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
16082         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
16083         HeaderInclude entry.
16084         (mcpu=, mtune=): Use Var and Enum.
16085         (sparc_processor_type): New Enum and EnumValue entries.
16086
16087 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16088             Iain Sandoe  <iains@gcc.gnu.org>
16089
16090         PR target/48245
16091         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
16092
16093 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
16094
16095         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
16096         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
16097         Insert new statements at it in lieu of STMT.
16098         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
16099         * tree-vect-stmts.c (vectorizable_store): Likewise.
16100         (vectorizable_load): Likewise.
16101
16102 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
16103
16104         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
16105         (divtf3): Ditto.
16106         (multf3): Ditto.
16107         (subtf3): Ditto.
16108
16109 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16110
16111         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
16112         unaligned 256bit load/store.
16113         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
16114         (*avx_movdqu<avxmodesuffix>): Likewise.
16115
16116 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16117
16118         PR target/48288
16119         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
16120         * config/pa/pa.md (iordi3): Use new predicate in expander.
16121         (iorsi3): Likewise.
16122
16123 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
16124
16125         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
16126         FUNCTION_VALUE_REGNO_P): Remove macros.
16127         * config/mips/mips-protos.h (mips_function_value): Remove.
16128         * config/mips/mips.c (mips_function_value): Rename to...
16129         (mips_function_value_1): ... this. Make static.  Handle receiving
16130         the function type in 'fn_decl_or_type' argument.
16131         (mips_function_value, mips_libcall_value,
16132         mips_function_value_regno_p): New function.
16133         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16134         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16135
16136 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16137
16138         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
16139         and -mavx256-split-unaligned-store.
16140         (ix86_option_override_internal): Split 32-byte AVX unaligned
16141         load/store by default.
16142         (ix86_avx256_split_vector_move_misalign): New.
16143         (ix86_expand_vector_move_misalign): Use it.
16144
16145         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
16146         -mavx256-split-unaligned-store.
16147
16148         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
16149         256bit load/store.  Generate unaligned store on misaligned memory
16150         operand.
16151         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
16152         256bit load/store.
16153         (*avx_movdqu<avxmodesuffix>): Likewise.
16154
16155         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
16156         -mavx256-split-unaligned-store.
16157
16158 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
16159
16160         PR target/38598
16161         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
16162         Update commentary.
16163
16164 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
16165
16166         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
16167         opno arguments with an expand_operand.  Use create_input_operand.
16168         (mips_prepare_builtin_target): Delete.
16169         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
16170         functions.
16171         (mips_expand_builtin_direct): Use create_output_operand and
16172         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
16173         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
16174         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
16175
16176 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
16177
16178         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
16179         function.
16180         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
16181
16182 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
16183
16184         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
16185         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
16186         basic blocks and call commit_edge_insertions directly.
16187         (fixup_abnormal_edges): Move from here to...
16188         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
16189         on the edges and return whether some have actually been inserted.
16190         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
16191         compensation code.
16192
16193 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
16194
16195         PR rtl-optimization/48144
16196         * sel-sched-ir.c (merge_history_vect): Factor out from ...
16197         (merge_expr_data): ... here.
16198         (av_set_intersect): Rename to av_set_code_motion_filter.
16199         Update all callers.  Call merge_history_vect when an expression
16200         is found in both sets.
16201         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
16202
16203 2011-03-26  Alan Modra  <amodra@gmail.com>
16204
16205         * config/rs6000/predicates.md (word_offset_memref_op): Handle
16206         cmodel medium addresses.
16207         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
16208         64-bit gpr loads and stores.
16209         (rs6000_secondary_reload_ppc64): New function.
16210         * config/rs6000/rs6000-protos.h: Declare it.
16211         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
16212
16213 2011-03-26  Alan Modra  <amodra@gmail.com>
16214
16215         PR target/47487
16216         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
16217         GNU Go in traceback table.
16218
16219 2011-03-25  Richard Henderson  <rth@redhat.com>
16220
16221         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
16222         if there are exactly 6 operands.
16223         (set_storage_via_setmem): Similarly.
16224
16225 2011-03-25  Kai Tietz  <ktietz@redhat.com>
16226
16227         * collect2.c (write_c_file_stat): Handle backslash
16228         as right-hand directory separator.
16229         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
16230         checking just for slash.
16231         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
16232         instead of checking for trailing slash.
16233         * gcc.c (record_temp_file): Use filename_cmp instead
16234         of strcmp.
16235         (do_spec_1): Likewise.
16236         (replace_outfile_spec_function): Likewise.
16237         (is_directory): Use filename_ncmp instead of strncmp.
16238         (print_multilib_info): Likewise.
16239         * gcov.c (find_source): Use filename_cmp instead
16240         instead of strcmp.
16241         (make_gcov_file_name): Fix order of slash/backslash
16242         checks.
16243         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
16244         (add_standard_paths): Likewise.
16245         * mips-tfile.c (saber_stop): Handle backslash.
16246         * prefix.c (update_path): Use filename_ncmp instead of
16247         strncmp.
16248         * profile.c (output_location): Use filename_cmp instead
16249         of strcmp.
16250         * read-md.c (handle_toplevel_file): Handle backslash.
16251         * tlink.c (frob_extension):  Likewise.
16252         * tree-cfg.c (same_line_p): Use filename_cmp instead of
16253         strcmp.
16254         * tree-dump.c (dequeue_and_dump): Handle backslash.
16255         * tree.c (get_file_function_name): Likewise.
16256         * gengtype.c (read_input_list): Likewise.
16257         (get_file_realbasename): Likewise.
16258         (get_output_file_with_visibility): Use filename_cmp
16259         instead of strcmp.
16260
16261 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
16262
16263         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
16264         case to VFPv1.
16265
16266 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
16267
16268         * fold-const.c (expr_location_or): New function.
16269         (fold_truth_not_expr): Call it.
16270
16271 2011-03-25  Jeff Law  <law@redhat.com>
16272
16273         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
16274         va_end.
16275         * c-family/c-common.c (def_fn_type): Likewise.
16276         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
16277         * emit-rtl.c (gen_rtvec): Likewise.
16278         * lto/lto-lang.c (def_fn_type): Likewise.
16279
16280 2011-03-25  Richard Guenther  <rguenther@suse.de>
16281
16282         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
16283         also generate copies.
16284         (fini_copy_prop): Handle constant values properly.
16285
16286 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
16287
16288         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
16289         mode size instead of bitsize with DWARF2_ADDR_SIZE.
16290         (hash_loc_operands, compare_loc_operands): Handle
16291         DW_OP_GNU_entry_value.
16292
16293 2011-03-25  Kai Tietz  <ktietz@redhat.com>
16294
16295         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
16296         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
16297         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
16298         comment and use macro TARGET_64BIT_MS_ABI instead.
16299         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
16300         and change default behavior for 32-bit MS_ABI.
16301         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
16302         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
16303         32-bit, too.
16304         (ix86_cfun_abi): Likewise.
16305         (ix86_maybe_switch_abi): Adjust comment.
16306         (init_cumulative_args): Check for bit-ness in MS_ABI case.
16307         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
16308         instead of checking for SYSV_ABI.
16309         (ix86_nsaved_sseregs): Likewise.
16310         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
16311         to 16 bytes.
16312         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
16313         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
16314         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
16315         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
16316         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
16317
16318 2011-03-25  Richard Guenther  <rguenther@suse.de>
16319
16320         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
16321         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16322         (verify_gimple): Remove.
16323         * tree-cfg.c (verify_gimple_call): Merge verification
16324         from verify_stmts.
16325         (verify_gimple_phi): Merge verification from verify_stmts.
16326         (verify_gimple_label): New function.
16327         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
16328         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16329         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
16330         (verify_stmts): Rename to verify_gimple_in_cfg.
16331         (verify_gimple_in_cfg): New function.
16332         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
16333         * tree-ssa.c (verify_ssa): Likewise.
16334         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
16335
16336 2011-03-25  Richard Guenther  <rguenther@suse.de>
16337
16338         * passes.c (init_optimization_passes): Add FRE pass after
16339         early SRA.
16340
16341 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
16342             Andrew Stubbs  <ams@codesourcery.com>
16343
16344         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
16345         for Cortex-A8.
16346         (arm_movdi_vfp_cortexa8): New pattern.
16347         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
16348         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
16349         instructions when tuning for Cortex-A8.  Set attribute "arch".
16350         * config/arm/arm.md: Move include arm-tune.md up a bit.
16351         (define_attr "arch"): Add "onlya8" and "nota8" values.
16352         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
16353
16354 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
16355
16356         PR bootstrap/48282
16357         Revert:
16358         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16359
16360         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16361         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
16362         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16363         * passes.c (init_optimization_passes): Move
16364         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16365
16366 2011-03-25  Kai Tietz  <ktietz@redhat.com>
16367
16368         * c-typeck.c (comptypes_internal): Replace target
16369         hook call of comp_type_attributes by version in tree.c file.
16370         * gimple.c (gimple_types_compatible_p_1): Likewise.
16371         * tree-ssa.c (useless_type_conversion_p): Likewise.
16372         * tree.c (build_type_attribute_qual_variant): Likewise.
16373         (attribute_value_equal): New static helper function.
16374         (comp_type_attributes): New function.
16375         (merge_attributes): Use attribute_value_equal for comparison.
16376         (attribute_list_contained): Likewise.
16377         * tree.h (comp_type_attributes): New prototype.
16378
16379 2011-03-25  Richard Guenther  <rguenther@suse.de>
16380
16381         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
16382         of complex types at -O0.
16383         (verify_gimple_assign_binary): Likewise.
16384         (verify_gimple_assign_ternary): Likewise.
16385
16386 2011-03-24  Mark Wielaard  <mjw@redhat.com>
16387
16388         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
16389         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
16390
16391 2011-03-24  Mark Wielaard  <mjw@redhat.com>
16392
16393         PR debug/48041
16394         * dwarf2out.c (output_abbrev_section): Only write table when
16395         abbrev_die_table_in_use > 1.
16396
16397 2011-02-24  Richard Henderson  <rth@redhat.com>
16398
16399         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
16400         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
16401         (alpha_expand_unaligned_load_words): Use extql.
16402         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
16403         (emit_insxl): Handle all modes for consistency.
16404
16405 2011-02-24  Richard Henderson  <rth@redhat.com>
16406
16407         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
16408         (alpha_expand_unaligned_load): Likewise.
16409         (alpha_expand_unaligned_store): Likewise.
16410         (alpha_expand_unaligned_load_words): Likewise.
16411         (alpha_expand_unaligned_store_words): Likewise.
16412         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
16413         (alpha_split_lock_test_and_set_12): Likewise.
16414         (print_operand, alpha_fold_builtin_extxx): Likewise.
16415         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
16416         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
16417         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
16418         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
16419         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
16420         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
16421         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
16422         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
16423         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
16424         (extwl, extll, extql): Similarly.
16425         (inswh, inslh, insqh): Similarly.
16426         (mskbl, mskwl, mskll, mskql): Similarly.
16427         (mskwh, msklh, mskqh): Similarly.
16428
16429 2011-02-24  Richard Henderson  <rth@redhat.com>
16430
16431         * config/alpha/alpha.md (attribute isa): Add er, ner.
16432         (attribute enabled): Handle them.
16433         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
16434
16435 2011-02-24  Richard Henderson  <rth@redhat.com>
16436
16437         * config/alpha/alpha.md (attribute isa): Add vms.
16438         (attribute enabled): Handle it.
16439         (*movsf): Merge *movsf_{nofix,fix,nofp}.
16440         (*movdf): Merge *movdf_{nofix,fix,nofp}.
16441         (*movtf): Rename from *movtf_internal for consistency.
16442         (*movsi): Merge with *movsi_nt_vms.
16443         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
16444         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
16445         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
16446         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
16447
16448 2011-02-24  Richard Henderson  <rth@redhat.com>
16449
16450         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
16451         (extendqisi2, extendhisi2): Likewise.
16452         (extendqidi2): Simplify BWX/non-BWX expansions.
16453         (extendhidi2): Similarly.
16454
16455 2011-02-24  Richard Henderson  <rth@redhat.com>
16456
16457         * config/alpha/alpha.md (attribute isa): New.
16458         (attribute enabled): New.
16459         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
16460         (zero_extendqisi2, zero_extendqidi2): Similarly.
16461         (zero_extendhisi2, zero_extendhidi2): Similarly.
16462         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
16463
16464 2011-02-24  Richard Henderson  <rth@redhat.com>
16465
16466         * config/alpha/predicates.md (input_operand): Revert last change;
16467         update comment to mention 32-bit VMS rather than Windows.
16468
16469 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16470
16471         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16472         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
16473         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16474         * passes.c (init_optimization_passes): Move
16475         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16476
16477 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
16478
16479         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
16480
16481 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
16482
16483         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
16484         correctly.
16485
16486 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
16487
16488         PR debug/48204
16489         * simplify-rtx.c (simplify_const_unary_operation): Call
16490         real_convert when changing mode class with FLOAT_EXTEND.
16491
16492 2011-03-24  Nick Clifton  <nickc@redhat.com>
16493
16494         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
16495         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
16496         * config/rx/rx.c (rx_option_override): Set align_jumps,
16497         align_loops and align_labels if not set by the user.
16498         (rx_align_for_label): New function.
16499         (rx_max_skip_for_label): New function.
16500         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
16501         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
16502         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
16503         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
16504         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
16505
16506 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
16507
16508         PR rtl-optimization/48263
16509         * optabs.c (expand_binop_directly): Reinstate convert_modes code
16510         and original commutative_p handling.  Use maybe_gen_insn.
16511
16512 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16513
16514         * reload.c (find_reloads_subreg_address): Add address_reloaded
16515         parameter and return true there if the full address has been
16516         reloaded.
16517         (find_reloads_toplev): Pass address_reloaded flag.
16518         (find_reloads_address_1): Don't use address_reloaded parameter.
16519
16520 2011-03-24  Jeff Law  <law@redhat.com>
16521
16522         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
16523         unused variable "ann".
16524         (remove_unused_locals): Likewise.
16525
16526         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
16527         statement.
16528
16529         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
16530         after it is freed.
16531
16532 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16533
16534         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
16535         for invalid symbolic addresses.
16536         (s390_secondary_reload): Don't use s390_check_symref_alignment for
16537         larl operands.
16538
16539 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
16540
16541         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
16542         the argument in calls to fold_truth_not_expr.
16543
16544 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16545
16546         * tree.c (record_node_allocation_statistics): New function.
16547         (make_node_stat, copy_node_stat, build_string): Call it.
16548         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
16549         (build1_stat, build_omp_clause): Likewise.
16550
16551 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
16552
16553         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
16554         last commit.
16555
16556 2011-03-24  Richard Guenther  <rguenther@suse.de>
16557
16558         PR tree-optimization/48271
16559         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
16560         blocks that still exist.
16561
16562 2011-03-24  Richard Guenther  <rguenther@suse.de>
16563
16564         PR tree-optimization/48270
16565         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
16566         not free datarefs before ddrs.
16567
16568 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
16569
16570         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
16571         from the address built for a reference with variable offset.
16572
16573 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
16574
16575         PR target/48237
16576         * config/i386/i386.md (*movdf_internal_rex64): Do not split
16577         alternatives that can be handled with movq or movabsq insn.
16578         (*movdf_internal): Disable for !TARGET_64BIT.
16579         (*movdf_internal_nointeger): Ditto.
16580         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
16581
16582 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
16583
16584         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
16585         (FUNCTION_ARG_ADVANCE): Likewise.
16586         * tm.texi.in: Change references to them to hook references.
16587         * tm.texi: Regenerate.
16588         * targhooks.c (default_function_arg): Eliminate check for target macro.
16589         (default_function_incoming_arg): Likewise.
16590         (default_function_arg_advance): Likewise.
16591         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
16592         (function_arg_advance): Likewise.
16593         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
16594
16595 2011-03-24  Richard Guenther  <rguenther@suse.de>
16596
16597         PR middle-end/48269
16598         * tree-object-size.c (addr_object_size): Do not double-account
16599         for MEM_REF offsets.
16600
16601 2011-03-24  Diego Novillo  <dnovillo@google.com>
16602
16603         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
16604         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
16605         (lto_input_data_block): Move from lto-opts.c.  Make extern.
16606         Update all users.
16607         (lto_input_string): Rename from input_string.  Make extern.
16608         Update all users.
16609         * lto-streamer-out.c (lto_output_string_with_length): Rename from
16610         output_string_with_length.
16611         Output 0 to indicate a non-NULL string.  Update all callers to
16612         not emit 0.
16613         (lto_output_string): Rename from output_string.  Make extern.
16614         Update all users.
16615         (lto_output_decl_state_streams): Make extern.
16616         (lto_output_decl_state_refs): Make extern.
16617         * lto-streamer.h (lto_input_string): Declare.
16618         (lto_input_data_block): Declare.
16619         (lto_output_string): Declare.
16620         (lto_output_string_with_length): Declare.
16621         (lto_output_decl_state_streams): Declare.
16622         (lto_output_decl_state_refs): Declare.
16623
16624 2011-03-24  Richard Guenther  <rguenther@suse.de>
16625
16626         PR tree-optimization/46562
16627         * tree.c (build_invariant_address): New function.
16628         * tree.h (build_invariant_address): Declare.
16629         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
16630         a renamed function moved ...
16631         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
16632         Take valueization callback parameter.
16633         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
16634         * gimple-fold.h: New file.
16635         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
16636         (ccp_fold, fold_const_aggregate_ref,
16637         fold_ctor_reference, fold_nonarray_ctor_reference,
16638         fold_array_ctor_reference, fold_string_cst_ctor_reference,
16639         get_base_constructor): Move ...
16640         * gimple-fold.c: ... here.
16641         (gimple_fold_stmt_to_constant_1): New function
16642         split out from ccp_fold.  Take a valueization callback parameter.
16643         Valueize all operands.
16644         (gimple_fold_stmt_to_constant): New wrapper function.
16645         (fold_const_aggregate_ref_1): New function split out from
16646         fold_const_aggregate_ref.  Take a valueization callback parameter.
16647         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
16648         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
16649         invariant POINTER_PLUS_EXPRs to invariant form.
16650         (vn_valueize): New function.
16651         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
16652         * tree-vrp.c (vrp_valueize): New function.
16653         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
16654         to fold statements to constants.
16655         * tree-ssa-pre.c (eliminate): Properly guard propagation of
16656         function declarations.
16657         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
16658         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
16659
16660 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
16661
16662         * config/h8300/predicates.md (jump_address_operand): Fix register
16663         mode check.
16664
16665 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
16666
16667         * doc/invoke.texi (max-stores-to-sink): Document.
16668         * params.h (MAX_STORES_TO_SINK): Define.
16669         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
16670         if either vectorization or if-conversion is disabled.
16671         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
16672         tree-vect-data-refs.c vect_equal_offsets.
16673         (dr_equal_offsets_p): New function.
16674         (find_data_references_in_bb): Remove static.
16675         * tree-data-ref.h (find_data_references_in_bb): Declare.
16676         (dr_equal_offsets_p): Likewise.
16677         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
16678         (vect_drs_dependent_in_basic_block): Update calls to
16679         vect_equal_offsets.
16680         (vect_check_interleaving): Likewise.
16681         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
16682         (cond_if_else_store_replacement): Rename to...
16683         (cond_if_else_store_replacement_1): ... this.  Change arguments and
16684         documentation.
16685         (cond_if_else_store_replacement): New function.
16686         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
16687         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
16688
16689 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
16690
16691         PR target/46934
16692         * config/arm/arm.md (casesi): Use the gen_int_mode() function
16693         to subtract lower bound instead of GEN_INT().
16694
16695 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
16696
16697         PR other/48179
16698         PR other/48221
16699         PR other/48234
16700         * doc/extend.texi (Alignment): Move section to match order in TOC.
16701         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
16702         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
16703
16704 2011-03-23  Jeff Law  <law@redhat.com>
16705
16706         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
16707         before removing the edge.
16708
16709         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
16710         it may have been freed by redirect_branch_edge or
16711         redirect_edge_succ_nodup.
16712
16713 2011-03-23  Richard Guenther  <rguenther@suse.de>
16714
16715         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
16716         (check_va_list_escapes): Likewise.
16717         (check_all_va_list_escapes): Likewise.
16718
16719 2011-03-23  Richard Guenther  <rguenther@suse.de>
16720
16721         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
16722         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
16723         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
16724         (alias.o): Likewise.
16725         (ipa-type-escape.o): Remove.
16726         (ipa-struct-reorg.o): Likewise.
16727         (GTFILES): Remove ipa-struct-reorg.c.
16728         * alias.c: Do not include ipa-type-escape.h.
16729         * tree-ssa-alias.c: Likewise.
16730         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
16731         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
16732         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
16733         and ipa-type-escape passes.
16734         * tree-pass.h (pass_ipa_type_escape): Remove.
16735         (pass_ipa_struct_reorg): Likewise.
16736         * ipa-struct-reorg.h: Remove.
16737         * ipa-struct-reorg.c: Likewise.
16738         * ipa-type-escape.h: Likewise.
16739         * ipa-type-escape.c: Likewise.
16740         * doc/invoke.texi (-fipa-struct-reorg): Remove.
16741         (--param struct-reorg-cold-struct-ratio): Likewise.
16742         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
16743         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
16744         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
16745
16746 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16747
16748         * config/s390/2084.md: Enable all insn reservations also for z9_ec
16749         cpu attribute value.
16750         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
16751         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
16752         * config/s390/s390.c (processor_flags_table): New constant array.
16753         (s390_handle_arch_option): Remove.
16754         (s390_handle_option): Remove s390_handle_arch_option invocations
16755         and OPT_mwarn_framesize_ handling.
16756         (s390_option_override): Remove s390_handle_arch_option invocation.
16757         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
16758         warnings.
16759         * config/s390/s390.md (cpu attribute): Add z9_ec value.
16760         * config/s390/s390.opt (s390_tune, s390_arch)
16761         (march=): Replace s390_arch_option enum and values with
16762         processor_type.  Set variable name to s390_arch.  Set
16763         initialization value.
16764         (mtune=): Replace s390_arch_option with processor_type.  Set
16765         variable name to s390_tune.  Set initialization value.
16766
16767 2011-03-23  Julian Brown  <julian@codesourcery.com>
16768
16769         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
16770         accesses which are not naturally aligned.
16771
16772 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
16773
16774         PR target/47553
16775         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
16776
16777 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
16778
16779         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
16780         parameter from "int" to "enum insn_code".
16781         (expand_operand_type): New enum.
16782         (expand_operand): New structure.
16783         (create_expand_operand): New function.
16784         (create_fixed_operand, create_output_operand): Likewise
16785         (create_input_operand, create_convert_operand_to): Likewise.
16786         (create_convert_operand_from, create_address_operand): Likewise.
16787         (create_integer_operand): Likewise.
16788         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
16789         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
16790         (expand_insn, expand_jump_insn): Likewise.
16791         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
16792         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
16793         (expand_movstr, expand_builtin___clear_cache): Likewise.
16794         (expand_builtin_lock_release): Likewise.
16795         * explow.c (allocate_dynamic_stack_space): Likewise.
16796         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
16797         and use the default handling in that case.
16798         * expmed.c (check_predicate_volatile_ok): Delete.
16799         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
16800         (emit_cstore): Likewise.
16801         * expr.c (emit_block_move_via_movmem): Likewise.
16802         (set_storage_via_setmem, expand_assignment): Likewise.
16803         (emit_storent_insn, try_casesi): Likewise.
16804         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
16805         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
16806         (expand_vec_shift_expr, expand_binop_directly): Likewise.
16807         (expand_twoval_unop, expand_twoval_binop): Likewise.
16808         (expand_unop_direct, emit_indirect_jump): Likewise.
16809         (emit_conditional_move, vector_compare_rtx): Likewise.
16810         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
16811         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
16812         (expand_sync_lock_test_and_set): Likewise.
16813         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
16814         (emit_unop_insn): Likewise.
16815         (expand_copysign_absneg): Change icode to an insn_code.
16816         (create_convert_operand_from_type): New function.
16817         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
16818         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
16819         (expand_insn, expand_jump_insn): Likewise.
16820         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
16821         than const_int_operand for operand 2.
16822
16823 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16824
16825         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
16826         if possible.
16827
16828 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
16829
16830         * emit-rtl.c (emit_pattern_before_noloc): New function.
16831         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
16832         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
16833         (emit_pattern_after_noloc): New function.
16834         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
16835         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
16836
16837 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
16838
16839         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
16840         (__ffsDI2): Likewise.
16841
16842 2011-03-22  Richard Henderson  <rth@redhat.com>
16843
16844         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
16845         of !TARGET_ABI_OPEN_VMS.
16846         (alpha_trampoline_init, alpha_start_function): Likewise.
16847         (alpha_expand_epilogue, alpha_file_start): Likewise.
16848         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
16849         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
16850         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
16851         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
16852         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
16853
16854 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16855
16856         * config/s390/s390-opts.h: New.
16857         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
16858         s390_arch_flags, s390_warn_framesize, s390_stack_size,
16859         s390_stack_guard): Remove.
16860         (s390_handle_arch_option): Return void.  Take enum
16861         s390_arch_option value instead of string and searching array.
16862         (s390_handle_option): Don't assert that global structures are in
16863         use.  Access variables via opts pointer.  Use error_at.  Don't use
16864         sscanf for -mstack-guard= or -mstack-size=.  Update call to
16865         s390_handle_arch_option.
16866         (s390_option_override): Update call to s390_handle_arch_option.
16867         (s390_emit_prologue): Use %d format for s390_stack_size in
16868         diagnostic.  Use %wd for HOST_WIDE_INT.
16869         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
16870         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
16871         * config/s390/s390.opt (config/s390/s390-opts.h): New
16872         HeaderInclude entry.
16873         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
16874         s390_arch_flags, s390_warn_framesize): New Variable entries.
16875         (s390_arch_option): New Enum and EnumValue entries.
16876         (march=): Use Enum instead of Var.
16877         (mstack-guard=, mstack-size=): Use UInteger and Var.
16878         (mtune=): Use Enum.
16879
16880 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16881
16882         * config/score/score.c (score_handle_option): Don't assert that
16883         global structures are in use.  Access target_flags via opts
16884         pointer.  Use value of -march= option to determine target_flags
16885         settings.
16886         * config/score/score.opt (march=): Use Enum.
16887         (score_arch): New Enum and EnumValue entries.
16888
16889 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16890
16891         * config/mep/mep.c (option_mtiny_specified): Remove.
16892         (mep_option_override): Move register handling for -mivc2 from
16893         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
16894         instead of option_mtiny_specified.
16895         (mep_handle_option): Access target_flags via opts pointer.  Don't
16896         assert that global structures are in use.  Defer part of -mivc2
16897         handling and move it to mep_option_override.
16898         * config/mep/mep.opt (IVC2): New Mask entry.
16899         (mivc2): Use Var and Defer instead of Mask.
16900
16901 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16902
16903         * config/v850/v850-opts.h: New.
16904         * config/v850/v850.c (small_memory): Replace with
16905         small_memory_physical_max array.  Make that array static const.
16906         (v850_handle_memory_option): Take integer value of argument.  Take
16907         gcc_options pointer, option text and location.  Return void.
16908         Update for changes to small memory structures.
16909         (v850_handle_option): Access target_flags via opts pointer.  Don't
16910         assert that global structures are in use.  Update calls to
16911         v850_handle_memory_option.
16912         (v850_encode_data_area): Update references to small memory settings.
16913         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
16914         (enum small_memory_type): Move to v850-opts.h.
16915         * config/v850/v850.opt (config/v850/v850-opts.h): New
16916         HeaderInclude entry.
16917         (small_memory_max): New Variable entry.
16918         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
16919         (mtda, mzda): Likewise.
16920
16921 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16922
16923         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
16924         pointer.  Don't assert that global structures are in use.
16925
16926 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16927
16928         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
16929         via opts pointer.  Don't assert that global structures are in use.
16930
16931 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16932
16933         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
16934         (munix=93): Use Var.
16935         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
16936         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
16937         * config/pa/pa-opts.h: New.
16938         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
16939         (pa_handle_option): Don't assert that global structures are in
16940         use.  Access target_flags via opts pointer.  Don't handle
16941         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
16942         OPT_munix_98 here.
16943         (pa_option_override): Handle deferred OPT_mfixed_range_.
16944
16945 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16946
16947         * config/mn10300/mn10300-opts.h: New.
16948         * config/mn10300/mn10300.c (mn10300_processor,
16949         mn10300_tune_string): Remove.
16950         (mn10300_handle_option): Don't assert that global structures are
16951         in use.  Access mn10300_processor via opts pointer.  Don't handle
16952         OPT_mtune_ here.
16953         * config/mn10300/mn10300.h (enum processor_type): Move to
16954         mn10300-opts.h.
16955         (mn10300_processor): Remove.
16956         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
16957         HeaderInclude entry.
16958         (mn10300_processor): New Variable entry.
16959         (mtune=): Use Var.
16960
16961 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16962
16963         * config/microblaze/microblaze.c: Don't include opts.h.
16964         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
16965         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
16966         (mno-clearbss): Use Var and Warn.
16967
16968 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16969
16970         * config/m32r/m32r-opts.h: New.
16971         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
16972         (m32r_handle_option): Don't assert that global structures are in
16973         use.  Access target_flags and m32r_cache_flush_func via opts
16974         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
16975         OPT_mno_flush_trap here.
16976         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
16977         include of m32r-opts.h.
16978         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
16979         HeaderInclude entry.
16980         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
16981         (mmodel=): Use Enum and Var.
16982         (m32r_model): New Enum and EnumValue entries.
16983         (mno-flush-trap): Use Var.
16984         (msdata=): Use Enum and Var.
16985         (m32r_sdata): New Enum and EnumValue entries.
16986
16987 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16988
16989         * config/m32c/m32c.c: Don't include opts.h.
16990         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
16991         m32c_handle_option): Remove.
16992         (m32c_option_override): Check global_options_set.x_target_memregs
16993         instead of target_memregs_set.
16994         * config/m32c/m32c.h (target_memregs): Remove.
16995         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
16996         variable.
16997
16998 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
16999
17000         * config/iq2000/iq2000-opts.h: New.
17001         * config/iq2000/iq2000.c: Don't include opts.h.
17002         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
17003         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
17004         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
17005         HeaderInclude entry.
17006         (iq2000_tune): New Variable entry.
17007         (march=): Add comment.  Use Enum.
17008         (iq2000_arch): New Enum and EnumValue entries.
17009         (mcpu=): Use Enum and Var.
17010         (iq2000_tune): New Enum and EnumValue entries.
17011
17012 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17013
17014         * config/ia64/ia64-opts.h: New.
17015         * config/ia64/ia64.c (ia64_tune): Remove.
17016         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
17017         here.  Use error_at.
17018         (ia64_option_override): Handle deferred OPT_mfixed_range_.
17019         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
17020         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
17021         HeaderInclude entry.
17022         (ia64_tune): New Variable entry.
17023         (mfixed-range=): Use Defer and Var.
17024         (mtune=): Use Enum and Var.
17025         (ia64_tune): New Enum and EnumValue entries.
17026
17027 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17028
17029         * config/frv/frv-opts.h: New.
17030         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
17031         frv-opts.h.
17032         (frv_cpu_type): Remove.
17033         * config/frv/frv.c: Don't include opts.h.
17034         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
17035         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
17036         (frv_cpu_type): New Variable entry.
17037         (frv_cpu): New Enum and EnumValue entries.
17038
17039 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17040
17041         * config/cris/cris.c (cris_handle_option): Access target_flags via
17042         opts pointer.  Don't assert that global structures are in use.
17043         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
17044         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
17045
17046 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17047
17048         * config/bfin/bfin-opts.h: New.
17049         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
17050         bfin_si_revision, bfin_workarounds): Remove.
17051         (bfin_cpus): Make static const.
17052         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
17053         not bfin_lib_id_given.
17054         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
17055         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
17056         pointer. Use error_at.  Don't assert that global structures are in use.
17057         * config/bfin/bfin.h: Include bfin-opts.h.
17058         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
17059         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
17060         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
17061         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
17062         entries.
17063
17064 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17065
17066         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
17067         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
17068         or -msoft-float here.
17069         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
17070         -msoft-float and -mhard-float.
17071         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
17072         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17073         msoft-float.
17074         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
17075         -msoft-float.
17076         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
17077         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
17078         not mhard-float.
17079         (LIBGCC_SPEC): Don't handle -msoft-float.
17080         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
17081         -mhard-float.
17082         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17083         msoft-float.
17084         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
17085         -mfloat-abi=*, not -msoft-float and -mhard-float.
17086         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
17087         -msoft-float.
17088         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
17089         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
17090         mhard-float and msoft-float.
17091         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
17092         mfloat-abi=soft in comments, not mhard-float and msoft-float.
17093         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17094         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
17095         mhard-float.
17096         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
17097         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
17098         msoft-float.
17099         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
17100         not mhard-float.
17101         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
17102         not msoft-float.
17103
17104 2011-03-22  Richard Henderson  <rth@redhat.com>
17105
17106         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
17107         TARGET_ABI_WINDOWS_NT.
17108         (alpha_output_function_end_prologue): Likewise.
17109         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
17110         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17111         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
17112         (trap, *movsi_nt_vms): Likewise.
17113         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
17114         (*tablejump_osf_nt_internal): Remove.
17115         * config/alpha/predicates.md (input_operand): Only test Pmode.
17116
17117 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17118
17119         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
17120         via opts pointer.  Use error_at.  Don't assert that global
17121         structures are in use.
17122
17123 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17124
17125         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
17126         (ix86_handle_option): Access ix86_isa_flags and
17127         ix86_isa_flags_explicit via opts pointer.  Don't assert that
17128         global structures are in use.
17129         (ix86_function_specific_save, ix86_function_specific_restore):
17130         Update ix86_isa_flags_explicit field name.
17131         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
17132         (ix86_isa_flags_explicit): Rename TargetSave entry to
17133         x_ix86_isa_flags_explicit.
17134
17135 2011-03-22  Richard Henderson  <rth@redhat.com>
17136
17137         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
17138         (alpha_option_override, direct_return): Likewise.
17139         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
17140         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
17141         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
17142         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
17143         (alpha_expand_epilogue, alpha_end_function): Likewise.
17144         (alpha_init_libfuncs): Likewise.
17145         (struct machine_function): Remove unicosmk members.
17146         (print_operand) ['t']: Remove.
17147         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
17148         unicosmk_output_module_name, unicosmk_output_common,
17149         current_section_align, unicosmk_output_text_section_asm_op,
17150         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
17151         unicosmk_section_type_flags, unicosmk_unique_section,
17152         unicosmk_asm_named_section, unicosmk_insert_attributes,
17153         unicosmk_output_align, unicosmk_defer_case_vector,
17154         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
17155         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
17156         unicosmk_output_ssib, unicosmk_add_call_info_word,
17157         unicosmk_extern_head, unicosmk_output_default_externs,
17158         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
17159         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
17160         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
17161         * config/alpha/alpha-protos.h: Update.
17162         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
17163         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
17164         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
17165         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
17166         (*mulsi_se, mulvsi3): Likewise.
17167         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
17168         (*divmodsi_internal, call, call_value, realign): Likewise.
17169         (moddi3, umoddi3): Likewise; remove duplicate expander.
17170         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
17171         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
17172         (*movdi_nofix): Remove r/U alternative.
17173         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
17174         * config/alpha/constraints.md ("U"): Remove.
17175         * config/alpha/predicates.md (call_operand"): Don't test
17176         TARGET_ABI_UNICOSMK.
17177
17178 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17179
17180         * target.def (handle_option): Take gcc_options and
17181         cl_decoded_option pointers and location_t.
17182         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
17183         * doc/tm.texi: Regenerate.
17184         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
17185         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
17186         * lto-opts.c (lto_reissue_options): Generate option structure for
17187         targetm.handle_option call.
17188         * opts.c (target_handle_option): Update call to
17189         targetm.handle_option.  Remove assertions about values now passed
17190         down to hook.
17191         * targhooks.c (default_target_handle_option): New.
17192         * targhooks.h (default_target_handle_option): Declare.
17193         * config/alpha/alpha.c: Include opts.h.
17194         (alpha_handle_option): Update to new hook interface.
17195         * config/arm/arm.c: Include opts.h.
17196         (arm_handle_option): Update to new hook interface.
17197         * config/arm/t-arm (arm.o): Update dependencies.
17198         * config/bfin/bfin.c: Include opts.h.
17199         (bfin_handle_option): Update to new hook interface.
17200         * config/cris/cris.c: Include opts.h.
17201         (cris_handle_option): Update to new hook interface.
17202         * config/frv/frv.c: Include opts.h.
17203         (frv_handle_option): Update to new hook interface.
17204         * config/i386/i386.c: Include opts.h.
17205         (ix86_handle_option): Update to new hook interface.
17206         (ix86_valid_target_attribute_inner_p): Generate option structure
17207         for call to ix86_handle_option.
17208         * config/i386/t-i386 (i386.o): Update dependencies.
17209         * config/ia64/ia64.c: Include opts.h.
17210         (ia64_handle_option): Update to new hook interface.
17211         * config/ia64/t-ia64 (ia64.o): Update dependencies.
17212         * config/iq2000/iq2000.c: Include opts.h.
17213         (iq2000_handle_option): Update to new hook interface.
17214         * config/m32c/m32c.c: Include opts.h.
17215         (m32c_handle_option): Update to new hook interface.
17216         * config/m32r/m32r.c: Include opts.h.
17217         (m32r_handle_option): Update to new hook interface.
17218         * config/m68k/m68k.c: Include opts.h.
17219         (m68k_handle_option): Update to new hook interface.
17220         * config/mep/mep.c: Include opts.h.
17221         (mep_handle_option): Update to new hook interface.
17222         * config/microblaze/microblaze.c: Include opts.h.
17223         (microblaze_handle_option): Update to new hook interface.
17224         * config/mips/mips.c: Include opts.h.
17225         (mips_handle_option): Update to new hook interface.
17226         * config/mn10300/mn10300.c: Include opts.h.
17227         (mn10300_handle_option): Update to new hook interface.
17228         * config/pa/pa.c: Include opts.h.
17229         (pa_handle_option): Update to new hook interface.
17230         * config/pdp11/pdp11.c: Include opts.h.
17231         (pdp11_handle_option): Update to new hook interface.
17232         * config/rs6000/rs6000.c: Include opts.h.
17233         (rs6000_handle_option): Update to new hook interface.
17234         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
17235         * config/rx/rx.c: Include opts.h.
17236         (rx_handle_option): Update to new hook interface.
17237         * config/s390/s390.c: Include opts.h.
17238         (s390_handle_option): Update to new hook interface.
17239         * config/score/score.c: Include opts.h.
17240         (score_handle_option): Update to new hook interface.
17241         * config/sh/sh.c: Include opts.h.
17242         (sh_handle_option): Update to new hook interface.
17243         * config/sparc/sparc.c: Include opts.h.
17244         (sparc_handle_option): Update to new hook interface.
17245         * config/v850/v850.c: Include opts.h.
17246         (v850_handle_option): Update to new hook interface.
17247
17248 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17249
17250         * gcc.c (driver_unknown_option_callback): Only permit and save
17251         unknown -Wno- options.
17252         (driver_wrong_lang_callback): Save options directly instead of via
17253         driver_unknown_option_callback.
17254
17255 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
17256
17257         * combine.c (simplify_set): Try harder to find the best CC mode when
17258         simplifying a nested COMPARE on the RHS.
17259
17260 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
17261
17262         * config/alpha/gnu.h: Remove.
17263         * config/arc: Remove directory.
17264         * config/arm/netbsd.h: Remove.
17265         * config/arm/t-pe: Remove.
17266         * config/crx: Remove directory.
17267         * config/i386/netbsd.h: Remove.
17268         * config/m68hc11: Remove directory.
17269         * config/m68k/uclinux-oldabi.h: Remove.
17270         * config/mcore/mcore-pe.h: Remove.
17271         * config/mcore/t-mcore-pe: Remove.
17272         * config/netbsd-aout.h: Remove.
17273         * config/rs6000/gnu.h: Remove.
17274         * config/sh/sh-symbian.h: Remove.
17275         * config/sh/symbian-base.c: Remove.
17276         * config/sh/symbian-c.c: Remove.
17277         * config/sh/symbian-cxx.c: Remove.
17278         * config/sh/symbian-post.h: Remove.
17279         * config/sh/symbian-pre.h: Remove.
17280         * config/sh/t-symbian: Remove.
17281         * config/svr3.h: Remove.
17282         * config/vax/netbsd.h: Remove.
17283         * config.build: Don't handle i[34567]86-*-pe.
17284         * config.gcc: Remove handling of deprecations for most deprecated
17285         targets.
17286         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
17287         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
17288         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
17289         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
17290         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
17291         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
17292         Remove cases.
17293         * config.host: Don't handle i[34567]86-*-pe.
17294         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
17295         (ASM_SPEC32): Don't handle -mcall-gnu.
17296         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
17297         -mcall-gnu.
17298         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
17299         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
17300         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
17301         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
17302         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
17303         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
17304         conditional on SYMBIAN.
17305         * configure.ac: Don't handle powerpc*-*-gnu*.
17306         * configure: Regenerate.
17307         * doc/extend.texi (interrupt attribute): Don't mention CRX.
17308         * doc/install-old.texi (m6811, m6812): Don't mention.
17309         * doc/install.texi (arc-*-elf*): Don't document multilib option.
17310         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
17311         (m68k-uclinuxoldabi): Don't mention.
17312         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
17313         Remove.
17314         (-mcall-gnu): Remove.
17315         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
17316         families): Remove constraint documentation.
17317
17318 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
17319
17320         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
17321         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
17322         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
17323
17324 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
17325
17326         PR target/48226
17327         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
17328         vector when peeking at the next token for vector, don't expand the
17329         keywords.
17330
17331 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
17332
17333         * config/avr/avr-protos.h (expand_epilogue): Change prototype
17334         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
17335         * config/avr/avr.c (init_cumulative_args)
17336         (avr_function_arg_advance): Use it.
17337         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
17338         sibcall epilogues.
17339         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
17340         (avr_function_ok_for_sibcall): ...this new function.
17341         (avr_lookup_function_attribute1): New static Function.
17342         (avr_naked_function_p, interrupt_function_p)
17343         (signal_function_p, avr_OS_task_function_p)
17344         (avr_OS_main_function_p): Use it.
17345         * config/avr/avr.md ("sibcall", "sibcall_value")
17346         ("sibcall_epilogue"): New expander.
17347         ("*call_insn", "*call_value_insn"): New insn.
17348         ("call_insn", "call_value_insn"): Remove
17349         ("call", "call_value", "epilogue"): Change expander to handle
17350         sibling calls.
17351
17352 2011-03-21  Nick Clifton  <nickc@redhat.com>
17353
17354         * doc/invoke.texi (Overall Options): Move closing brace to end of
17355         options list.
17356         (Optimization Options): Add missing @gol.
17357         (Directory Options): Likewise.
17358         (i386 and x86-64 Options): Likewise.
17359         (RS6000 and PowerPC Options): Likewise.
17360         (i386 and x86-64 Windows Options): Likewise.
17361         (V850 Options): Add text missing from descriptions.
17362
17363 2011-03-22  Richard Henderson  <rth@redhat.com>
17364
17365         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
17366         (avr_incoming_return_addr_rtx): New.
17367         (emit_push_byte): New.
17368         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
17369         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
17370         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
17371         (emit_pop_byte): New.
17372         (expand_epilogue): Use it.  Pop frame pointer by bytes.
17373         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
17374         (INCOMING_RETURN_ADDR_RTX): New.
17375         (INCOMING_FRAME_SP_OFFSET): New.
17376         (ARG_POINTER_CFA_OFFSET): New.
17377         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
17378         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
17379         (pophi): Remove.
17380
17381         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
17382
17383 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17384
17385         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17386         (FUNCTION_ARG_ADVANCE): Likewise.
17387         * tm.texi.in: Change references to them to hook references.
17388         * tm.texi: Regenerate.
17389         * targhooks.c (default_function_arg): Eliminate check for target
17390         macro.
17391         (default_function_incoming_arg): Likewise.
17392         (default_function_arg_advance): Likewise.
17393         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
17394         (function_arg_advance): Likewise.
17395         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17396
17397 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
17398
17399         * tree.c (build_call_1): New function.
17400         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
17401
17402 2011-03-22  Richard Guenther  <rguenther@suse.de>
17403
17404         PR tree-optimization/48228
17405         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
17406         for single-arg PHIs.
17407
17408 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
17409
17410         PR rtl-optimization/48143
17411         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
17412         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
17413         sse2_cvtps2pd): Likewise.
17414
17415 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17416
17417         * recog.c (canonicalize_change_group): Use validate_unshare_change.
17418
17419 2011-03-22  Richard Guenther  <rguenther@suse.de>
17420
17421         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
17422         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
17423         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
17424         and REALIGN_LOAD_EXPR.
17425         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
17426         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
17427         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
17428         DOT_PROD_EXPR case ...
17429         (expand_expr_real_2): ... here.
17430         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
17431         and REALIGN_LOAD_EXPR.
17432         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
17433         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
17434         (vect_create_epilog_for_reduction): Likewise.
17435         (vectorizable_reduction): Likewise.
17436         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
17437         * tree-vect-stmts.c (vectorizable_load): Likewise.
17438
17439 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
17440
17441         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
17442
17443 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17444
17445         * config/s390/s390.c (s390_delegitimize_address): Fix offset
17446         handling for PLTOFF/GOTOFF.
17447
17448 2011-03-22  Nick Clifton  <nickc@redhat.com>
17449
17450         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
17451         trailing backslash from the end of the macro definition.
17452
17453 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17454
17455         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
17456         and PLT unspecs.
17457
17458 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
17459
17460         * expr.h (prepare_operand): Move to...
17461         * optabs.h (prepare_operand): ...here and change the insn code
17462         parameter from "int" to "enum insn_code".
17463         (insn_operand_matches): Declare.
17464         * expr.c (init_expr_target): Use insn_operand_matches.
17465         (compress_float_constant): Likewise.
17466         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
17467         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
17468         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
17469         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
17470         Likewise.
17471         (gen_cond_trap): Likewise.
17472         (prepare_operand): Likewise.  Change icode to an insn_code.
17473         (insn_operand_matches): New function.
17474         * reload.c (find_reloads_address_1): Use insn_operand_matches.
17475         * reload1.c (gen_reload): Likewise.
17476         * targhooks.c (default_secondary_reload): Likewise.
17477
17478 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
17479
17480         * config/alpha/alpha.md (unspec): New define_c_enum.
17481         (unspecv): Ditto.
17482
17483 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
17484
17485         PR debug/48214
17486         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
17487         between a call and its CALL_ARG_LOCATION note.
17488
17489 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
17490
17491         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
17492
17493 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
17494
17495         PR c/42544
17496         PR c/48197
17497         * c-common.c (shorten_compare): If primopN is first sign-extended
17498         to opN and then zero-extended to result type, set primopN to opN.
17499
17500 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
17501
17502         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
17503         for barrier handlers.
17504
17505 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
17506
17507         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
17508         UNSPEC constants to be in the unspec enumeration, and redefine
17509         all UNSPECV constants to be in the unspecv enumeration, so that
17510         dumps print which unspec/unspec_volatile this is.
17511         * config/rs6000/vector.md (UNSPEC_*): Ditto.
17512         * config/rs6000/paired.md (UNSPEC_*): Ditto.
17513         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
17514         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
17515         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
17516
17517         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
17518         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
17519         UNSPECV_LWSYNC, since these are used as unspec_volatile.
17520         * config/rs6000/sync.md (isync, lwsync): Ditto.
17521
17522 2011-03-21  Richard Guenther  <rguenther@suse.de>
17523
17524         * params.def (lto-min-partition): Fix typo.
17525
17526 2011-03-21  Richard Guenther  <rguenther@suse.de>
17527
17528         PR c/47939
17529         * c-decl.c (grokdeclarator): Drop to the main variant only
17530         for array types.  Drop flag_gen_aux_info check.
17531
17532 2011-03-21  Richard Guenther  <rguenther@suse.de>
17533
17534         PR translation/47911
17535         * params.def (lto-partitions): Fix typo.
17536         (lto-min-partition): Fix wording.
17537
17538 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
17539
17540         * config/rs6000/t-freebsd: Remove duplication from file.
17541
17542 2011-03-21  Richard Guenther  <rguenther@suse.de>
17543
17544         PR middle-end/47661
17545         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
17546
17547 2011-03-21  Richard Guenther  <rguenther@suse.de>
17548
17549         PR lto/48210
17550         * params.def (lto-partitions): Require at least 1 partition.
17551
17552 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17553
17554         * gthr-solaris.h: Remove.
17555         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
17556         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
17557         (LIB_SPEC): Likewise.
17558         * config/sol2.opt (threads): Remove.
17559         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
17560         (sparc*-*-solaris2*): Likewise.
17561         * configure.ac (enable_threads): Enable solaris support.
17562         * configure: Regenerate.
17563         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
17564         * doc/install.texi (Configuration, --enable-threads=lib): Remove
17565         solaris.
17566
17567 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17568
17569         * config.gcc: Obsolete *-*-solaris2.8*.
17570         * doc/install.texi (Specific, *-*-solaris2*): Document it.
17571
17572 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17573
17574         PR bootstrap/48135
17575         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
17576         reference.  Solaris 8 perl works.
17577
17578 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17579
17580         PR bootstrap/48135
17581         * doc/install.texi (Prerequisites): Move jar etc. up.
17582         Explain support library version requirements.
17583
17584 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17585
17586         PR bootstrap/48135
17587         * doc/install.texi (Prerequisites): Move Perl to build
17588         requirements.  Always necessary on Solaris 2 with Sun ld.
17589
17590 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17591
17592         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
17593         binutils 2.21.
17594         (Specific, i?86-*-solaris2.[89]): Likewise.
17595         (Specific, i?86-*-solaris2.10): Likewise.
17596         (Specific, mips-sgi-irix6): Likewise.
17597         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
17598         Update for binutils 2.21.
17599
17600 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17601
17602         * configure.ac (gcc_cv_lto_plugin): Fix typo.
17603         Allow -fuse-linker-plugin for non-default plugin linker.
17604         * configure: Regenerate.
17605
17606 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
17607
17608         PR bootstrap/48167
17609         * gengtype.c (files_rules): Added rule for cp/parser.h.
17610
17611 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
17612
17613         PR target/48213
17614         * config/s390/s390.c (s390_delegitimize_address): Don't call
17615         lowpart_subreg if orig_x has BLKmode.
17616
17617 2011-03-21  Kai Tietz  <ktietz@redhat.com>
17618
17619         PR target/12171
17620         * doc/plugins.texi: Adjust documentation for plugin register_callback.
17621         * tree.h (attribute_spec): Add new member affects_type_identity.
17622         * attribs.c (empty_attribute_table): Adjust attribute_spec
17623         initializers.
17624         * config/alpha/alpha.c: Likewise.
17625         * config/arc/arc.c: Likewise.
17626         * config/arm/arm.c: Likewise.
17627         * config/avr/avr.c: Likewise.
17628         * config/bfin/bfin.c: Likewise.
17629         * config/crx/crx.c: Likewise.
17630         * config/darwin.h: Likewise.
17631         * config/h8300/h8300.c: Likewise.
17632         * config/i386/cygming.h: Likewise.
17633         * config/i386/i386.c: Likewise.
17634         * config/ia64/ia64.c: Likewise.
17635         * config/m32c/m32c.c: Likewise.
17636         * config/m32r/m32r.c: Likewise.
17637         * config/m68hc11/m68hc11.c: Likewise.
17638         * config/m68k/m68k.c: Likewise.
17639         * config/mcore/mcore.c: Likewise.
17640         * config/mep/mep.c: Likewise.
17641         * config/microblaze/microblaze.c: Likewise.
17642         * config/mips/mips.c: Likewise.
17643         * config/rs6000/rs6000.c: Likewise.
17644         * config/rx/rx.c: Likewise.
17645         * config/sh/sh.c: Likewise.
17646         * config/sol2.h: Likewise.
17647         * config/sparc/sparc.c: Likewise.
17648         * config/spu/spu.c: Likewise.
17649         * config/stormy16/stormy16.c: Likewise.
17650         * config/v850/v850.c: Likewise.
17651
17652 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
17653
17654         * simplify-rtx.c (simplify_binary_operation_1): Handle
17655         (xor (and A B) C) case when B and C are both constants.
17656
17657 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
17658
17659         * tree-dfa.c (add_referenced_var): Fix typo in comment.
17660
17661 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
17662
17663         PR bootstrap/48168
17664         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
17665
17666 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
17667
17668         PR rtl-optimization/48156
17669         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
17670         assume df and df_lr are not NULL.
17671
17672 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17673
17674         PR debug/48023
17675         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
17676         between a call and its CALL_ARG_LOCATION note.
17677
17678 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
17679
17680         PR debug/48178
17681         * config/sh/sh.c (find_barrier): Don't emit a constant pool
17682         between a call and its corresponding CALL_ARG_LOCATION note.
17683
17684 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
17685
17686         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
17687         instead of loop. Use HARD_REGISTER_NUM_P predicate.
17688         * haifa-sched.c (setup_ref_regs): Ditto.
17689         * caller-save.c (add_used_regs_1): Ditto.
17690         * dse.c (look_for_hardregs): Ditto.
17691         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
17692         * sched-rgn.c (check_live_1): Ditto.
17693
17694 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
17695
17696         * c-decl.c (diagnose_mismatched_decls): Give an error for
17697         redefining a typedef with variably modified type.
17698
17699 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
17700
17701         * c-decl.c (grokfield): Don't allow typedefs for structures or
17702         unions with no tag by default.
17703         * doc/extend.texi (Unnamed Fields): Update.
17704
17705 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
17706
17707         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
17708         Rewrite using indirect functions.
17709         (lwp_slwpcb): Ditto.
17710         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
17711         (avx_vinsertf128<mode>): Ditto.
17712
17713 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17714
17715         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
17716         unspecs.
17717
17718 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17719
17720         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
17721         splitting between a call and its corresponding CALL_ARG_LOCATION note.
17722
17723 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
17724
17725         PR rtl-optimization/48170
17726         * gcse.c (hoist_code): Remove bogus asserts.
17727
17728 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
17729
17730         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
17731         computation for prologue/epilogue.
17732
17733 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17734
17735         * Makefile.in (check-consistency): Remove.
17736
17737 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
17738
17739         PR debug/48176
17740         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
17741         arange_table_in_use is 0, but either text_section_used or
17742         cold_text_section_used is true.  Don't call it if
17743         !info_section_emitted.
17744
17745 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
17746
17747         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
17748         FUNCTION_VALUE_REGNO_P): Remove.
17749         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
17750         Remove.
17751         * config/avr/avr.c (avr_ret_register): Make static inline.
17752         (avr_function_value_regno_p): New function.
17753         (avr_libcall_value): Make static. Add 'func' argument.
17754         (avr_function_value): Make static. Rename 'func' argument to
17755         'fn_decl_or_type', forward it to avr_libcall_value. Call
17756         avr_ret_register function instead of RET_REGISTER macro.
17757         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
17758
17759 2011-03-18  Jason Merrill  <jason@redhat.com>
17760
17761         PR c++/23372
17762         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
17763
17764 2011-03-18  Richard Guenther  <rguenther@suse.de>
17765
17766         * doc/install.texi (--enable-gold): Remove.
17767         (--with-plugin-ld): Document.
17768         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
17769
17770 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
17771
17772         PR middle-end/47790
17773         * expr.c (optimize_bitfield_assignment_op): Revamp to work
17774         again after expansion changes.
17775
17776 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
17777
17778         * combine.c (try_combine): Do simplification only call of
17779         subst() on i2 even when i1 is present. Update comments.
17780
17781 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
17782
17783         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
17784         and UNSPEC_PCREL_SYMOFF.
17785
17786 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17787
17788         * config/s390/s390.md: Use define_c_enum for the unspec constant
17789         definitions.
17790
17791 2011-03-18  Richard Henderson  <rth@redhat.com>
17792             Jakub Jelinek  <jakub@redhat.com>
17793
17794         PR bootstrap/48161
17795         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
17796         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
17797
17798 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17799
17800         PR middle-end/47725
17801         * combine.c (cant_combine_insn_p): Don't check zero/sign
17802         extended hard registers.
17803
17804 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17805
17806         PR middle-end/47725
17807         * combine.c (cant_combine_insn_p): Check zero/sign extended
17808         hard registers.
17809
17810 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
17811
17812         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17813         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
17814         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
17815         Change return type to bool.
17816         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17817
17818 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
17819
17820         PR debug/48163
17821         * var-tracking.c (prepare_call_arguments): If CALL target
17822         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
17823         pc instead of looking it up using cselib_lookup and use
17824         Pmode for it if x has VOIDmode.
17825         * dwarf2out.c (gen_subprogram_die): If also both first and
17826         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
17827
17828         PR debug/48163
17829         * function.c (assign_parms): For data.passed_pointer parms
17830         use MEM of data.entry_parm instead of data.entry_parm itself
17831         as DECL_INCOMING_RTL.
17832         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
17833         also when passed and declared mode is the same, DECL_RTL
17834         is a MEM with pseudo as address and DECL_INCOMING_RTL is
17835         a MEM too.
17836
17837 2011-03-16  Jeff Law  <law@redhat.com>
17838
17839         PR rtl-optimization/37273
17840         * ira-costs.c (scan_one_insn): Detect constants living in memory and
17841         handle them like argument loads from stack slots.  Do not double
17842         count memory for memory constants and argument loads from stack slots.
17843
17844 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17845
17846         PR debug/48160
17847         * var-tracking.c (prepare_call_arguments): Check SUBREG.
17848
17849 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17850
17851         PR target/48171
17852         * config/i386/i386.opt: Add Save to -mavx and -mfma.
17853
17854 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
17855
17856         PR bootstrap/48153
17857         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
17858         if dwarf_strict.
17859         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
17860         Clear call_arg_locations and call_arg_loc_last always.
17861
17862         PR middle-end/48152
17863         * var-tracking.c (prepare_call_arguments): If argument needs to be
17864         passed by reference, adjust argtype and mode.
17865
17866 2011-03-17  Richard Guenther  <rguenther@suse.de>
17867
17868         PR middle-end/48134
17869         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
17870         a value make sure to fold the statement.
17871
17872 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
17873
17874         PR target/43872
17875         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
17876         return condition with !cfun->calls_alloca.
17877
17878 2011-03-17  Richard Guenther  <rguenther@suse.de>
17879
17880         PR bootstrap/48148
17881         * lto-cgraph.c (input_overwrite_node): Clear the abstract
17882         origin for decls in other ltrans units.
17883         (input_varpool_node): Likewise.
17884
17885 2011-03-17  Richard Guenther  <rguenther@suse.de>
17886
17887         PR middle-end/48165
17888         * tree-object-size.c (compute_object_offset): Properly return
17889         the offset operand of MEM_REFs as sizetype.
17890
17891 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
17892
17893         PR rtl-optimization/48141
17894         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
17895         * dse.c: Include params.h.
17896         (active_local_stores_len): New variable.
17897         (add_wild_read, dse_step1): Clear it when setting active_local_stores
17898         to NULL.
17899         (record_store, check_mem_read_rtx): Decrease it when removing
17900         from the chain.
17901         (scan_insn): Likewise.  Increase it when adding to chain, if it
17902         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
17903         set active_local_stores to NULL before the addition.
17904         * Makefile.in (dse.o): Depend on $(PARAMS_H).
17905
17906         PR rtl-optimization/48141
17907         * dse.c (record_store): If no positions are needed in an insn
17908         that cannot be deleted, at least unchain it from active_local_stores.
17909
17910 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
17911
17912         PR debug/47510
17913         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
17914         (lookup_type_die_strip_naming_typedef): ... here.
17915         (get_context_die): Use it.
17916         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
17917         the anonymous struct named by the naming typedef.
17918
17919 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
17920
17921         PR target/48154
17922         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
17923         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
17924
17925 2011-03-16  Jeff Law  <law@redhat.com>
17926
17927         * tree-vrp.c (identify_jump_threads): Slightly simplify type
17928         check for operands of conditional.  Allow type to be a pointer.
17929
17930 2011-03-16  Richard Guenther  <rguenther@suse.de>
17931
17932         PR tree-optimization/48149
17933         * fold-const.c (fold_binary_loc): Fold
17934         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
17935
17936 2011-03-16  Richard Guenther  <rguenther@suse.de>
17937
17938         PR tree-optimization/26134
17939         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
17940         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
17941         (non_rewritable_mem_ref_base): Handle complex type component
17942         accesses, constrain offsets for vector and complex extracts
17943         more properly.
17944
17945 2011-03-16  Richard Guenther  <rguenther@suse.de>
17946
17947         PR tree-optimization/48146
17948         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
17949         operands avoiding the need for renaming.
17950
17951 2011-03-16  Richard Guenther  <rguenther@suse.de>
17952
17953         * gimple-fold.c (maybe_fold_reference): Open-code relevant
17954         constant folding.  Move MEM_REF canonicalization first.
17955         Rely on fold_const_aggregate_ref for initializer folding.
17956         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
17957
17958 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
17959
17960         PR middle-end/48136
17961         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
17962         arg0/arg1 or their arguments are always fold converted to matching
17963         types.
17964
17965         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
17966         to nargs.
17967
17968 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17969
17970         PR lto/46944
17971         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
17972         Handle in-tree gold.
17973         (ld_vers): Extract binutils version for gold.
17974         (gcc_cv_ld_hidden): Handle gold here.
17975         (gcc_cv_lto_plugin): Determine level of linker plugin support.
17976         * configure: Regenerate.
17977         * config.in: Regenerate.
17978         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
17979         -fuse-linker-plugin otherwise.
17980         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
17981         (LINK_COMMAND_SPEC): Use it.
17982         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
17983
17984 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
17985
17986         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
17987         * calls.c: Remove debug.h include.
17988         (emit_call_1): Don't call virtual_call_token debug hook.
17989         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
17990         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
17991         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
17992         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
17993         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
17994         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
17995         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
17996         dwarf2out_virtual_call): Remove.
17997         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
17998         copy_call_info and virtual_call hooks.
17999         (dwarf2out_init): Don't initialize vcall_insn_table,
18000         debug_dcall_section and debug_vcall_section.
18001         (prune_unused_types): Don't mark nodes from dcall_table.
18002         (dwarf2out_finish): Don't output dcall or vcall tables.
18003         * final.c (final_scan_insn): Don't call direct_call or
18004         virtual_call debug hooks.
18005         * debug.h (struct gcc_debug_hooks): Remove direct_call,
18006         virtual_call_token, copy_call_info and virtual_call hooks.
18007         (debug_nothing_uid): Remove prototype.
18008         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
18009         copy_call_info and virtual_call hooks.
18010         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18011         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
18012         * debug.c (do_nothing_debug_hooks): Likewise.
18013         (debug_nothing_uid): Remove.
18014         * doc/invoke.texi (-fenable-icf-debug): Remove.
18015         * common.opt (-fenable-icf-debug): Likewise.
18016
18017         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
18018         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
18019         call's MEM.  Handle functions returning aggregate through a hidden
18020         first pointer.  For virtual calls add clobbered pc to call arguments
18021         chain.
18022         * dwarf2out.c (gen_subprogram_die): Emit
18023         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
18024         can't be emitted.
18025
18026         PR debug/45882
18027         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
18028         * rtl.h (ENTRY_VALUE_EXP): Define.
18029         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
18030         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
18031         * print-rtl.c (print_rtx): Likewise.
18032         * gengtype.c (adjust_field_rtx_def): Likewise.
18033         * var-tracking.c (vt_add_function_parameter): Adjust
18034         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
18035         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
18036         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
18037         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
18038         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
18039
18040         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
18041         Call var_location debug hook even on CALL_INSNs.
18042         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
18043         * rtl.def (ENTRY_VALUE): New.
18044         * dwarf2out.c: Include cfglayout.h.
18045         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18046         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
18047         (struct call_arg_loc_node): New type.
18048         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
18049         tail_call_site_count): New variables.
18050         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
18051         DW_TAG_GNU_call_site_parameter.
18052         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
18053         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
18054         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
18055         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
18056         and DW_AT_GNU_all_source_call_sites.
18057         (mem_loc_descriptor): Handle ENTRY_VALUE.
18058         (add_src_coords_attributes): Don't add enything if
18059         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
18060         (dwarf2out_abstract_function): Save and clear call_arg_location,
18061         call_site_count and tail_call_site_count around dwarf2out_decl call.
18062         (gen_call_site_die): New function.
18063         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
18064         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
18065         (dwarf2out_function_decl): Clear call_arg_locations,
18066         call_arg_loc_last, set call_site_count and tail_call_site_count
18067         to -1 and free block_map.
18068         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
18069         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
18070         followed by any real instructions.
18071         (dwarf2out_begin_function): Set call_site_count and
18072         tail_call_site_count to 0.
18073         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
18074         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
18075         attempt to force a DIE for it and worst case remove the attribute.
18076         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
18077         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
18078         the decl itself.
18079         * var-tracking.c: Include tm_p.h.
18080         (vt_stack_adjustments): For calls call note_register_arguments.
18081         (argument_reg_set): New variable.
18082         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
18083         ensure the VALUE is resolved.
18084         (call_arguments): New variable.
18085         (prepare_call_arguments): New function.
18086         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
18087         (struct expand_loc_callback_data): Add ignore_cur_loc field.
18088         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
18089         always use the best expression.
18090         (vt_expand_loc): Add ignore_cur_loc argument.
18091         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
18092         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
18093         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
18094         note for all calls.
18095         (vt_add_function_parameter): Use cselib_lookup_from_insn.
18096         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
18097         argument.  Don't call cselib_preserve_only_values and
18098         cselib_reset_table.
18099         (note_register_arguments): New function.
18100         (vt_initialize): Compute argument_reg_set.  Call
18101         vt_add_function_parameters before processing basic blocks instead of
18102         afterwards.  For calls call prepare_call_arguments before calling
18103         cselib_process_insn.
18104         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
18105         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
18106         (var-tracking.o): Depend on $(TM_P_H).
18107         * cfglayout.h (insn_scope): New prototype.
18108         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
18109         * cfglayout.c (insn_scope): No longer static.
18110         * insn-notes.def (CALL_ARG_LOCATION): New.
18111         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
18112         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
18113         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
18114         nothing for DECL_EXTERNAL BLOCK_VARS.
18115
18116 2011-03-16  Alan Modra  <amodra@gmail.com>
18117
18118         PR target/45844
18119         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
18120         create invalid offset address for vsx splat insn.
18121         * config/rs6000/predicates.md (splat_input_operand): New.
18122         * config/rs6000/vsx.md (vsx_splat_*): Use it.
18123
18124 2011-03-15  Xinliang David Li  <davidxl@google.com>
18125
18126         PR c/47837
18127         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
18128         (normalize_preds): New function.
18129         (is_use_properly_guarded): Normalize def predicates.
18130
18131 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18132
18133         PR target/46788
18134         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
18135         in the output template.
18136
18137 2011-03-15  Richard Guenther  <rguenther@suse.de>
18138
18139         PR middle-end/47650
18140         * tree-pretty-print.c (dump_function_declaration): Properly
18141         dump unprototyped and varargs function types.
18142
18143 2011-03-15  Richard Guenther  <rguenther@suse.de>
18144
18145         PR tree-optimization/13954
18146         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
18147         and friends.
18148
18149 2011-03-15  Richard Guenther  <rguenther@suse.de>
18150
18151         PR tree-optimization/48037
18152         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
18153         selects into BIT_FIELD_REFs.
18154         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
18155         vector select.
18156
18157 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
18158
18159         PR tree-optimization/48129
18160         * builtins.c (fold_builtin_snprintf): Convert to type of
18161         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
18162         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
18163
18164 2011-03-15  Richard Guenther  <rguenther@suse.de>
18165
18166         PR tree-optimization/41490
18167         * tree-ssa-dce.c (propagate_necessity): Handle returns without
18168         value but with VUSE.
18169         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
18170         return statements.
18171         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
18172         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
18173         * tree-tailcall.c (find_tail_calls): Ignore returns.
18174
18175 2011-03-15  Richard Guenther  <rguenther@suse.de>
18176
18177         PR middle-end/48031
18178         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
18179         or variable-indexed array accesses when in gimple form.
18180
18181 2011-03-15  Richard Guenther  <rguenther@suse.de>
18182
18183         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
18184
18185 2011-03-15  Alan Modra  <amodra@gmail.com>
18186
18187         PR target/48032
18188         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
18189         presume symbol_refs without a symbol_ref_decl are suitably
18190         aligned, nor other trees we may see here.  Handle anchor symbols.
18191         (legitimate_constant_pool_address_p): Comment.  Add mode param.
18192         Check cmodel=medium addresses.  Adjust all calls.
18193         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
18194         creating cmodel=medium optimized access to locals.
18195         * config/rs6000/constraints.md (R): Pass QImode to
18196         legitimate_constant_pool_address_p.
18197         * config/rs6000/predicates.md (input_operand): Pass mode to
18198         legitimate_constant_pool_address_p.
18199         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
18200         Update prototype.
18201
18202 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
18203
18204         PR target/48053
18205         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
18206         64-bit constants being loaded into registers other than GPRs such
18207         as loading 0 into a VSX register.
18208
18209 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18210
18211         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
18212
18213 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
18214
18215         PR middle-end/47917
18216         * builtins.c (fold_builtin_snprintf): New function.
18217         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
18218         (fold_builtin_4): Likewise.
18219
18220         PR middle-end/38878
18221         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
18222         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
18223         and C - X == X also strip nops from +/-/p+ operand.
18224         When optimizing -X == C, fold C to arg0's type.
18225
18226         PR debug/47946
18227         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
18228         emit it as add_AT_int instead of add_AT_unsigned.
18229
18230 2011-03-14  Tom Tromey  <tromey@redhat.com>
18231
18232         * unwind-dw2.c: Include sys/sdt.h if it exists.
18233         (_Unwind_DebugHook): Use STAP_PROBE2.
18234         * config.in, configure: Rebuild.
18235         * configure.ac: Check for sys/sdt.h.
18236
18237 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
18238
18239         * config/i386/i386.md (ROUND_FLOOR): New constant.
18240         (ROUND_CEIL): Ditto.
18241         (ROUND_TRUNC): Ditto.
18242         (ROUND_MXCSR): Ditto.
18243         (ROUND_NO_EXC): Ditto.
18244         (rint<mode>2): Use new defines instead of numerical constants.
18245         (floor<mode>2): Ditto.
18246         (ceil<mode>2): Ditto.
18247         (btrunc<mode>2): Ditto.
18248         * config/i386/i386-builtin-types.def: Define ROUND function type
18249         aliases.
18250         * config/i386/i386.c (enum ix86_builtins): Add
18251         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
18252         (struct builtin_description): Add
18253         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
18254         (ix86_expand_sse_round): New static function.
18255         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
18256         function types.
18257         (ix86_builtin_vectorized_function): Handle
18258         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18259
18260 2011-03-14  Tom Tromey  <tromey@redhat.com>
18261
18262         * c-parser.c (c_parser_asm_string_literal): Clear
18263         warn_overlength_strings.
18264
18265 2011-03-14  Tom Tromey  <tromey@redhat.com>
18266
18267         * c-parser.c (disable_extension_diagnostics): Save
18268         warn_overlength_strings.
18269         (restore_extension_diagnostics): Restore warn_overlength_strings.
18270
18271 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
18272
18273         * BASE-VER: Change to 4.7.0.
18274
18275 2011-03-14  Richard Guenther  <rguenther@suse.de>
18276
18277         PR middle-end/48098
18278         * tree.c (build_vector_from_val): Adjust assert to requirements
18279         and reality.
18280
18281 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
18282
18283         PR bootstrap/48102
18284         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
18285
18286 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
18287
18288         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
18289         terms of target_flags_explicit. Adjust copyright year.
18290
18291         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
18292         * config/rs6000/t-freebsd: New file. Add override for
18293         LIB2FUNCS_EXTRA.
18294
18295 2011-03-13  Chris Demetriou  <cgd@google.com>
18296
18297         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
18298         (-fno-diagnostics-show-option): this, to reflect current default.
18299         (-Werror=): Update text about -fno-diagnostics-show-option.
18300
18301 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
18302
18303         PR target/48053
18304         * config/rs6000/predicates.md (easy_vector_constant_add_self,
18305         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
18306         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
18307         mode is not V2DImode or V2DFmode.
18308         (vspltis_constant): Do not handle V2DImode and V2DFmode.
18309         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
18310         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
18311         registers to 0.
18312         (movdi_internal64): Likewise.
18313
18314 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
18315
18316         PR tree-optimization/47127
18317         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
18318         parameter.
18319         (set_cloog_options): Same.
18320         (scop_to_clast): Same.
18321         (print_clast_stmt): Do not call cloog_state_malloc and
18322         cloog_state_free.
18323         (print_generated_program): Same.
18324         (gloog): Same.
18325         * graphite-clast-to-gimple.h (cloog_state): Declared.
18326         (scop_to_clast): Adjust declaration.
18327         * graphite.c (cloog_state): Defined here.
18328         (graphite_initialize): Call cloog_state_malloc.
18329         (graphite_finalize): Call cloog_state_free.
18330
18331 2011-03-11  Jason Merrill  <jason@redhat.com>
18332
18333         * attribs.c (lookup_attribute_spec): Take const_tree.
18334         * tree.h: Adjust.
18335
18336 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
18337
18338         * config/sparc/sparc.c (sparc_option_override): Use
18339         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
18340
18341 2011-03-11  Richard Guenther  <rguenther@suse.de>
18342
18343         PR tree-optimization/48067
18344         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
18345         multiplication result will be only used once on the target
18346         stmt.
18347
18348 2011-03-11  Richard Guenther  <rguenther@suse.de>
18349
18350         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
18351
18352 2011-03-11  Richard Guenther  <rguenther@suse.de>
18353
18354         PR lto/48073
18355         * tree.c (find_decls_types_r): Do not walk types only reachable
18356         from IDENTIFIER_NODEs.
18357
18358 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
18359
18360         PR middle-end/48044
18361         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
18362         all vnode->force_output nodes as needed.
18363
18364 2011-03-11  Jason Merrill  <jason@redhat.com>
18365
18366         PR c++/48069
18367         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
18368         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
18369
18370 2011-03-11  Martin Jambor  <mjambor@suse.cz>
18371
18372         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
18373         cgraph_node.
18374
18375 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
18376
18377         PR tree-optimization/48063
18378         * ipa-inline.c (cgraph_decide_inlining): Don't try to
18379         inline functions called once if !tree_can_inline_p (node->callers).
18380
18381 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
18382
18383         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
18384         extra_objs.
18385         * config/score/score3.c: Delete.
18386         * config/score/score3.h: Delete.
18387         * config/score/mul-div.S: Delete.
18388         * config/score/sfp-machine.h: Add new file.
18389         * config/score/constraints.md: Add new file.
18390         * config/score/t-score-softfp: Add new file.
18391         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
18392         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
18393         (score7_extra_constraint): Delete.
18394         (score7_option_override): Remove unused code.
18395         * config/score/score.c: Remove score3 and score5 define and code.
18396         * config/score/score.h: Remove score3 and score5 define and code.
18397         * config/score/score.md: Remove score3 template and unusual insn.
18398         * config/score/score.opt: Remove score3 and score5 options.
18399
18400 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18401
18402         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
18403         when _HPUX_SOURCE is defined.
18404         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
18405
18406 2011-03-10  Jason Merrill  <jason@redhat.com>
18407
18408         PR c++/48029
18409         * stor-layout.c (layout_type): Don't set structural equality
18410         on arrays of incomplete type.
18411         * tree.c (type_hash_eq): Handle comparing them properly.
18412
18413 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
18414
18415         PR debug/48043
18416         * config/s390/s390.c (s390_delegitimize_address): Make sure the
18417         result mode matches original rtl mode.
18418
18419 2011-03-10  Nick Clifton  <nickc@redhat.com>
18420
18421         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
18422         (andsi3, andsi3_flags): Fix timings for three operand alternative.
18423
18424 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
18425
18426         PR rtl-optimization/47866
18427         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
18428         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
18429         if target wasn't scalar.
18430         * function.c (assign_stack_temp_for_type): Assert that neither
18431         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
18432         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
18433         macro.
18434         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
18435
18436 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18437
18438         * config/s390/s390-protos.h (s390_label_align): New prototype.
18439         * config/s390/s390.c (s390_label_align): New function.
18440         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
18441
18442 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
18443
18444         PR target/47755
18445         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
18446         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
18447         (output_vec_const_move): Ditto.
18448
18449 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
18450
18451         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
18452         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
18453         * config/mips/mips.c (mips_preferred_reload_class): Make static.
18454         Change 'rclass' argument and result type to reg_class_t.
18455         (TARGET_PREFERRED_RELOAD_CLASS): Define.
18456
18457 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
18458
18459         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
18460         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
18461         (TARGET_MEMORY_MOVE_COST): Define.
18462         (avr_register_move_cost, avr_memory_move_cost): New Functions.
18463
18464 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
18465
18466         PR debug/47881
18467         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
18468         removed anything.
18469
18470         PR tree-optimization/48022
18471         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
18472         for EQ/NE_EXPR.
18473
18474 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
18475
18476         PR debug/47991
18477         * var-tracking.c (find_use_val): Return NULL for
18478         cui->sets && cui->store_p BLKmode MEMs.
18479
18480 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
18481
18482         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
18483         Remove.
18484         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
18485         xstormy16_print_operand_address): Remove.
18486         * config/stormy16/stormy16.c (xstormy16_print_operand,
18487         xstormy16_print_operand_address): Make static.
18488         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18489
18490 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
18491
18492         PR target/47862
18493         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
18494         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
18495         before definition.
18496
18497 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
18498
18499         PR bootstrap/48000
18500         * cfgloopmanip.c (fix_bb_placements): Return immediately
18501         if FROM is BASE_LOOP's header.
18502
18503 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
18504
18505         * gimplify.c (gimplify_function_tree): Fix building calls
18506         to __builtin_return_address.
18507
18508 2011-03-07  Alan Modra  <amodra@gmail.com>
18509
18510         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
18511         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
18512         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
18513         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
18514         return_mode args.
18515         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
18516         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
18517         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
18518         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
18519         * config/rs6000/rs6000.c
18520         (rs6000_elf_end_indicate_exec_stack): Rename to..
18521         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
18522         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
18523         (rs6000_file_start): ..here.
18524         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
18525         file scope variables.
18526         (call_ABI_of_interest): New function.
18527         (init_cumulative_args): Set above vars when function return value
18528         is a float, vector, or small struct.
18529         (rs6000_function_arg_advance_1): Likewise for function args.
18530         (rs6000_va_start): Set rs6000_passes_float if variable arg function
18531         references float args.
18532
18533 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
18534
18535         * doc/cfg.texi: Remove "See" before @ref.
18536         * doc/invoke.texi: Likewise.
18537
18538 2011-03-05  Jason Merrill  <jason@redhat.com>
18539
18540         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
18541
18542 2011-03-05  Anthony Green  <green@moxielogic.com>
18543
18544         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
18545
18546 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
18547
18548         PR rtl-optimization/47899
18549         * cfgloopmanip.c (fix_bb_placements): Fix first argument
18550         to flow_loop_nested_p when moving the loop upward.
18551
18552 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
18553
18554         PR target/47719
18555         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
18556
18557 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
18558
18559         PR tree-optimization/47967
18560         * ipa-cp.c (build_const_val): Return NULL instead of creating
18561         VIEW_CONVERT_EXPR for mismatching sizes.
18562         (ipcp_create_replace_map): Return NULL if build_const_val failed.
18563         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
18564         give up on versioning.
18565
18566 2011-03-05  Alan Modra  <amodra@gmail.com>
18567
18568         PR target/47986
18569         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
18570         full cmodel medium/large lo_sum + high addresses.
18571
18572 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18573
18574         * config/s390/s390.c (s390_decompose_address): Reject non-literal
18575         pool references in UNSPEC_LTREL_OFFSET.
18576
18577 2011-03-04  Jan Hubicka  <jh@suse.cz>
18578
18579         PR lto/47497
18580         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
18581         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
18582         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
18583         Add node pointers.
18584         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
18585         cgraph_add_thunk): Add node pointers.
18586         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
18587         associated to right node.
18588         (input_node): Update use of cgraph_same_body_alias
18589         and cgraph_add_thunk.
18590
18591 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
18592
18593         * config/i386/i386.opt (mprefer-avx128): New flag.
18594         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
18595         modes when the flag -mprefer-avx128 is on.
18596
18597 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
18598
18599         * dwarf2out.c (compare_loc_operands): Fix address handling.
18600
18601 2011-03-04  Alan Modra  <amodra@gmail.com>
18602
18603         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
18604
18605 2011-03-04  Richard Guenther  <rguenther@suse.de>
18606
18607         PR middle-end/47968
18608         * expmed.c (extract_bit_field_1): Prefer vector modes that
18609         vec_extract patterns can handle.
18610
18611 2011-03-04  Richard Guenther  <rguenther@suse.de>
18612
18613         PR middle-end/47975
18614         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
18615
18616 2011-03-04  Richard Henderson  <rth@redhat.com>
18617
18618         * explow.c (emit_stack_save): Remove 'after' parameter.
18619         (emit_stack_restore): Likewise.
18620         * expr.h: Update to match.
18621         * builtins.c, calls.c, stmt.c: Likewise.
18622         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
18623         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
18624         * function.c (expand_function_end): Insert the emit_stack_save
18625         sequence before parm_birth_insn instead of after.
18626
18627 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
18628
18629         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
18630         (ssse3_pmaddubsw128): Ditto.
18631         (ssse3_pmaddubsw): Ditto.
18632
18633 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
18634
18635         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
18636
18637 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
18638
18639         PR c/47963
18640         * gimplify.c (omp_add_variable): Only call omp_notice_variable
18641         on TYPE_SIZE_UNIT if it is a DECL.
18642
18643         PR debug/47283
18644         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
18645         first operand is not is_gimple_mem_ref_addr, try to fold it.
18646         If the operand still isn't is_gimple_mem_ref_addr, clear
18647         MEM_EXPR on op0.
18648
18649 2011-03-03  Richard Guenther  <rguenther@suse.de>
18650
18651         PR middle-end/47283
18652         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
18653         match comment.
18654         (refs_may_alias_p_1): For release branches return true if
18655         we are confused by our input.
18656
18657 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18658
18659         * config/s390/s390.c (s390_function_value): Rename to ...
18660         (s390_function_and_libcall_value): ... this.
18661         (s390_function_value): New function.
18662         (s390_libcall_value): New function.
18663         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
18664         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
18665         target macro definitions.
18666         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
18667
18668 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
18669
18670         * config/i386/freebsd64.h (CC1_SPEC): Define.
18671         * config/i386/linux64.h (CC1_SPEC): Define.
18672         * config/i386/x86-64.h (CC1_SPEC): Don't define.
18673
18674 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
18675
18676         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18677         Remove.
18678         * config/stormy16/stormy16.c: Include reload.h.
18679         (xstormy16_memory_move_cost): New function.
18680         (TARGET_MEMORY_MOVE_COST): Define.
18681
18682 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
18683
18684         PR rtl-optimization/47925
18685         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
18686         with side effects.  Remove the more-specific check for volatile asms.
18687
18688 2011-03-02  Alan Modra  <amodra@gmail.com>
18689
18690         PR target/47935
18691         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
18692         toc relative addresses for valid offsets.
18693
18694 2011-03-01  Richard Guenther  <rguenther@suse.de>
18695
18696         PR tree-optimization/47890
18697         * tree-vect-loop.c (get_initial_def_for_induction): Set
18698         related stmt properly.
18699
18700 2011-03-01  Richard Guenther  <rguenther@suse.de>
18701
18702         PR lto/47924
18703         * lto-streamer.c (lto_record_common_node): Also register
18704         the canonical type.
18705
18706 2011-03-01  Richard Guenther  <rguenther@suse.de>
18707
18708         PR lto/46911
18709         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
18710         Do not stream DECL_ABSTRACT_ORIGIN.
18711         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
18712         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
18713         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
18714         Do not stream DECL_ABSTRACT_ORIGIN.
18715         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
18716         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
18717
18718 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
18719
18720         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
18721         FUNCTION_VALUE_REGNO_P): Remove.
18722         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
18723         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
18724         Add 'outgoing' argument.
18725         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
18726         function.
18727         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18728         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18729
18730 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
18731
18732         PR debug/28047
18733         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
18734         (lookup_filename): Likewise.
18735         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
18736
18737 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
18738             Jakub Jelinek  <jakub@redhat.com>
18739
18740         PR middle-end/47893
18741         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
18742         (assign_stack_local_1): Change last argument type to int.
18743         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
18744         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
18745         don't record padding space into frame_space_list nor use those areas.
18746         (assign_stack_local): Adjust caller.
18747         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
18748         of assign_stack_local, pass 0 as last argument.
18749         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
18750         callers.
18751
18752 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
18753
18754         PR debug/47283
18755         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
18756         Use target address_mode and pointer_mode hooks instead of hardcoded
18757         Pmode and ptr_mode.  Handle some simple cases of extending if
18758         POINTERS_EXTEND_UNSIGNED < 0.
18759         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
18760         Call convert_debug_memory_address.
18761         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
18762         convert_debug_memory_address.
18763
18764         PR middle-end/46790
18765         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
18766         * configure: Regenerated.
18767         * config.in: Regenerated.
18768         * varasm.c (default_function_section): Return NULL
18769         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
18770
18771 2011-02-28  Martin Jambor  <mjambor@suse.cz>
18772
18773         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
18774         the description to match the printed values.
18775
18776 2011-02-28  Richard Guenther  <rguenther@suse.de>
18777
18778         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
18779         of the copied scope tree.
18780
18781 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18782
18783         * doc/extend.texi (Function Attributes): Avoid deeply (and
18784         wrongly) nested tables.
18785
18786 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
18787
18788         PR middle-end/47903
18789         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
18790         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
18791         r isn't op0 nor op1.
18792
18793 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
18794
18795         * config/avr/avr.md: Remove magic comment for emacs.
18796
18797 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
18798
18799         PR target/45261
18800         * config/avr/avr.c (avr_option_override): Use error on bad options.
18801         (avr_help): New function.
18802         (TARGET_HELP): Define.
18803
18804 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
18805
18806         PR target/42240
18807         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
18808         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
18809
18810 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
18811
18812         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
18813         (ARM Options): Ditto.
18814         (i386 and x86-64 Options): Ditto.
18815         (RX Options): Ditto.
18816         (SPARC Options): Ditto.
18817
18818 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
18819
18820         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
18821         FreeBSD 6 and later.  Generally use cpu generic.
18822
18823 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
18824
18825         * doc/cpp.texi: Update copyright years.
18826
18827 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
18828
18829         PR target/46898
18830         * config/lm32/lm32.md (ashrsi3): Added needed variable.
18831
18832 2011-02-25  Jon Beniston  <jon@beniston.com>
18833
18834         PR target/46898
18835         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
18836         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
18837         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
18838         (lm32_block_move_inline): Add type cast to remove warning.
18839         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
18840         (gen_int_relational): Move declarations to start of function.
18841
18842 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
18843
18844         PR tree-optimization/45470
18845         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
18846         can throw internally only.
18847         * tree-vect-stmts.c (vectorizable_call): Likewise.
18848
18849 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
18850
18851         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
18852         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
18853         * config/stormy16/stormy16-protos.h
18854         (xstormy16_preferred_reload_class): Remove.
18855         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
18856         static. Change 'rclass' argument and return type to reg_class_t.
18857         (TARGET_PREFERRED_RELOAD_CLASS,
18858         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
18859
18860 2011-02-24  Richard Guenther  <rguenther@suse.de>
18861
18862         * lto-streamer-in.c (input_bb): Do not find referenced vars
18863         in debug statements.
18864
18865 2011-02-23  Jason Merrill  <jason@redhat.com>
18866
18867         * common.opt (fabi-version): Document v5 and v6.
18868
18869 2011-02-23  Richard Guenther  <rguenther@suse.de>
18870
18871         PR tree-optimization/47849
18872         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
18873
18874 2011-02-23  Jie Zhang  <jie@codesourcery.com>
18875
18876         * opts-common.c (decode_cmdline_option): Print empty string
18877         argument as "" in decoded->orig_option_with_args_text.
18878         * gcc.c (execute): Print empty string argument as ""
18879         in the verbose output.
18880         (do_spec_1): Keep empty string argument.
18881
18882 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
18883
18884         * config.gcc: Declare score-* and crx-* obsolete.
18885
18886 2011-02-23  Jie Zhang  <jie@codesourcery.com>
18887
18888         PR rtl-optimization/47763
18889         * web.c (web_main): Ignore naked clobber when replacing register.
18890
18891 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
18892
18893         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
18894         Remove.
18895
18896 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
18897
18898         PR doc/47848
18899         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
18900
18901 2011-02-22  Mike Stump  <mikestump@comcast.net>
18902
18903         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
18904         assembler.
18905         * configure: Regenerate.
18906
18907 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
18908
18909         PR rtl-optimization/46002
18910         * ira-color.c (update_copy_costs): Change class intersection
18911         test to reg_class_contents[] test of 'hard_regno'.
18912
18913 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
18914
18915         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
18916         than Driver option.
18917         * config/hpux11.opt (mt): Likewise.
18918         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
18919         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
18920         * config/vax/elf.opt (mno-asm-pic): Likewise.
18921         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
18922
18923 2011-02-21  Mike Stump  <mikestump@comcast.net>
18924
18925         PR target/47822
18926         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
18927         tree so we can get save the type.
18928         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
18929         for CFString instead of trying to use past the end of the builtins.
18930         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
18931         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
18932         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
18933         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
18934         Rename to darwin_builtin_cfstring.
18935         (darwin_init_cfstring_builtins): Return the built type.
18936
18937 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
18938
18939         PR target/47840
18940         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
18941         (_mm256_insert_epi64): Use _mm_insert_epi64.
18942
18943 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
18944
18945         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18946         * config/stormy16/stormy16-protos.h
18947         (xstormy16_mode_dependent_address_p): Remove.
18948         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
18949         Make static. Change return type to bool. Change argument type to
18950         const_rtx. Remove dead code.
18951         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18952
18953 2011-02-21  Richard Guenther  <rguenther@suse.de>
18954
18955         PR lto/47820
18956         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
18957         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
18958         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
18959         TUs context.
18960         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
18961         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
18962
18963 2011-02-20  Richard Guenther  <rguenther@suse.de>
18964
18965         PR lto/47822
18966         * tree.c (free_lang_data_in_decl): Clean builtins from
18967         the TU decl BLOCK_VARS.
18968
18969 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
18970
18971         PR debug/47620
18972         PR debug/47630
18973         * haifa-sched.c (fix_tick_ready): Skip tick computation
18974         for debug insns.
18975
18976 2011-02-19  Richard Guenther  <rguenther@suse.de>
18977
18978         PR lto/47647
18979         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
18980         Remove lazy BLOCK_VARS streaming.
18981         (lto_input_ts_block_tree_pointers): Likewise.
18982         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
18983
18984 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
18985
18986         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
18987
18988 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
18989
18990         * config/i386/biarch32.h, config/i386/mach.h,
18991         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
18992
18993 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
18994
18995         PR target/47800
18996         * config/i386/i386.md (peephole2 for shift and plus): Use
18997         operands[1] original mode in the first insn.
18998
18999 2011-02-18  Mike Stump  <mikestump@comcast.net>
19000
19001         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
19002
19003 2011-02-18  Jan Hubicka  <jh@suse.cz>
19004
19005         PR middle-end/47788
19006         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
19007         to zero when the function is not inlinable at all.
19008
19009 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19010
19011         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
19012         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19013         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
19014         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
19015         * config/pa/t-pa64: Likewise.
19016         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19017
19018 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
19019
19020         PR driver/47787
19021         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
19022
19023 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19024
19025         PR target/47792
19026         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
19027
19028 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
19029
19030         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19031         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
19032         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
19033         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19034         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
19035         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
19036         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
19037         m32r_load_postinc_p, m32r_store_preinc_predec_p,
19038         m32r_legitimate_address_p): New functions.
19039         * config/m32r/constraints.md (constraint "S"): Don't use
19040         STORE_PREINC_PREDEC_P.
19041         (constraint "U"): Don't use LOAD_POSTINC_P.
19042
19043 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
19044
19045         PR rtl-optimization/46178
19046         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
19047         compute ira_hard_regno_cover_class[].
19048
19049 2011-02-18  Richard Guenther  <rguenther@suse.de>
19050
19051         PR lto/47798
19052         * lto-streamer.h (lto_global_var_decls): Declare.
19053         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
19054         statics for global var processing.
19055
19056 2011-02-18  Richard Guenther  <rguenther@suse.de>
19057
19058         PR tree-optimization/47737
19059         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
19060         edge dominance check.
19061
19062 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
19063
19064         PR debug/47780
19065         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
19066         avoid invalid rtx sharing.
19067
19068 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
19069
19070         * doc/cpp.texi (Obsolete Features): Add background on the
19071         origin of assertions.
19072
19073 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
19074
19075         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
19076         objc_abi == 2.
19077         * config/darwin.c (output_objc_section_asm_op): Added support for
19078         ABI v1 and v2.
19079         (is_objc_metadata): New.
19080         (darwin_objc2_section): New.
19081         (darwin_objc1_section): New.
19082         (machopic_select_section): Added support for ABI v1 and v2.
19083         (darwin_emit_objc_zeroed): New.
19084         (darwin_output_aligned_bss): Detect objc metadata and treat it
19085         appropriately.
19086         (darwin_asm_output_aligned_decl_common): Same.
19087         (darwin_asm_output_aligned_decl_local): Same.
19088         * config/darwin-sections.def: Updated for ABI v1 and v2.
19089         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
19090         compiling Objective-C code for the NeXT runtime, default to using
19091         ABI version 0 for 32-bit, and version 2 for 64-bit.
19092
19093 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19094
19095         * common.opt (optimize_fast): New Variable.
19096         * opts.c (default_options_optimization): Use opts->x_optimize_fast
19097         instead of local variable ofast.
19098
19099 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
19100
19101         * doc/invoke.texi (fobjc-abi-version): Documented.
19102         (fobjc-nilcheck): Documented.
19103         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
19104         version.
19105
19106 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19107
19108         PR driver/47390
19109         * common.opt (export-dynamic): New Driver option.
19110         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
19111
19112 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19113
19114         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
19115
19116 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
19117             Jan Hubicka  <jh@suse.cz>
19118
19119         PR debug/47106
19120         PR debug/47402
19121         * cfgexpand.c (account_used_vars_for_block): Remove.
19122         (estimated_stack_frame_size): Use referenced vars.
19123         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
19124         that were referenced in the original function.  Test src_fn
19125         rather than cfun.  Drop redundant get_var_ann.
19126         (setup_one_parameter): Drop redundant get_var_ann.
19127         (declare_return_variable): Likewise.
19128         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
19129         (copy_arguments_for_versioning): Drop redundant get_var_ann.
19130         * ipa-inline.c (compute_inline_parameters): Do not compute
19131         disregard_inline_limits here.
19132         (compute_inlinable_for_current, pass_inlinable): New.
19133         (pass_inline_parameters): Require PROP_referenced_vars.
19134         * cgraphunit.c (cgraph_process_new_functions): Don't run
19135         compute_inline_parameters explicitly unless function is in SSA form.
19136         (cgraph_analyze_function): Set .disregard_inline_limits.
19137         * tree-sra.c (convert_callers): Compute inliner parameters
19138         only for functions already in SSA form.
19139
19140 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19141
19142         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
19143         -mlittle-endian-data.
19144
19145 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
19146
19147         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
19148         -mno-fpu, not -fpu and -no-fpu.
19149         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
19150         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
19151
19152 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
19153
19154         PR target/43653
19155         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
19156         input reload with PLUS RTX.
19157
19158 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19159
19160         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
19161         of InverseVar(MDMX).
19162
19163 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19164
19165         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
19166         --m4-340.
19167
19168 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19169
19170         * config/mn10300/mn10300.opt (mno-crt0): New.
19171
19172 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19173
19174         * config/m68k/uclinux.opt (static-libc): New Driver option.
19175
19176 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19177
19178         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
19179
19180 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
19181
19182         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
19183         %{muser-extend-enabled}.
19184
19185 2011-02-16  Richard Guenther  <rguenther@suse.de>
19186
19187         PR tree-optimization/47738
19188         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
19189         the TODO from tree_predictive_commoning.
19190
19191 2011-02-15  Jeff Law  <law@redhat.com>
19192
19193         Revert
19194         2011-01-25  Jeff Law  <law@redhat.com>
19195
19196         PR rtl-optimization/37273
19197         * ira-costs.c (scan_one_insn): Detect constants living in memory and
19198         handle them like argument loads from stack slots.  Do not double
19199         count memory for memory constants and argument loads from stack slots.
19200
19201 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
19202
19203         PR middle-end/47725
19204         * combine.c (cant_combine_insn_p): Revert the last change.
19205
19206 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
19207
19208         PR target/47755
19209         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
19210         mode for vector constants.  Remove code that checks for TImode.
19211
19212 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19213
19214         PR debug/47106
19215         PR debug/47402
19216         * cgraph.h (compute_inline_parameters): Return void.
19217         * ipa-inline.c (compute_inline_parameters): Adjust.
19218
19219 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19220
19221         PR debug/47106
19222         PR debug/47402
19223         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
19224         rather than decl.
19225         * cfgexpand.c (estimated_stack_frame_size): Likewise.
19226         * ipa-inline.c (compute_inline_parameters): Adjust.
19227
19228 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19229
19230         PR debug/47106
19231         PR debug/47402
19232         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
19233         Adjust all users.  Pass FN to...
19234         * tree-flow-inline.h (first_referenced_var): ... this.  Add
19235         fn argument.
19236         * ipa-struct-reorg.c: Adjust.
19237         * tree-dfa.c: Adjust.
19238         * tree-into-ssa.c: Adjust.
19239         * tree-sra.c: Adjust.
19240         * tree-ssa-alias.c: Adjust.
19241         * tree-ssa-live.c: Adjust.
19242         * tree-ssa.c: Adjust.
19243         * tree-ssanames.c: Adjust.
19244         * tree-tailcall.c: Adjust.
19245
19246 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
19247
19248         PR debug/47106
19249         PR debug/47402
19250         * tree-flow.h (referenced_var_lookup): Add fn parameter.
19251         Adjust all callers.
19252         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
19253         * tree-flow-inline.h: Adjust.
19254         * gimple-pretty-print.c: Adjust.
19255         * tree-into-ssa.c: Adjust.
19256         * tree-ssa.c: Adjust.
19257         * cfgexpand.c: Adjust.
19258
19259 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
19260
19261         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
19262         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19263         (EXTRA_CONSTRAINT): Delete.
19264         * config/iq2000/constraints.md: New file.
19265         * config/iq2000/iq2000.md: Include it.
19266         (define_insn ""): Delete.
19267         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
19268         unsupported constraint letters from patterns.
19269         (call_value, call_value_internal1): Likewise.
19270         (call_value_multiple_internal1): Likewise.
19271
19272 2011-02-15  Nick Clifton  <nickc@redhat.com>
19273
19274         * config/mn10300/mn10300.c: Include tm-constrs.h.
19275         (struct liw_data): New data structure describing an LIW candidate
19276         instruction.
19277         (extract_bundle): Use struct liw_data.  Allow small integer
19278         operands for some instructions.
19279         (check_liw_constraints): Use struct liw_data.  Remove swapped
19280         parameter.  Add comments describing the checks.  Fix bug when
19281         assigning the source of liw1 to the source of liw2.
19282         (liw_candidate): Delete.  Code moved into extract_bundle.
19283         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
19284         before swapping.
19285         * config/mn10300/predicates.md (liw_operand): New predicate.
19286         Allows registers and small integer constants.
19287         * config/mn10300/constraints.md (O): New constraint.  Accetps
19288         integers in the range -8 to +7 inclusive.
19289         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
19290         for moving a small integer into a register.  Give this alternative
19291         LIW attributes.
19292         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
19293         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
19294         using the J,K,L and M constraints,
19295         (liw): Remove SI mode on second operands to allow for HI and QI
19296         mode values.
19297         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
19298         instruction.
19299
19300 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
19301
19302         PR middle-end/47725
19303         * combine.c (cant_combine_insn_p): Check zero/sign extended
19304         hard registers.
19305
19306 2011-02-15  Richard Guenther  <rguenther@suse.de>
19307
19308         PR tree-optimization/47743
19309         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
19310         for a non-type-compatible VN lookup bail out.
19311
19312 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
19313
19314         * config/fr30/constraints.md: New file.
19315         * config/fr30/fr30.md: Include it.
19316         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
19317         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19318         (EXTRA_CONSTRAINT): Delete.
19319
19320 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
19321
19322         * config/frv/constraints.md: New file.
19323         * config/frv/predicates.md: Include it.
19324         * config/frv/frv.c (reg_class_from_letter): Delete.
19325         (frv_option_override): Don't initialize it.
19326         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
19327         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
19328         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
19329         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19330         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
19331         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19332         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
19333         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
19334         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
19335         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
19336         (REG_CLASS_FROM_CONSTRAINT): Delete.
19337
19338 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
19339
19340         PR middle-end/47581
19341         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
19342         if frame size is 0 in a leaf function.
19343
19344 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19345
19346         PR pch/14940
19347         * config/alpha/host-osf.c: New file.
19348         * config/alpha/x-osf: New file.
19349         * config.host (alpha*-dec-osf*): Use it.
19350
19351 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
19352
19353         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19354         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
19355         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
19356         (rx_mode_dependent_address_p): ...this. Make static. Change argument
19357         type to const_rtx.
19358         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19359
19360 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
19361
19362         * config/stormy16/constraints.md: New file.
19363         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
19364         Use satisfies_constraint_Q and satisfies_constraint_R.
19365         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
19366         Delete.
19367         (xstormy16_legitiamte_address_p): Declare.
19368         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
19369         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19370         (EXTRA_CONSTRAINT): Delete.
19371         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
19372         Un-staticize.
19373         (xstormy16_extra_constraint_p): Delete.
19374
19375 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
19376
19377         PR tree-optimization/46494
19378         * loop-unroll.c (split_edge_and_insert): Adjust comment.
19379         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
19380         (pass_rtl_loop_done): Add TODO_verify_flow.
19381         * fwprop.c (pass_rtl_fwprop): Likewise.
19382         * modulo-sched.c (pass_sms): Likewise.
19383         * tree-ssa-dom.c (pass_dominator): Likewise.
19384         * tree-ssa-loop-ch.c (pass_ch): Likewise.
19385         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
19386         (pass_tree_loop_done): Likewise.
19387         * tree-ssa-pre.c (execute_pre): Likewise.
19388         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
19389         * tree-ssa-sink.c (pass_sink_code): Likewise.
19390         * tree-vrp.c (pass_vrp): Likewise.
19391
19392 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
19393
19394         * config/v850/constraints.md: New file.
19395         * config/v850/v850.md: Include it.
19396         * config/v850/predicates.md (reg_or_0_operand): Use
19397         satisfies_constraint_G.
19398         (special_symbolref_operand): Use satisfies_constraint_K.
19399         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
19400         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
19401         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
19402         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19403         (EXTRA_CONSTRAINT): Delete.
19404         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
19405         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
19406         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
19407
19408 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
19409
19410         PR target/47696
19411         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
19412         description.
19413
19414 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
19415
19416         * config/mcore/constraints.md: New file.
19417         * config/mcore/mcore.md: Include it.
19418         * config/mcore/mcore.c (reg_class_from_letter): Delete.
19419         * config/mcore/mcore.h (reg_class_from_letter): Delete.
19420         (REG_CLASS_FROM_LETTER): Delete.
19421         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
19422         insn_const_int_ok_for_constraint.
19423         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
19424         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
19425         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19426         (EXTRA_CONSTRAINT): Delete.
19427
19428 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19429
19430         PR ada/41929
19431         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
19432         (IS_SIGHANDLER): Define.
19433         (sparc64_is_sighandler): New function, split off from
19434         sparc64_fallback_frame_state.
19435         (sparc_is_sighandler): New function, split off from
19436         sparc_fallback_frame_state.
19437         (sparc64_fallback_frame_state): Merge with ...
19438         (sparc_fallback_frame_state): ... this into ...
19439         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
19440         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
19441         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
19442         stack instead of hardcoded offsets.
19443
19444 2011-02-14  Andriy Gapon  <avg@freebsd.org>
19445
19446         PR target/45808
19447         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
19448
19449 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19450
19451         * configure: Regenerate.
19452
19453 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
19454
19455         PR driver/45731
19456         * gcc.c (asm_options): Correct spec matching --target-help.
19457
19458 2011-02-12  Martin Jambor  <mjambor@suse.cz>
19459
19460         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
19461         to gimple call error.
19462
19463 2011-02-12  Mike Stump  <mikestump@comcast.net>
19464
19465         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
19466         comments in backslash regions.
19467
19468 2011-02-12  Mike Stump  <mikestump@comcast.net>
19469             Jakub Jelinek  <jakub@redhat.com>
19470             Iain Sandoe  <iains@gcc.gnu.org>
19471
19472         PR target/47324
19473         * dwarf2out.c (output_cfa_loc): When required, apply the
19474         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
19475         (output_loc_sequence): Likewise.
19476         (output_loc_operands_raw): Likewise.
19477         (output_loc_sequence_raw): Likewise.
19478         (output_cfa_loc): Likewise.
19479         (output_loc_list): Suppress register number adjustment when
19480         calling output_loc_sequence()
19481         (output_die): Likewise.
19482
19483 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
19484
19485         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19486         Remove macros.
19487         * config/xtensa/xtensa.c (xtensa_register_move_cost,
19488         xtensa_memory_move_cost): New functions.
19489         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
19490
19491 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
19492
19493         PR lto/47225
19494         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
19495         in the current directory.
19496         * configure: Rebuilt.
19497
19498 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
19499
19500         * config/darwin.c (darwin_override_options): Add a hunk missed
19501         from the commit of r168571.  Trim comment line lengths and
19502         correct indents of the preceding block.
19503
19504 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
19505
19506         * gcc.c (driver_handle_option): Concatenate the argument to -F with
19507         the switch.
19508
19509 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
19510
19511         * common.opt (nostartfiles): New Driver option.
19512
19513 2011-02-11  Xinliang David Li  <davidxl@google.com>
19514
19515         PR tree-optimization/47707
19516         * tree-chrec.c (convert_affine_scev): Keep type precision.
19517
19518 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
19519
19520         PR tree-optimization/47420
19521         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
19522
19523 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
19524
19525         PR rtl-optimization/47614
19526         * rtl.h (check_for_inc_dec): Declare.
19527         * dse.c (check_for_inc_dec): Externalize...
19528         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
19529         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
19530
19531 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
19532
19533         PR driver/47678
19534         * gcc.c (main): Do not compile inputs if there were errors in
19535         option handling.
19536         * opts-common.c (read_cmdline_option): Check for wrong language
19537         after other error checks.
19538
19539 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
19540
19541         * cgraph.c: Fix comment typos.
19542         * cgraph.h: Likewise.
19543         * cgraphunit.c: Likewise.
19544         * ipa-cp.c: Likewise.
19545         * ipa-inline.c: Likewise.
19546         * ipa-prop.c: Likewise.
19547         * ipa-pure-const.c: Likewise.
19548         * ipa-ref.c: Likewise.
19549         * ipa-reference.c: Likewise.
19550
19551 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
19552
19553         PR debug/47684
19554         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
19555
19556 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19557
19558         PR testsuite/47400
19559         * doc/sourcebuild.texi (Require Support): Document
19560         dg-require-ascii-locale.
19561
19562 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
19563
19564         * doc/lto.texi (Write summary): Fix missing parentheses.
19565
19566 2011-02-10  DJ Delorie  <dj@redhat.com>
19567
19568         * config/m32c/m32c.c (m32c_option_override): Disable
19569         -fcombine-stack-adjustments until flag value tracking and compare
19570         optimization can be rewritten.
19571
19572 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
19573
19574         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
19575         PROCESSOR_POWER7.
19576         (PROCESSOR_DEFAULT64): Likewise.
19577
19578 2011-02-10  Richard Henderson  <rth@redhat.com>
19579
19580         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
19581         change from 2011-02-03.
19582         * config/rx/rx.c (flags_from_code): Likewise.
19583         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
19584         is valid, n/pz otherwise.
19585         (rx_select_cc_mode): Return CCmode if Y is not zero.
19586
19587 2011-02-10  Richard Guenther  <rguenther@suse.de>
19588
19589         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
19590
19591 2011-02-10  Richard Guenther  <rguenther@suse.de>
19592
19593         PR tree-optimization/47677
19594         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
19595
19596 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
19597
19598         PR target/47665
19599         * combine.c (make_compound_operation): Only change shifts into
19600         multiplication for SCALAR_INT_MODE_P.
19601
19602 2011-02-10  Jie Zhang  <jie@codesourcery.com>
19603
19604         PR testsuite/47622
19605         Revert
19606         2011-02-05  Jie Zhang  <jie@codesourcery.com>
19607         PR debug/42631
19608         * web.c (entry_register): Don't clobber the number of the
19609         first uninitialized reference in used[].
19610
19611 2011-02-09  Richard Guenther  <rguenther@suse.de>
19612
19613         PR tree-optimization/47664
19614         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
19615         all edges again.
19616
19617 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
19618
19619         PR target/46481
19620         PR target/47032
19621         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
19622         PROCESSOR_POWER7.
19623         (PROCESSOR_DEFAULT64): Same.
19624         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
19625
19626 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19627
19628         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
19629
19630 2011-02-09  Martin Jambor  <mjambor@suse.cz>
19631
19632         PR middle-end/45505
19633         * tree-sra.c (struct access): New flags grp_scalar_read and
19634         grp_scalar_write.  Changed description of assignment read and write
19635         flags.
19636         (dump_access): Dump new flags, reorder all of them.
19637         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
19638         to detect multiple scalar reads.
19639         (analyze_access_subtree): Use the new scalar read write flags instead
19640         of the old flags.  Adjusted comments.
19641
19642 2011-02-08  DJ Delorie  <dj@redhat.com>
19643
19644         PR target/47548
19645         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
19646         patterns.
19647
19648 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19649
19650         * config/m68k/uclinux.opt: New.
19651         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
19652
19653 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19654
19655         * config/cris/elf.opt (sim): New Driver option.
19656
19657 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19658
19659         * config/xtensa/elf.opt: New.
19660         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
19661
19662 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19663
19664         * config/vax/elf.opt: New.
19665         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
19666
19667 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19668
19669         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
19670
19671 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19672
19673         * config/gnu-user.opt: New.
19674         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
19675         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
19676         *-*-uclinux*): Use gnu-user.opt.
19677
19678 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
19679
19680         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
19681         * config/i386/gnu.h (CPP_SPEC): Likewise.
19682
19683 2011-02-08  Ian Lance Taylor  <iant@google.com>
19684
19685         * common.opt (fcx-limited-range): Add SetByCombined flag.
19686         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
19687         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
19688         (fassociative-math, freciprocal-math): Likewise.
19689         (funsafe-math-optimizations): Likewise.
19690         * opth-gen.awk: Handle SetByCombined.
19691         * optc-gen.awk: Likewise.
19692         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
19693         (set_unsafe_math_optimizations_flags): Likewise.
19694         * doc/options.texi (Option properties): Document SetByCombined.
19695
19696 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
19697
19698         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
19699         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
19700         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
19701         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
19702         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
19703
19704 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
19705
19706         PR tree-optimization/46834
19707         PR tree-optimization/46994
19708         PR tree-optimization/46995
19709         * graphite-sese-to-poly.c (used_outside_reduction): New.
19710         (detect_commutative_reduction): Call used_outside_reduction.
19711         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
19712         translate_scalar_reduction_to_array only when at least one
19713         loop-phi/close-phi tuple has been detected.
19714
19715 2011-02-08  Richard Guenther  <rguenther@suse.de>
19716
19717         PR middle-end/47639
19718         * tree-vect-generic.c (expand_vector_operations_1): Update
19719         stmts here ...
19720         (expand_vector_operations): ... not here.  Cleanup EH info
19721         and the CFG if required.
19722
19723 2011-02-08  Richard Guenther  <rguenther@suse.de>
19724
19725         PR tree-optimization/47641
19726         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
19727         require type compatibility.
19728
19729 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19730
19731         * gimple-low.c (lower_function_body): Don't remove the location of
19732         the return statement here.
19733         (lower_gimple_return): Do it here instead but only if the return
19734         statement is actually used twice.
19735
19736 2011-02-08  Richard Guenther  <rguenther@suse.de>
19737
19738         PR tree-optimization/47632
19739         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
19740         unused up_to_stmt parameter, return whether cfg-cleanup is
19741         necessary, remove EH info properly.
19742         (forward_propagate_into_gimple_cond): Adjust caller.
19743         (forward_propagate_into_cond): Likewise.
19744         (forward_propagate_comparison): Likewise.
19745         (tree_ssa_forward_propagate_single_use_vars): Make
19746         forward_propagate_comparison case similar to the two others.
19747
19748 2011-02-08  Nick Clifton  <nickc@redhat.com>
19749
19750         * config/mn10300/mn10300.opt (mliw): New command line option.
19751         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
19752         (liw_bundling): New automaton.
19753         (liw): New attribute.
19754         (liw_op): New attribute.
19755         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
19756         (movsi_internal): Add LIW attributes.
19757         (andsi3): Likewise.
19758         (iorsi3): Likewise.
19759         (xorsi3): Likewise.
19760         (addsi3): Separate register and immediate alternatives.
19761         Add LIW attributes.
19762         (subsi3): Likewise.
19763         (cmpsi): Likewise.
19764         (aslsi3): Likewise.
19765         (lshrsi3): Likewise.
19766         (ashrsi3): Likewise.
19767         (liw): New pattern.
19768         * config/mn10300/mn10300.c (liw_op_names): New
19769         (mn10300_print_operand): Handle 'W' operand descriptor.
19770         (extract_bundle): New function.
19771         (check_liw_constraints): New function.
19772         (liw_candidate): New function.
19773         (mn10300_bundle_liw): New function.
19774         (mn10300_reorg): New function.
19775         (TARGET_MACHINE_DEPENDENT_REORG): Define.
19776         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
19777         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
19778         __LIW__ or __NO_LIW__.
19779         * doc/invoke.texi: Describe the -mliw command line option.
19780
19781 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19782
19783         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
19784         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19785         pthread_mutex_unlock): Remove.
19786         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
19787         * config/pa/t-pa64: Likewise.
19788         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
19789         shared libc if not linking against libpthread.
19790         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
19791
19792 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
19793
19794         PR target/47558
19795         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
19796         on 10.6 and later to ensure that we always use the unwinder from
19797         the system.  Only add -no_compact_unwind when tarteting darwin
19798         10.6 or later.
19799
19800 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
19801
19802         PR target/46997
19803         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
19804         (vec_interleave_lowv2sf): Ditto.
19805         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
19806         (vec_extract_oddv2sf): Ditto.
19807
19808 2011-02-07  Mike Stump  <mikestump@comcast.net>
19809
19810         PR target/42333
19811         Add __ieee_divdc3 entry point.
19812         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
19813         entry point.
19814         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
19815         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
19816         * config/darwin.c (darwin_rename_builtins): Add.
19817         * config/darwin-protos.h (darwin_rename_builtins): Add.
19818
19819 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
19820
19821         PR target/47636
19822         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
19823         for the condition.
19824
19825 2011-02-07  Mike Stump  <mikestump@comcast.net>
19826
19827         * config/darwin.opt (mmacosx-version-min): Update default OS version.
19828
19829 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
19830
19831         PR target/47534
19832         * config/avr/libgcc.S (exit): Move .endfunc
19833
19834 2011-02-07  Richard Guenther  <rguenther@suse.de>
19835
19836         PR tree-optimization/47615
19837         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
19838         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
19839         (run_scc_vn): Initialize it.
19840         (visit_reference_op_load): Use it.
19841         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
19842
19843 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19844
19845         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
19846         DImode trapping arithmetic libfuncs.
19847
19848 2011-02-07  Richard Guenther  <rguenther@suse.de>
19849
19850         PR tree-optimization/47621
19851         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
19852         two duplicates ...
19853         (execute_update_addresses_taken): ... here.  Make it more
19854         conservative in what we accept.
19855
19856 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
19857
19858         * config/sparc/freebsd.h (ASM_SPEC): Define.
19859         * config/sparc/vxworks.h (ASM_SPEC): Define.
19860
19861 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
19862
19863         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
19864
19865 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
19866
19867         * doc/invoke.texi: Remove reference to compiler internals from
19868         user documentation.
19869
19870         * reg-notes.def: Remove REG_VALUE_PROFILE.
19871         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
19872
19873 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
19874
19875         PR middle-end/47610
19876         * varasm.c (default_section_type_flags): If decl is NULL,
19877         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
19878
19879 2011-02-05  Jie Zhang  <jie@codesourcery.com>
19880
19881         PR debug/42631
19882         * web.c (entry_register): Don't clobber the number of the
19883         first uninitialized reference in used[].
19884
19885 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
19886
19887         PR tree-optimization/46194
19888         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
19889         (build_classic_dist_vector_1): Do not represent classic distance
19890         vectors when the access functions are variating in different loops.
19891
19892 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
19893
19894         * config/mips/iris6.opt: New.
19895         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
19896
19897 2011-02-04  Richard Henderson  <rth@redhat.com>
19898             Steve Ellcey  <sje@cup.hp.com>
19899
19900         PR target/46997
19901         * config/ia64/predicates.md (mux1_brcst_element): New.
19902         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
19903         * config/ia64/ia64.c (ia64_unpack_assemble): New.
19904         (ia64_unpack_sign): New.
19905         (ia64_expand_unpack): Rewrite using new routines.
19906         (ia64_expand_widen_sum): Ditto.
19907         (ia64_expand_dot_prod_v8qi): Ditto.
19908         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
19909         routines, add endian check.
19910         (pmpy2_even): Rename from pmpy2_r, add endian check.
19911         (pmpy2_odd): Rename from pmpy2_l, add endian check.
19912         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
19913         (vec_widen_smult_hi_v4hi): Ditto.
19914         (vec_widen_umult_lo_v4hi): Ditto.
19915         (vec_widen_umult_hi_v4hi): Ditto.
19916         (mulv2si3): Change endian checks.
19917         (sdot_prodv4hi): Rewrite with new calls.
19918         (udot_prodv4hi): New.
19919         (vec_pack_ssat_v4hi): Add endian check.
19920         (vec_pack_usat_v4hi): Ditto.
19921         (vec_pack_ssat_v2si): Ditto.
19922         (max1_even): Rename from max1_r, add endian check.
19923         (max1_odd): Rename from max1_l, add endian check.
19924         (*mux1_rev): Format change.
19925         (*mux1_mix): Ditto.
19926         (*mux1_shuf): Ditto.
19927         (*mux1_alt): Ditto.
19928         (*mux1_brcst_v8qi): Use new predicate.
19929         (vec_extract_evenv8qi): Remove endian check.
19930         (vec_extract_oddv8qi): Ditto.
19931         (vec_interleave_lowv4hi): Format change.
19932         (vec_interleave_highv4hi): Ditto.
19933         (mix2_even): Rename from mix2_r, add endian check.
19934         (mix2_odd): Rename from mux2_l, add endian check.
19935         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
19936         (vec_extract_evenodd_helper): Format change.
19937         (vec_extract_evenv4hi): Remove endian check.
19938         (vec_extract_oddv4hi): Remove endian check.
19939         (vec_interleave_lowv2si): Format change.
19940         (vec_interleave_highv2si): Format change.
19941         (vec_initv2si): Remove endian check.
19942         (vecinit_v2si): Add endian check.
19943         (reduc_splus_v2sf): Add endian check.
19944         (reduc_smax_v2sf): Ditto.
19945         (reduc_smin_v2sf): Ditto.
19946         (vec_initv2sf): Remove endian check.
19947         (fpack): Add endian check.
19948         (fswap): Add endian check.
19949         (vec_interleave_highv2sf): Add endian check.
19950         (vec_interleave_lowv2sf): Add endian check.
19951         (fmix_lr): Add endian check.
19952         (vec_setv2sf): Format change.
19953         (*vec_extractv2sf_0_be): Use shift to extract operand.
19954         (*vec_extractv2sf_1_be): New.
19955         (vec_pack_trunc_v4hi): Add endian check.
19956         (vec_pack_trunc_v2si): Format change.
19957
19958 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
19959
19960         PR inline-asm/23200
19961         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
19962         do bb, locus and block comparison and disallow loads if it is not set.
19963         (stmt_is_replaceable_p): New function.
19964         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
19965         callers.
19966         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
19967         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
19968         SSA_NAME_DEF_STMT.
19969         * tree-flow.h (stmt_is_replaceable_p): New prototype.
19970
19971 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
19972
19973         * config/rs6000/xilinx.opt: New.
19974         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
19975
19976 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
19977
19978         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
19979
19980 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
19981
19982         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
19983         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
19984         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
19985         secondary_reload_info, xtensa_secondary_reload): Remove.
19986         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
19987         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
19988         (xtensa_preferred_reload_class): Make static. Change return and
19989         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
19990         Use CONST_DOUBLE_P predicate.
19991         (xtensa_preferred_output_reload_class): New function.
19992         (xtensa_secondary_reload): Make static.
19993
19994 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
19995
19996         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
19997         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
19998         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
19999
20000 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20001
20002         PR middle-end/31490
20003         * output.h (SECTION_RELRO): Define.
20004         (SECTION_MACH_DEP): Adjust.
20005         (get_variable_section): New prototype.
20006         * varpool.c (varpool_finalize_named_section_flags): New function.
20007         (varpool_assemble_pending_decls): Call it.
20008         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
20009         * cgraphunit.c (cgraph_output_in_order): Call
20010         varpool_finalize_named_section_flags.
20011         * varasm.c (get_section): Allow section flags conflicts between
20012         relro and read-only sections if the section hasn't been declared yet.
20013         Set SECTION_OVERRIDE after diagnosing section type conflict.
20014         (get_variable_section): No longer static.
20015         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
20016         readonly sections that need relocations.
20017         (decl_readonly_section_1): New function.
20018         (decl_readonly_section): Use it.
20019
20020         Revert:
20021         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
20022                     Steve Ellcey  <sje@cup.hp.com>
20023
20024         PR middle-end/31490
20025         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
20026         if section attribute used.
20027
20028 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20029
20030         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
20031         * config/darwin.c (SECTION_NO_ANCHOR): Define.
20032         (darwin_init_sections): Remove assertion.
20033
20034 2011-02-03  Nick Clifton  <nickc@redhat.com>
20035
20036         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
20037         lt and ge.
20038         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
20039         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
20040         instead of "n" and "pz".
20041         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
20042         CC_FLAG_S.
20043
20044 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
20045
20046         PR target/47312
20047         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
20048         fma, expand FMA_EXPR as fma{,f,l} call.
20049
20050         PR lto/47274
20051         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
20052         copy them into a unsigned char variable and pass address of it to
20053         lto_output_data_stream.
20054
20055         PR target/47564
20056         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
20057         around backend_init_target and lang_dependent_init_target calls.
20058         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
20059         (verify_cgraph_node): Don't call set_cfun here.  Use
20060         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
20061         Set error_found for incorrectly represented calls to thunks.
20062
20063 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
20064
20065         PR debug/43092
20066         PR rtl-optimization/43494
20067         * rtl.h (for_each_inc_dec_fn): New type.
20068         (for_each_inc_dec): Declare.
20069         * rtlanal.c (struct for_each_inc_dec_ops): New type.
20070         (for_each_inc_dec_find_inc_dec): New fn.
20071         (for_each_inc_dec_find_mem): New fn.
20072         (for_each_inc_dec): New fn.
20073         * dse.c (struct insn_size): Remove.
20074         (replace_inc_dec, replace_inc_dec_mem): Remove.
20075         (emit_inc_dec_insn_before): New fn.
20076         (check_for_inc_dec): Use it, along with for_each_inc_dec.
20077         (canon_address): Pass mem modes to cselib_lookup.
20078         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
20079         (cselib_lookup_from_insn): Likewise.
20080         (cselib_subst_to_values): Likewise.
20081         * cselib.c (find_slot_memmode): New var.
20082         (cselib_find_slot): New fn.  Use it instead of
20083         htab_find_slot_with_hash everywhere.
20084         (entry_and_rtx_equal_p): Use find_slot_memmode.
20085         (autoinc_split): New fn.
20086         (rtx_equal_for_cselib_p): Rename and implement in terms of...
20087         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
20088         Deal with autoinc.  Special-case recursion into MEMs.
20089         (cselib_hash_rtx): Likewise.
20090         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
20091         address and MEM modes.
20092         (cselib_subst_to_values): Add memmode, pass it on.
20093         Deal with autoinc.
20094         (cselib_lookup): Add memmode argument, pass it on.
20095         (cselib_lookup_from_insn): Add memmode.
20096         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
20097         (struct cselib_record_autoinc_data): New.
20098         (cselib_record_autoinc_cb): New fn.
20099         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
20100         mode to cselib_lookup.  Reset autoinced REGs here instead of...
20101         (cselib_process_insn): ... here.
20102         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
20103         to cselib_lookup.
20104         (add_uses): Likewise, also to cselib_subst_to_values.
20105         (add_stores): Likewise.
20106         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
20107         cselib_subst_to_values.
20108         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
20109         * gcse.c (do_local_cprop): Adjusted.
20110         * postreload.c (reload_cse_simplify_set): Adjusted.
20111         (reload_cse_simplify_operands): Adjusted.
20112         * sel-sched-dump (debug_mem_addr_value): Pass mode.
20113
20114 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
20115
20116         PR tree-optimization/45122
20117         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
20118         unsafe assumptions when there's more than one loop exit.
20119
20120 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
20121
20122         PR target/47272
20123         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
20124         Document using vector double with the load/store builtins, and
20125         that the load/store builtins always use Altivec instructions.
20126
20127         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
20128         to use altivec memory instructions, even on VSX.
20129         (vector_altivec_store_<mode>): Ditto.
20130
20131         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
20132         function.
20133
20134         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20135         V2DF, V2DI support to load/store overloaded builtins.
20136
20137         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
20138         altivec load/store builtins for V2DF/V2DI types.
20139
20140         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20141         set avoid indexed addresses on power6 if -maltivec.
20142         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
20143         vector_altivec_load/vector_altivec_store builtins.
20144         (altivec_expand_st_builtin): Ditto.
20145         (altivec_expand_builtin): Add VSX memory builtins.
20146         (rs6000_init_builtins): Add V2DI types to internal types.
20147         (altivec_init_builtins): Add support for V2DF/V2DI altivec
20148         load/store builtins.
20149         (rs6000_address_for_altivec): Insure memory address is appropriate
20150         for Altivec.
20151
20152         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
20153         vec_vsx_ld and vec_vsx_st.
20154         (vsx_store_<mode>): Ditto.
20155
20156         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
20157         variables to hold long long types for VSX vector memory builtins.
20158         (RS6000_BTI_unsigned_long_long): Ditto.
20159         (long_long_integer_type_internal_node): Ditti.
20160         (long_long_unsigned_type_internal_node): Ditti.
20161
20162         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
20163         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
20164         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
20165
20166         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
20167         short cuts.
20168         (vec_vsx_st): Ditto.
20169
20170 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20171
20172         * config/pa/pa-hpux10.opt: New.
20173         * config/hpux11.opt (pthread): New Driver option.
20174         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
20175         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
20176
20177 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20178
20179         * config/ia64/vms.opt: New.
20180         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
20181
20182 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
20183
20184         PR target/47580
20185         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
20186         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
20187         generator functions.
20188         (vsx_floatuns<VSi><mode>2): Ditto.
20189         (vsx_fix_trunc<mode><VSi>2): Ditto.
20190         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
20191
20192 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
20193
20194         * config/i386/djgpp.opt (posix): New Driver option.
20195
20196 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
20197
20198         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
20199         Move to the unsupported targets list.
20200
20201 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
20202
20203         PR rtl-optimization/47525
20204         * df-scan.c: Update copyright years.
20205         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
20206         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
20207
20208 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20209
20210         * config/i386/sysv4.h (TARGET_VERSION): Remove.
20211         (SUBTARGET_RETURN_IN_MEMORY): Remove.
20212         (ASM_OUTPUT_ASCII): Remove.
20213         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
20214
20215 2011-02-02  Jeff Law  <law@redhat.com>
20216
20217         PR middle-end/47543
20218         * reload.c (find_reloads_address): Handle reg+d address where both
20219         components are invalid by reloading the entire address.
20220
20221 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
20222             Richard Guenther  <rguenther@suse.de>
20223
20224         PR tree-optimization/40979
20225         PR bootstrap/47044
20226         * passes.c (init_optimization_passes): After LIM call copy_prop
20227         and DCE to clean up.
20228         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
20229
20230 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
20231
20232         PR tree-optimization/47576
20233         PR tree-optimization/47555
20234         * doc/invoke.texi (scev-max-expr-complexity): Documented.
20235         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20236         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
20237         * tree-scalar-evolution.c (follow_ssa_edge): Use
20238         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
20239
20240 2011-02-02  Richard Guenther  <rguenther@suse.de>
20241
20242         PR tree-optimization/47566
20243         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
20244
20245 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
20246
20247         PR debug/47106
20248         PR debug/47402
20249         * tree-inline.c (declare_return_variable): Remove unused caller
20250         variable.
20251
20252         PR debug/47106
20253         PR debug/47402
20254         * tree-flow-inline.h (clear_is_used, is_used_p): New.
20255         * cfgexpand.c (account_used_vars_for_block): Use them.
20256         * tree-nrv.c (tree_nrv): Likewise.
20257         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
20258         (dump_scope_block): Likewise.
20259         (remove_unused_locals): Likewise.
20260
20261         PR debug/47106
20262         PR debug/47402
20263         * tree-inline.c (declare_return_variable): Add result decl to
20264         local decls only once.
20265         * gimple-low.c (record_vars_into): Mark newly-created variables
20266         as referenced.
20267
20268 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
20269
20270         PR debug/47498
20271         PR debug/47501
20272         PR debug/45136
20273         PR debug/45130
20274         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20275         debug insns.
20276         (no_real_insns_p, schedule_block, set_priorities): Drop special
20277         treatment of boundary debug insns.
20278         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20279         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
20280         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20281         (BOUNDARY_DEBUG_INSN_P): Likewise.
20282         (SCHEDULE_DEBUG_INSN_P): Likewise.
20283         * sched-rgn.c (init_ready_list): Drop special treatment of
20284         boundary debug insns.
20285         * final.c (rest_of_clean_state): Clear notes' BB.
20286
20287 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20288
20289         * config/openbsd.opt (assert=): New Driver option.
20290
20291 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20292
20293         * config/i386/nto.opt: New.
20294         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
20295
20296 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20297
20298         * config/i386/netware.opt: New.
20299         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
20300
20301 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20302
20303         * config/interix.opt (posix): New Driver option.
20304
20305 2011-02-01  DJ Delorie  <dj@redhat.com>
20306
20307         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
20308
20309         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
20310         class for A0/A1.
20311
20312 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
20313
20314         PR tree-optimization/47561
20315         * toplev.c (process_options): Print the Graphite flags.  Add
20316         flag_loop_flatten to the list of options requiring Graphite.
20317
20318 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20319
20320         * config/i386/cygming.opt (posix): New Driver option.
20321
20322 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20323
20324         * config/arm/vxworks.opt: New.
20325         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
20326
20327 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
20328
20329         * config/alpha/elf.opt: New.
20330         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
20331         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
20332
20333 2011-02-01  Richard Guenther  <rguenther@suse.de>
20334
20335         PR tree-optimization/47559
20336         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
20337         store-motion on references that can throw.
20338
20339 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
20340
20341         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
20342         * tree-pass.h (TDF_CSELIB): New macro.
20343         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
20344         cselib_lookup): Check for it rather than for TDF_DETAILS.
20345
20346 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
20347
20348         PR driver/47547
20349         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
20350         is HOST_BIT_BUCKET.
20351
20352         * opts.c (finish_options): Don't add x_aux_base_name if it is
20353         HOST_BIT_BUCKET.
20354
20355 2011-02-01  Richard Guenther  <rguenther@suse.de>
20356
20357         PR tree-optimization/47555
20358         Revert
20359         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
20360
20361         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20362
20363 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
20364
20365         PR gcc/46692
20366         * config/lm32/t-lm32: Add multilib for all CPU options.
20367
20368 2011-02-01  Richard Guenther  <rguenther@suse.de>
20369
20370         PR tree-optimization/47541
20371         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
20372         sure to have a field at offset zero.
20373
20374 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
20375
20376         * config/arc/arc.opt (EB, EL): New Driver options.
20377
20378 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
20379
20380         * config/alpha/osf5.opt: New.
20381         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
20382
20383 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
20384
20385         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
20386
20387 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
20388
20389         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
20390         -floop-interchange.
20391         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
20392         is an alias of -floop-interchange and that it requires the
20393         Graphite infrastructure.
20394         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
20395         flag_loop_interchange based on the value of flag_tree_loop_linear.
20396
20397 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
20398             Richard Guenther  <rguenther@suse.de>
20399
20400         PR tree-optimization/47538
20401         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
20402         type instead of r1type, except for comparisons.  For right
20403         shifts and comparisons punt if there are mismatches in
20404         sizetype vs. non-sizetype types.
20405
20406 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20407
20408         * doc/sourcebuild.texi (Effective-Target Keywords): Document
20409         avx_runtime.
20410
20411 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20412
20413         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
20414         version number.
20415         * configure: Regenerate.
20416
20417 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20418
20419         * configure.ac (gcc_cv_ld_static_option): Define.
20420         (gcc_cv_ld_dynamic_option): Define.
20421         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
20422         instead.
20423         (HAVE_LD_STATIC_DYNAMIC): Update message.
20424         (LD_STATIC_OPTION): Define.
20425         (LD_DYNAMIC_OPTION): Define.
20426         * configure: Regenerate.
20427         * config.in: Regenerate.
20428         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
20429         HAVE_LD_STATIC_DYNAMIC]: Use them.
20430
20431 2011-01-31  Nick Clifton  <nickc@redhat.com>
20432
20433         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
20434         registers inside interrupt handlers if the handler is not a leaf
20435         function.
20436
20437 2011-01-31  Nick Clifton  <nickc@redhat.com>
20438
20439         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
20440         reg_renumber returning an INVALID_REGNUM.
20441
20442 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
20443
20444         PR libgcj/44341
20445         * doc/install.texi: Document host options discarded when cross
20446         configuring target libraries.
20447
20448 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
20449
20450         Reverted:
20451         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
20452         PR debug/45136
20453         PR debug/45130
20454         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20455         debug insns.
20456         (no_real_insns_p, schedule_block, set_priorities): Drop special
20457         treatment of boundary debug insns.
20458         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20459         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
20460         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20461         (BOUNDARY_DEBUG_INSN_P): Likewise.
20462         (SCHEDULE_DEBUG_INSN_P): Likewise.
20463         * sched-rgn.c (init_ready_list): Drop special treatment of
20464         boundary debug insns.
20465         * final.c (rest_of_clean-state): Clear notes' BB.
20466
20467 2011-01-31  Alan Modra  <amodra@gmail.com>
20468
20469         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
20470         toc relative expressions as we do in print_operand_address.
20471
20472 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
20473
20474         * doc/extend.texi: Follow spelling conventions.
20475         * doc/invoke.texi: Fix a typo.
20476
20477 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
20478
20479         * config/hpux11.opt: New.
20480         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
20481         ia64*-*-hpux*): Use hpux11.opt.
20482
20483 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
20484
20485         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
20486         to tmake_file.
20487
20488 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
20489
20490         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
20491         support sites.
20492
20493 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
20494
20495         * doc/install.texi (Binaries): Remove outdated reference for
20496         Motorola 68HC11/68HC12 downloads.
20497
20498 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
20499
20500         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
20501         Drepper's paper.
20502
20503 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
20504
20505         PR bootstrap/47147
20506         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
20507         used by NetBSD.
20508
20509 2011-01-28  Ahmad Sharif  <asharif@google.com>
20510
20511         * value-prof.c (check_counter): Corrected error message.
20512
20513 2011-01-29  Jie Zhang  <jie@codesourcery.com>
20514
20515         * config/arm/arm.c (arm_legitimize_reload_address): New.
20516         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
20517         arm_legitimize_reload_address.
20518         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
20519
20520 2011-01-28  Ian Lance Taylor  <iant@google.com>
20521
20522         * godump.c (go_define): Ignore macros whose definitions include
20523         two adjacent operands.
20524
20525 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
20526
20527         PR target/42894
20528         * varasm.c (force_const_mem): Store copy of x in desc->constant
20529         instead of x itself.
20530         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
20531         itself into REG_EQUAL note.
20532
20533 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
20534
20535         * config/freebsd.opt (posix, rdynamic): New Driver options.
20536
20537 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20538
20539         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
20540         -Bstatic/-Bdynamic.
20541         * configure: Regenerate.
20542
20543 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
20544
20545         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
20546         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
20547
20548 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
20549
20550         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
20551         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
20552         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
20553         (s390_preferred_reload_class): Make static. Change return and
20554         'rclass' argument type to reg_class_t.
20555
20556 2011-01-27  Jan Hubicka  <jh@suse.cz>
20557
20558         PR middle-end/46949
20559         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
20560         (process_function_and_variable_attributes): Check defined weakrefs.
20561
20562 2011-01-27  Martin Jambor  <mjambor@suse.cz>
20563
20564         PR tree-optimization/47228
20565         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
20566         build_ref_for_offset.
20567
20568 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20569
20570         * config/spu/spu-elf.h (ASM_SPEC): Remove.
20571
20572 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
20573
20574         PR rtl-optimization/46856
20575         * postreload.c (reload_combine_recognize_const_pattern): Do not
20576         separate cc0 setter and user on cc0 targets.
20577
20578 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
20579
20580         PR c/43082
20581         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
20582         passed a VOID_TYPE expression, immediately emit an error and
20583         return error_mark_node.
20584
20585 2011-01-26  Jeff Law  <law@redhat.com>
20586
20587         PR rtl-optimization/47464
20588         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
20589         rather than may_trap_p as needed.
20590
20591 2011-01-26  DJ Delorie  <dj@redhat.com>
20592
20593         PR rtl-optimization/46878
20594         * combine.c (insn_a_feeds_b): Check for the implicit cc0
20595         setter/user dependency as well.
20596
20597 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
20598
20599         PR rtl-optimization/44469
20600         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
20601         after removing trivially dead basic blocks.
20602
20603 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20604
20605         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
20606         * config/frv/frv.h (LINK_SPEC): Likewise.
20607         * config/i386/netware.h (LINK_SPEC): Likewise.
20608         * config/m68k/linux.h (ASM_SPEC): Likewise.
20609         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
20610         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
20611         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20612         * config/sparc/linux.h (ASM_SPEC): Likewise.
20613         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20614         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20615
20616 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20617
20618         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
20619         * config/frv/frv.h (ASM_SPEC): Likewise.
20620         * config/m68k/linux.h (ASM_SPEC): Likewise.
20621         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
20622         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
20623         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20624         * config/sparc/linux.h (ASM_SPEC): Likewise.
20625         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20626         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20627
20628 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20629
20630         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
20631         * config/frv/frv.h (LINK_SPEC): Likewise.
20632         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
20633
20634 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
20635
20636         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
20637         * config/frv/frv.h (ASM_SPEC): Likewise.
20638         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
20639         * config/m68k/linux.h (ASM_SPEC): Likewise.
20640         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
20641         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
20642         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20643         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
20644         * config/sparc/linux.h (ASM_SPEC): Likewise.
20645         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20646         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20647         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
20648
20649 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
20650
20651         PR target/46997
20652         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
20653         (*mux2): Ditto.
20654         (vec_extract_evenodd_help): Ditto.
20655         (vec_extract_evenv4hi): Ditto.
20656         (vec_extract_oddv4hi): Ditto.
20657         (vec_interleave_lowv2si): Ditto.
20658         (vec_interleave_highv2si): Ditto.
20659         (vec_extract_evenv2si): Ditto.
20660         (vec_extract_oddv2si: Ditto.
20661         (vec_pack_trunc_v2si): Ditto.
20662
20663 2011-01-22  Jan Hubicka  <jh@suse.cz>
20664
20665         PR target/47237
20666         * cgraph.h (cgraph_local_info): New field can_change_signature.
20667         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
20668         signature can change.
20669         (ipcp_estimate_growth): Call sequence simplify only if calle signature
20670         can change.
20671         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
20672         (cgraph_function_versioning): We can not change signature of functions
20673         that don't allow that.
20674         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
20675         (lto_input_node): Likewise.
20676         * ipa-inline.c (compute_inline_parameters): Compute
20677         local.can_change_signature.
20678         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
20679         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
20680         functions that can not change signature.
20681         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
20682         init_cumulative_args): Do not use local calling conventions
20683         for functions that can not change signature.
20684
20685 2011-01-22  Jan Hubicka  <jh@suse.cz>
20686
20687         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
20688
20689 2011-01-26  Richard Guenther  <rguenther@suse.de>
20690
20691         PR tree-optimization/47190
20692         * cgraphunit.c (process_common_attributes): New function.
20693         (process_function_and_variable_attributes): Use it.
20694
20695 2011-01-26  Richard Guenther  <rguenther@suse.de>
20696
20697         PR lto/47423
20698         * cgraphbuild.c (record_eh_tables): Record reference to personality
20699         function.
20700
20701 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
20702
20703         PR debug/45454
20704         * sel-sched.c (moveup_expr): Don't let debug insns prevent
20705         non-debug insns from moving up.
20706
20707 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
20708
20709         PR target/40125
20710         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
20711         t-dlldir{,-x} fragment for build and add it to tmake_file.
20712         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
20713         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
20714         * config/i386/t-dlldir: New file.
20715         (SHLIB_DLLDIR): Define.
20716         * config/i386/t-dlldir-x: New file.
20717         (SHLIB_DLLDIR): Define.
20718         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
20719         (SHLIB_INSTALL): Use it.
20720
20721 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
20722
20723         PR target/47246
20724         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
20725         lower bound of the allowed Thumb-2 coprocessor load/store
20726         index range to -256. Add explaining comment.
20727
20728 2011-01-25  Ian Lance Taylor  <iant@google.com>
20729
20730         * godump.c (go_define): Improve lexing of macro expansion to only
20731         accept expressions which match Go spec.
20732
20733 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
20734
20735         PR c++/43601
20736         * tree.c (handle_dll_attribute): Handle it.
20737         * doc/extend.texi (@item dllexport): Mention it.
20738         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
20739
20740 2011-01-25  Ian Lance Taylor  <iant@google.com>
20741
20742         PR tree-optimization/26854
20743         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
20744         (decl_jump_unsafe): Move higher in file, with no other change.
20745         (bind): Set has_jump_unsafe_decl if appropriate.
20746         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
20747         (check_earlier_gotos): Likewise.
20748         (c_check_switch_jump_warnings): Likewise.
20749
20750 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
20751
20752         * doc/invoke.texi (Warning Options): Add missing hyphen.
20753         (-fprofile-dir): Minor grammatical fixes.
20754         (-fbranch-probabilities): Likewise.
20755
20756 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
20757
20758         PR debug/45136
20759         PR debug/45130
20760         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20761         debug insns.
20762         (no_real_insns_p, schedule_block, set_priorities): Drop special
20763         treatment of boundary debug insns.
20764         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20765         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
20766         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20767         (BOUNDARY_DEBUG_INSN_P): Likewise.
20768         (SCHEDULE_DEBUG_INSN_P): Likewise.
20769         * sched-rgn.c (init_ready_list): Drop special treatment of
20770         boundary debug insns.
20771         * final.c (rest_of_clean-state): Clear notes' BB.
20772
20773 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20774
20775         * Makefile.in (LAMBDA_H): Removed.
20776         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
20777         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
20778         lambda-trans.o, and tree-loop-linear.o.
20779         (lto-symtab.o): Remove dependence on LAMBDA_H.
20780         (tree-loop-linear.o): Remove rule.
20781         (lambda-mat.o): Same.
20782         (lambda-trans.o): Same.
20783         (lambda-code.o): Same.
20784         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
20785         (tree-vect-slp.o): Same.
20786         * hwint.h (gcd): Moved here.
20787         (least_common_multiple): Same.
20788         * lambda-code.c: Removed.
20789         * lambda-mat.c: Removed.
20790         * lambda-trans.c: Removed.
20791         * lambda.h: Removed.
20792         * tree-loop-linear.c: Removed.
20793         * lto-symtab.c: Do not include lambda.h.
20794         * omega.c (gcd): Removed.
20795         * passes.c (init_optimization_passes): Remove pass_linear_transform.
20796         * tree-data-ref.c (print_lambda_vector): Moved here.
20797         (lambda_vector_copy): Same.
20798         (lambda_matrix_copy): Same.
20799         (lambda_matrix_id): Same.
20800         (lambda_vector_first_nz): Same.
20801         (lambda_matrix_row_add): Same.
20802         (lambda_matrix_row_exchange): Same.
20803         (lambda_vector_mult_const): Same.
20804         (lambda_vector_negate): Same.
20805         (lambda_matrix_row_negate): Same.
20806         (lambda_vector_equal): Same.
20807         (lambda_matrix_right_hermite): Same.
20808         * tree-data-ref.h: Do not include lambda.h.
20809         (lambda_vector): Moved here.
20810         (lambda_matrix): Same.
20811         (dependence_level): Same.
20812         (lambda_transform_legal_p): Removed declaration.
20813         (lambda_collect_parameters): Same.
20814         (lambda_compute_access_matrices): Same.
20815         (lambda_vector_gcd): Same.
20816         (lambda_vector_new): Same.
20817         (lambda_vector_clear): Same.
20818         (lambda_vector_lexico_pos): Same.
20819         (lambda_vector_zerop): Same.
20820         (lambda_matrix_new): Same.
20821         * tree-flow.h (least_common_multiple): Removed declaration.
20822         * tree-parloops.c (lambda_trans_matrix): Moved here.
20823         (LTM_MATRIX): Same.
20824         (LTM_ROWSIZE): Same.
20825         (LTM_COLSIZE): Same.
20826         (LTM_DENOMINATOR): Same.
20827         (lambda_trans_matrix_new): Same.
20828         (lambda_matrix_vector_mult): Same.
20829         (lambda_transform_legal_p): Same.
20830         * tree-pass.h (pass_linear_transform): Removed declaration.
20831         * tree-ssa-loop.c (tree_linear_transform): Removed.
20832         (gate_tree_linear_transform): Removed.
20833         (pass_linear_transform): Removed.
20834         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
20835         flag_loop_interchange.
20836
20837 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
20838
20839         PR tree-optimization/47265
20840         PR tree-optimization/47443
20841         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
20842         if name still has some uses.
20843
20844 2011-01-25  Martin Jambor  <mjambor@suse.cz>
20845
20846         PR tree-optimization/47382
20847         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
20848         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
20849
20850 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
20851
20852         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
20853         sjlj_except_unwind_info.
20854
20855 2011-01-25  Richard Guenther  <rguenther@suse.de>
20856
20857         PR tree-optimization/47426
20858         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
20859         visible functions results escape.
20860
20861 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
20862
20863         PR target/45701
20864         * config/arm/arm.c (any_sibcall_uses_r3): New function.
20865         (arm_get_frame_offsets): Use it.
20866
20867 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20868             Jakub Jelinek  <jakub@redhat.com>
20869
20870         PR tree-optimization/47271
20871         * tree-if-conv.c (bb_postdominates_preds): New.
20872         (if_convertible_bb_p): Call bb_postdominates_preds.
20873         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
20874         (predicate_scalar_phi): Call bb_postdominates_preds.
20875
20876 2011-01-25  Nick Clifton  <nickc@redhat.com>
20877
20878         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
20879         * config/rx/rx.c (rx_function_value): Likewise.
20880         (rx_promote_function_mode): Likewise.
20881         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
20882         in order to make it legitimate.
20883         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
20884         make sure that the first operand is the same as the result register.
20885         (addsi3_unspec): Delete.
20886         (subdi3): Do not accept immediate operands.
20887         (subdi3_internal): Likewise.
20888
20889 2011-01-25  Jeff Law  <law@redhat.com>
20890
20891         PR rtl-optimization/37273
20892         * ira-costs.c (scan_one_insn): Detect constants living in memory and
20893         handle them like argument loads from stack slots.  Do not double
20894         count memory for memory constants and argument loads from stack slots.
20895
20896 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
20897
20898         PR tree-optimization/47427
20899         PR tree-optimization/47428
20900         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
20901         coalesce if the new root var would be TREE_READONLY.
20902
20903 2011-01-25  Richard Guenther  <rguenther@suse.de>
20904
20905         PR middle-end/47414
20906         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
20907         correct type for TBAA.
20908
20909 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20910
20911         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
20912         (close_phi_written_to_memory): Call for_each_index with
20913         dr_indices_valid_in_loop.
20914
20915 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20916
20917         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
20918         when it is initialized.
20919
20920 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20921
20922         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
20923         call to graphite_find_data_references_in_stmt.
20924         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
20925         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
20926         call to graphite_find_data_references_in_stmt.
20927         (analyze_drs_in_stmts): Same.
20928         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
20929         in which the scalar analysis of indices is performed.
20930         (create_data_ref): Same.  Update call to dr_analyze_indices.
20931         (find_data_references_in_stmt): Update call to create_data_ref.
20932         (graphite_find_data_references_in_stmt): Same.
20933         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
20934         declaration.
20935         (create_data_ref): Same.
20936         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
20937         call to create_data_ref.
20938
20939 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20940
20941         * graphite-sese-to-poly.c (build_poly_scop): Move
20942         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
20943
20944 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20945
20946         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
20947         VAR_DECL, PARM_DECL, and RESULT_DECL.
20948
20949 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20950
20951         * graphite-dependences.c (reduction_dr_1): Allow several reductions
20952         in a reduction PBB.
20953         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
20954         that have already been marked as PBB_IS_REDUCTION.
20955
20956 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20957
20958         * graphite-scop-detection.c (same_close_phi_node): New.
20959         (remove_duplicate_close_phi): New.
20960         (make_close_phi_nodes_unique): New.
20961         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
20962
20963 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20964
20965         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
20966         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
20967         of both data references to be the same.
20968
20969 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20970
20971         * graphite-dependences.c (build_lexicographical_constraint): Remove
20972         the gdim parameter.
20973         (build_lexicographical_constraint): Adjust call to
20974         ppl_powerset_is_empty.
20975         (dependence_polyhedron): Same.
20976         (graphite_legal_transform_dr): Same.
20977         (graphite_carried_dependence_level_k): Same.
20978         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
20979         parameter.
20980         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
20981
20982 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20983
20984         * graphite-sese-to-poly.c
20985         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
20986         (close_phi_written_to_memory): New.
20987         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
20988         and unshare_expr.
20989
20990 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20991
20992         * doc/install.texi: Update the expected version number of PPL to 0.11.
20993         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
20994         #if PPL_VERSION_MINOR < 11.
20995
20996 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
20997
20998         * graphite-dependences.c: Include graphite-cloog-util.h.
20999         (new_poly_ddr): Inlined into dependence_polyhedron.
21000         (free_poly_ddr): Moved close by new_poly_ddr.
21001         (dependence_polyhedron_1): Renamed dependence_polyhedron.
21002         Early return NULL when ppl_powerset_is_empty returns true.
21003         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
21004         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
21005         (graphite_legal_transform_dr): Call new_poly_ddr.
21006         (graphite_carried_dependence_level_k): Same.
21007         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
21008         (dot_transformed_deps_stmt_1): Removed.
21009         (dot_deps_stmt_1): Call dot_deps_stmt_2.
21010         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
21011         (dot_deps_1): Call dot_deps_2.
21012         * Makefile.in (graphite-dependences.o): Add missing dependence on
21013         graphite-cloog-util.h.
21014
21015 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21016
21017         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
21018         (build_lexicographical_constraint): Same.
21019         (dependence_polyhedron_1): Same.
21020         (graphite_legal_transform_dr): Same.
21021         (graphite_carried_dependence_level_k): Same.
21022         * graphite-ppl.c (ppl_powerset_is_empty): New.
21023         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
21024         * tree-data-ref.c (dump_data_reference): Print the basic block index.
21025
21026 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21027
21028         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
21029         the "a followed by b" relation and document it.
21030
21031 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21032
21033         * graphite-dependences.c (build_lexicographical_constraint): Stop the
21034         iteration when the bag of constraints is empty.
21035
21036 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21037
21038         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
21039
21040 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21041
21042         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
21043         nest and two loop depths as parameters.
21044         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
21045         lst_perfect_nestify.
21046
21047 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21048
21049         * graphite-dependences.c (print_pddr): Call
21050         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
21051
21052 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
21053
21054         * graphite-ppl.c (debug_gmp_value): New.
21055         * graphite-ppl.h (debug_gmp_value): Declared.
21056
21057 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
21058
21059         * doc/install.texi: Document availability of cloog-0.16.
21060
21061 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
21062
21063         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
21064         invalid postdominance info.
21065
21066 2011-01-24  Jan Hubicka  <jh@suse.cz>
21067
21068         PR c/21659
21069         * doc/extend.texi (weak pragma): Drop claim that it must
21070         appear before definition.
21071         * varasm.c (merge_weak, declare_weak): Only sanity check
21072         that DECL is not output at a time it is declared weak.
21073
21074 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
21075
21076         * machmode.def: Fixed comments.
21077
21078 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
21079
21080         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
21081
21082 2011-01-24  Paul Koning  <ni1d@arrl.net>
21083
21084         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
21085         WORDS_BIG_ENDIAN.
21086
21087 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
21088
21089         PR target/46519
21090         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
21091         (block_info): Add scanned and prev.
21092         (move_or_delete_vzeroupper_2): Return if the basic block
21093         has been scanned and the upper 128bit state is unchanged
21094         from the last scan.
21095         (move_or_delete_vzeroupper_1): Return true if the exit
21096         state is changed.
21097         (move_or_delete_vzeroupper): Visit basic blocks using the
21098         work-list based algorithm based on vt_find_locations in
21099         var-tracking.c.
21100
21101         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
21102
21103 2011-01-24  Nick Clifton  <nickc@redhat.com>
21104
21105         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
21106         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
21107         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
21108         then define __v850e1__.
21109         * doc/invoke.texi: Document -mv850es.
21110
21111 2011-01-24  Richard Henderson  <rth@redhat.com>
21112
21113         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
21114         compound unordered comparisons.
21115         * config/rx/rx.c (rx_split_fp_compare): Remove.
21116         * config/rx/rx-protos.h: Update.
21117         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
21118         (cbranchsf4): Don't call rx_split_fp_compare.
21119         (*cbranchsf4): Use rx_split_cbranch.
21120         (*cmpsf): Don't accept "i" constraint.
21121         (*conditional_branch): Only valid after reload.
21122         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
21123
21124 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
21125
21126         PR target/47385
21127         * config/rs6000/altivec.md (vector constant splitters): Add
21128         support for creating vector single precision constants if -mvsx is
21129         used and we would create the constant using Altivec primitives.
21130
21131 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
21132             Richard Sandiford  <rdsandiford@googlemail.com>
21133
21134         PR rtl-optimization/47166
21135         * reload1.c (emit_reload_insns): Disable the spill_reg_store
21136         mechanism for PRE_MODIFY and POST_MODIFY.
21137         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
21138         reloadreg.
21139
21140 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
21141
21142         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
21143
21144 2011-01-22  Jan Hubicka  <jh@suse.cz>
21145
21146         PR lto/47333
21147         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
21148
21149 2011-01-22  Jan Hubicka  <jh@suse.cz>
21150
21151         PR tree-optimization/43884
21152         PR lto/44334
21153         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
21154         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
21155
21156 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
21157
21158         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21159         * config/s390/s390.c (s390_register_move_cost,
21160         s390_memory_move_cost): New.
21161         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
21162
21163 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21164
21165         PR middle-end/47401
21166         * except.c (sjlj_assign_call_site_values): Move setting the
21167         crtl->uses_eh_lsda flag to ...
21168         (sjlj_mark_call_sites): ... here.
21169         (sjlj_emit_function_enter): Support NULL dispatch label.
21170         (sjlj_build_landing_pads): In a function with no landing pads
21171         that still has must-not-throw regions, generate code to register
21172         a personality function with empty LSDA.
21173
21174 2011-01-21  Richard Henderson  <rth@redhat.com>
21175
21176         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
21177
21178         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
21179
21180         * compare-elim.c: New file.
21181         * Makefile.in (OBJS-common): Add it.
21182         (compare-elim.o): New.
21183         * common.opt (fcompare-elim): New.
21184         * opts.c (default_options_table): Add OPT_fcompare_elim.
21185         * tree-pass.h (pass_compare_elim_after_reload): New.
21186         * passes.c (init_optimization_passes): Add it.
21187         * recog.h: Protect against re-inclusion.
21188         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
21189         * doc/invoke.texi (-fcompare-elim): Document it.
21190         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
21191         * doc/tm.texi: Rebuild.
21192
21193 2011-01-22  Nick Clifton  <nickc@redhat.com>
21194
21195         * config/rx/rx.md (cstoresf4): Pass comparison operator to
21196         rx_split_fp_compare.
21197
21198 2011-01-22  Nick Clifton  <nickc@redhat.com>
21199
21200         * config/rx/rx.md (UNSPEC_CONST): New.
21201         (deallocate_and_return): Wrap the amount popped off the stack in
21202         an UNSPEC_CONST in order to stop it being rejected by
21203         -mmax-constant-size.
21204         (pop_and_return): Add a "(return)" rtx.
21205         (call): Drop the immediate operand.
21206         (call_internal): Likewise.
21207         (call_value): Likewise.
21208         (call_value_internal): Likewise.
21209         (sibcall_internal): Likewise.
21210         (sibcall_value_internal): Likewise.
21211         (sibcall): Likewise.  Generate an explicit call using
21212         sibcall_internal.
21213         (sibcall_value): Likewise.
21214         (mov<>): FAIL if a constant operand is not legitimate.
21215         (addsi3_unpsec): New pattern.
21216
21217         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
21218         (ok_for_max_constant): New function.
21219         (gen_safe_add): New function.
21220         (rx_expand_prologue): Use gen_safe_add.
21221         (rx_expand_epilogue): Likewise.
21222         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
21223         UNSPEC CONSTs.
21224
21225 2011-01-21  Jeff Law  <law@redhat.com>
21226
21227         PR tree-optimization/47053
21228         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
21229         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
21230         statements are deleted.
21231         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
21232         is nonempty, then purge dead edges and cleanup the CFG.
21233
21234 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
21235
21236         PR debug/47402
21237         Temporarily revert:
21238         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
21239         PR debug/47106
21240         * tree-dfa.c (create_var_ann): Mark variable as used.
21241
21242 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
21243
21244         PR middle-end/45566
21245         * except.c (convert_to_eh_region_ranges): Emit queued no-region
21246         notes from other section in hot/cold partitioning even if
21247         last_action is -3.  Increment call_site_base.
21248
21249         PR rtl-optimization/47366
21250         * fwprop.c (forward_propagate_into): Return bool.  If
21251         any changes are made, -fnon-call-exceptions is used and
21252         REG_EH_REGION note is present, call purge_dead_edges
21253         and return true if it purged anything.
21254         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
21255         any EH edges were purged.
21256
21257 2011-01-21  Jeff Law  <law@redhat.com>
21258
21259         PR rtl-optimization/41619
21260         * caller-save.c (setup_save_areas): Break out code to determine
21261         which hard regs are live across calls by examining the reload chains
21262         so that it is always used.
21263         Eliminate code which checked REG_N_CALLS_CROSSED.
21264
21265 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
21266
21267         PR tree-optimization/47355
21268         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
21269         NOP has non-debug uses beyond PHIs in new_bb.
21270
21271 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
21272
21273         PR debug/47106
21274         * cfgexpand.c (account_used_vars_for_block): Only account vars
21275         that are annotated as used.
21276         (estimated_stack_frame_size): Don't set TREE_USED.
21277         * tree-dfa.c (create_var_ann): Mark variable as used.
21278
21279 2011-01-21  Richard Guenther  <rguenther@suse.de>
21280
21281         PR middle-end/47395
21282         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
21283
21284 2011-01-21  Richard Guenther  <rguenther@suse.de>
21285
21286         PR tree-optimization/47365
21287         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
21288         (vn_reference_lookup_pieces): Adjust.
21289         (vn_reference_lookup): Likewise.
21290         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
21291         (vn_reference_lookup_3): Only look through kills if in
21292         VN_WALKREWRITE mode.
21293         (vn_reference_lookup_pieces): Adjust.
21294         (vn_reference_lookup): Likewise.
21295         (visit_reference_op_load): Likewise.
21296         (visit_reference_op_store): Likewise.
21297         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
21298         (compute_avail): Likewise.
21299         (eliminate): Likewise.
21300
21301 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
21302
21303         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
21304         DECL_IGNORED_P non-reg vars if they are used.
21305
21306         PR tree-optimization/47391
21307         * varpool.c (const_value_known_p): Return false if
21308         decl is volatile.
21309
21310 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
21311
21312         PR bootstrap/47215
21313         * config/i386/i386.c (ix86_local_alignment): Handle
21314         case for va_list_type_node is nil.
21315         (ix86_canonical_va_list_type): Likewise.
21316
21317 2011-01-21  Alan Modra  <amodra@gmail.com>
21318
21319         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
21320         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
21321
21322 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21323
21324         * config/arm/arm.md (define_attr type): Rename f_load
21325         and f_store to f_fpa_load and f_fpa_store. Update.
21326         (write_conflict): Deal with rename fallout.
21327         (*push_fp_multi): Likewise.
21328         * config/arm/fpa.md (f_load): Use f_fpa_load.
21329         (f_store): Use f_fpa_store.
21330         (*movsf_fpa): Likewise.
21331         (*movdf_fpa): Likewise.
21332         (*movxf_fpa): Likewise.
21333         (*thumb2_movsf_fpa): Likewise.
21334         (*thumb2_movdf_fpa): Likewise.
21335         (*thumb2_movxf_fpa): Likewise.
21336         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
21337         f_loadd and f_stored.
21338         (*thumb2_movdi_vfp): Likewise.
21339         (*thumb2_movsf_vfp): Fix attribute to f_loads.
21340         (*thumb2_movsi_vfp): Likewise.
21341         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
21342         Use f_loads instead of f_load.
21343         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
21344
21345 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
21346
21347         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21348         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
21349         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21350         (xtensa_mode_dependent_address_p): New function.
21351         (constantpool_address_p): Make static. Change return type to bool.
21352         Change argument type to const_rtx. Use CONST_INT_P predicate.
21353
21354 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
21355
21356         PR debug/46583
21357         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
21358
21359 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
21360
21361         PR debug/47283
21362         * cfgexpand.c (expand_debug_expr): Instead of generating
21363         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
21364         etc. handling.
21365
21366 2011-01-20  Richard Guenther  <rguenther@suse.de>
21367
21368         PR middle-end/47370
21369         * tree-inline.c (remap_gimple_op_r): Recurse manually for
21370         the pointer operand of MEM_REFs.
21371
21372 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
21373
21374         PR tree-optimization/46130
21375         * ipa-split.c (consider_split): If return_bb contains non-virtual
21376         PHIs other than for retval or if split_function would not adjust it,
21377         refuse to split.
21378
21379 2011-01-20  Richard Guenther  <rguenther@suse.de>
21380
21381         PR tree-optimization/47167
21382         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
21383         Revert previous change, only avoid enumeral type changes.
21384
21385 2011-01-19  Mike Stump  <mikestump@comcast.net>
21386
21387         * doc/tm.texi.in (BRANCH_COST): Englishify.
21388         * doc/tm.texi (BRANCH_COST): Likewise.
21389
21390 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
21391
21392         PR c++/47291
21393         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
21394         (gen_scheduled_generic_parms_dies): New functions.
21395         (gen_struct_or_union_type_die): Schedule template parameters DIEs
21396         generation for the end of CU compilation.
21397         (dwarf2out_finish): Generate template parameters DIEs here.
21398
21399 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
21400
21401         PR debug/46240
21402         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
21403         debug bind stmt on merge edges.
21404
21405 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
21406
21407         PR debug/47079
21408         PR debug/46724
21409         * function.c (instantiate_expr): Instantiate incoming rtl of
21410         implicit arguments, and recurse on VALUE_EXPRs.
21411         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
21412         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
21413
21414 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
21415
21416         * c-parser.c (c_parser_for_statement): Initialize
21417         collection_expression.
21418
21419 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21420
21421         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
21422
21423 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21424
21425         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
21426         (LINK_SHLIB_SPEC): Don't use %(link_path).
21427         (SUBTARGET_EXTRA_SPECS): Remove link_path.
21428
21429 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21430
21431         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
21432         (NO_SHARED_LIB_SUPPORT): Remove.
21433         (LINK_SHLIB_SPEC): Remove one conditional definition.
21434
21435 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
21436
21437         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
21438         %{call_shared}.
21439         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
21440         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
21441         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
21442         %{call_shared} and conditionals on these options not being passed.
21443         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
21444         %{call_shared}.
21445
21446 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
21447
21448         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
21449         simplify.
21450
21451         * ipa-split.c: Spelling fixes.
21452
21453 2011-01-19  Richard Henderson  <rth@redhat.com>
21454
21455         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
21456         (*mulsi3): Likewise.
21457
21458         * longlong.h [__mn10300__] (count_leading_zeros): New.
21459         [__mn10300__] (umul_ppmm, smul_ppmm): New.
21460         [__mn10300__] (add_ssaaaa, subddmmss): New.
21461         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
21462         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
21463
21464 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21465
21466         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
21467
21468 2011-01-19  Richard Henderson  <rth@redhat.com>
21469
21470         * config/mn10300/mn10300.md (addsi3_flags): New.
21471         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
21472         (subsi3_flags, subc_internal, subdi3): New.
21473         (subdi3_internal, *subdi3_degenerate): New.
21474         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
21475
21476         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
21477         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
21478         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
21479         * config/mn10300/mn10300-protos.h: Update.
21480         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
21481         (return_ret): Likewise.  Rename from return_internal_regs.
21482         (return_internal): Remove.
21483
21484         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
21485         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
21486         (mn10300_legitimate_constant_p): Likewise.
21487         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
21488         (mn10300_frame_size): New.
21489         (mn10300_expand_prologue): Use it.
21490         (mn10300_expand_epilogue): Likewise.
21491         (mn10300_initial_offset): Likewise.
21492         * config/mn10300/mn10300-protos.h: Update.
21493         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
21494         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
21495         (prologue, epilogue, return_internal): Tidy output code.
21496         (mn10300_store_multiple_operation, return): Likewise.
21497         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
21498         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
21499         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
21500         (load_pic, am33_load_pic): New.
21501         (mn10300_load_pic0, mn10300_load_pic1): New.
21502
21503         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
21504         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
21505         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
21506         (cc_flags_for_mode, cc_flags_for_code): New.
21507         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
21508         overflow flag is not valid.  Validate that the flags we need
21509         for the comparison are valid.
21510         (mn10300_output_cmp): Remove.
21511         (mn10300_output_add): New.
21512         (mn10300_select_cc_mode): Use cc_flags_for_code.
21513         (mn10300_split_cbranch): New.
21514         (mn10300_match_ccmode): New.
21515         (mn10300_split_and_operand_count): New.
21516         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
21517         to the function.
21518         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
21519         (addsi3): ... here.  Use mn10300_output_add.
21520         (*addsi3_flags): New.
21521         (*am33_subsi3, *mn10300_subsi3): Merge...
21522         (subsi3): ... here.  Use attribute isa.
21523         (*subsi3_flags): New.
21524         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
21525         when possible.
21526         (*am33_andsi3, *mn10300_andsi3): Merge...
21527         (andsi3): ... here.
21528         (*andsi3_flags): New.
21529         (andsi3 splitters): New.
21530         (*am33_iorsi3, *mn10300_iorsi3): Merge...
21531         (iorsi3): ... here.
21532         (*iorsi3_flags): New.
21533         (*am33_xorsi3, *mn10300_xorsi3): Merge...
21534         (xorsi3): ... here.
21535         (*xorsi3_flags): New.
21536         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
21537         (one_cmplsi2): ... here.
21538         (*one_cmplsi2_flags): New.
21539         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
21540         instead of "dax" in constraints.  Use mn10300_split_cbranch.
21541         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
21542         use matching constraints to eliminate a self-comparison.
21543         (*integer_conditional_branch): Rename from integer_conditional_branch.
21544         Use int_mode_flags to match CC_REG.
21545         (*cbranchsi4_btst, *btstsi): New.
21546         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
21547         mn10300_split_cbranch.
21548         (*am33_cmpsf): Rename from am33_cmpsf.
21549         (*float_conditional_branch): Rename from float_conditional_branch.
21550         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
21551         (zero_extendqisi2): ... here.
21552         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
21553         (zero_extendhisi2): ... here.
21554         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
21555         (extendqisi2): ... here.
21556         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
21557         (extendhisi2): ... here.
21558         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
21559         (ashlsi3): ... here.
21560         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
21561         (lshrsi3): ... here.
21562         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
21563         (ashrsi3): ... here.
21564         (consecutive add peephole): Remove.
21565         * config/mn10300/predicates.md (label_ref_operand): New.
21566         (int_mode_flags): New.
21567         (CCZN_comparison_operator): New.
21568
21569         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
21570         (throughput_42_latency_43): New reservation.
21571         (mulsidi3, umulsidi3): New expanders.
21572         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
21573         the MDR register to allocation; separately allocate the low and
21574         high parts of the DImode result.
21575         (umulsidi3_internal): Similarly.
21576         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
21577         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
21578         (udivsi3, umodsi3): Remove.
21579         (udivmodsi4, divmodsi4): New expanders.
21580         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
21581         (*divmodsi4): Simiarly.
21582         (ext_internal): New.
21583
21584         * config/mn10300/constraints.md ("z"): New constraint.
21585         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
21586         (FIXED_REGISTERS): Don't fix MDR.
21587         (CALL_USED_REGSITERS): Reformat nicely.
21588         (REG_ALLOC_ORDER): Add MDR.
21589         (enum regclass): Add MDR_REGS.
21590         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
21591         (IRA_COVER_CLASSES): Add MDR_REGS.
21592         (REGNO_REG_CLASS): Handle MDR_REG.
21593         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
21594         (mn10300_register_move_cost): Likewise.
21595         * config/mn10300/mn10300.md (MDR_REG): New.
21596         (*movsi_internal): Handle moves to/from MDR_REGS.
21597
21598         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
21599         POST_MODIFY.
21600         (mn10300_secondary_reload): Tidy combination reload classes.
21601         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
21602         addresses for AM33.  Allow symbolic offsets for reg+imm.
21603         (mn10300_regno_in_class_p): New.
21604         (mn10300_legitimize_reload_address): New.
21605         * config/mn10300/mn10300.h (enum reg_class): Remove
21606         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
21607         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
21608         SP_OR_GENERAL_REGS.
21609         (REG_CLASS_NAMES): Update to match.
21610         (REG_CLASS_CONTENTS): Likewise.
21611         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
21612         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
21613         (REGNO_IN_RANGE_P): Remove.
21614         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
21615         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
21616         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
21617         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
21618         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
21619         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
21620         (REGNO_GENERAL_P): New.
21621         (HAVE_POST_MODIFY_DISP): New.
21622         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
21623         (LEGITIMIZE_RELOAD_ADDRESS): New.
21624         * config/mn10300/mn10300-protos.h: Update.
21625
21626         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
21627         DATA_REGS for AM33 stack-pointer destination.
21628         (mn10300_preferred_output_reload_class): Likewise.
21629         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
21630         into a form appropriate for ...
21631         (TARGET_SECONDARY_RELOAD): New.
21632         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
21633         * config/mn10300/mn10300-protos.h: Update.
21634         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
21635         reload_insi; use the "A" constraint for the scratch; handle AM33
21636         moves of sp to non-address registers.
21637
21638         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
21639         (*movqi_internal): ... here.
21640         (*am33_movhi, *mn10300_movhi): Merge into...
21641         (*movhi_internal): ... here.
21642         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
21643         as the source/destination of moves from/to SP.
21644         (movsf): Only allow for AM33-2.
21645         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
21646         any integer constant constraint.  Only allow for AM33-2.  Tidy
21647         all of the alternative outputs.
21648         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
21649         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
21650         for MN103.
21651         (udivsi3, umodsi3): New patterns for MN103 only.
21652
21653 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
21654
21655         * doc/tm.texi.in: Spell out that a lack of register class unions
21656         can lead to ICEs.
21657         * doc/tm.texi: Regenerate.
21658
21659 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
21660
21661         PR rtl-optimization/47337
21662         * dce.c (check_argument_store): New function.
21663         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
21664
21665         PR tree-optimization/47290
21666         * tree-eh.c (infinite_empty_loop_p): New function.
21667         (cleanup_empty_eh): Use it.
21668
21669 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
21670
21671         PR target/46997
21672         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
21673         (a64_expand_widen_sum): Ditto.
21674         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
21675         (vec_extract_evenodd_help): Ditto.
21676         (vec_extract_evenv4hi): Ditto.
21677         (vec_extract_oddv4hi): Ditto.
21678         (vec_extract_evenv2si): Ditto.
21679         (vec_extract_oddv2si): Ditto.
21680         (vec_extract_evenv2sf): Ditto.
21681         (vec_extract_oddv2sf): Ditto.
21682         (vec_pack_trunc_v4hi: Ditto.
21683         (vec_pack_trunc_v2si): Ditto.
21684         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
21685         (vec_interleave_highv8qi): Ditto.
21686         (mix1_r): Ditto.
21687         (vec_extract_oddv8qi): Ditto.
21688         (vec_interleave_lowv4hi): Ditto.
21689         (vec_interleave_highv4hi): Ditto.
21690         (vec_interleave_lowv2si): Ditto.
21691         (vec_interleave_highv2si): Ditto.
21692
21693 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21694
21695         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
21696         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
21697         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
21698         (pa_c_mode_for_suffix): New.
21699         (TARGET_EXPAND_BUILTIN): Define.
21700         (TARGET_C_MODE_FOR_SUFFIX): Define.
21701         (pa_builtins): Define.
21702         (pa_init_builtins): Register __float128 type and init new support
21703         builtins.
21704         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
21705         * config/pa/quadlib.c (_U_Qfcopysign): New.
21706
21707 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
21708
21709         PR middle-end/46894
21710         * explow.c (allocate_dynamic_stack_space): Do not assume more than
21711         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
21712         are defined.
21713
21714 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21715
21716         PR tree-optimization/47179
21717         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
21718         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
21719
21720 2011-01-18  Richard Guenther  <rguenther@suse.de>
21721
21722         PR rtl-optimization/47216
21723         * emit-rtl.c: Include tree-flow.h.
21724         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
21725         of replicating it with different semantics.
21726         * Makefile.in (emit-rtl.o): Adjust.
21727
21728 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21729
21730         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
21731         (cortex_a9_dp): Handle neon types correctly.
21732
21733 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
21734
21735         PR rtl-optimization/47299
21736         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
21737         subtarget.  Use normal multiplication if both operands are constants.
21738         * expmed.c (expand_widening_mult): Don't try to optimize constant
21739         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
21740         before using it.
21741
21742 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21743
21744         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
21745         spacing after 'e.g.', typos, comma, hyphenation.
21746
21747 2011-01-17  Richard Henderson  <rth@redhat.com>
21748
21749         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
21750         (rx_restricted_mem_operand): New.
21751         (rx_shift_operand): Use register_operand.
21752         (rx_source_operand, rx_compare_operand): Likewise.
21753         * config/rx/rx.md (addsi3_flags): New expander.
21754         (adddi3): Rewrite as expander.
21755         (adc_internal, *adc_flags, adddi3_internal): New patterns.
21756         (subsi3_flags): New expander.
21757         (subdi3): Rewrite as expander.
21758         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
21759
21760         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
21761         (rx_init_builtins): Remove sat builtin.
21762         (rx_expand_builtin): Likewise.
21763         * config/rx/rx.md (ssaddsi3): New.
21764         (*sat): Rename from sat.  Represent the CC_REG input.
21765
21766         * config/rx/predicates.md (rshift_operator): New.
21767         * config/rx/rx.c (rx_expand_insv): Remove.
21768         * config/rx/rx-protos.h: Update.
21769         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
21770         operand to the canonical position.
21771         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
21772         (*bitclr, *bitclr_in_memory): Similarly.
21773         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
21774         (insv): Retain the zero_extract in the expansion.
21775
21776         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
21777         (bswaphi2, bitinvert, revw): Likewise.
21778
21779         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
21780         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
21781         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
21782         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
21783         (bitset, bitset_in_memory): Likewise.
21784         (bitinvert, bitinvert_in_memory): Likewise.
21785         (bitclr, bitclr_in_memory): Likewise.
21786         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
21787         (rx_strend, rx_cmpstrn): Likewise.
21788         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
21789         (bitop peep2 patterns): Remove.
21790
21791         * config/rx/rx.c (rx_match_ccmode): New.
21792         * config/rx/rx-protos.h: Update.
21793         * config/rx/rx.md (abssi2): Clobber, don't set flags.
21794         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
21795         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
21796         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
21797         (fix_truncsfsi2, floatsisf2): Likewise.
21798         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
21799         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
21800         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
21801         (*subsi3_flags, *xorsi3_flags): New.
21802
21803         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
21804
21805         * config/rx/rx.c (rx_print_operand): Remove workaround for
21806         unsplit comparison operations.
21807
21808         * config/rx/rx.md (movsicc): Split after reload.
21809         (*movsicc): Merge *movsieq and *movsine via match_operator.
21810         (*stcc): New pattern.
21811
21812         * config/rx/rx.c (rx_float_compare_mode): Remove.
21813         * config/rx/rx.h (rx_float_compare_mode): Remove.
21814         * config/rx/rx.md (cstoresi4): Split after reload.
21815         (*sccc): New pattern.
21816
21817         * config/rx/predicates.md (label_ref_operand): New.
21818         (rx_z_comparison_operator): New.
21819         (rx_zs_comparison_operator): New.
21820         (rx_fp_comparison_operator): New.
21821         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
21822         Validate that the flags are set properly for the comparison.
21823         (rx_gen_cond_branch_template): Remove.
21824         (rx_cc_modes_compatible): Remove.
21825         (mode_from_flags): New.
21826         (flags_from_code): Rename from flags_needed_for_conditional.
21827         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
21828         (rx_select_cc_mode): Likewise.
21829         (rx_split_fp_compare): New.
21830         (rx_split_cbranch): New.
21831         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
21832         (*cbranchsi4): Use match_operator and rx_split_cbranch.
21833         (*cbranchsf4): Similarly.
21834         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
21835         match_operator and rx_split_cbranch.
21836         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
21837         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
21838         (*cmpsi): Rename from cmpsi.
21839         (*tstsi): Rename from tstsi.
21840         (*cmpsf): Rename from cmpsf; use CC_Fmode.
21841         (*conditional_branch): Rename from conditional_branch.
21842         (*reveresed_conditional_branch): Remove.
21843         (b<code>): Remove expander.
21844         * config/rx/rx-protos.h: Update.
21845
21846         * config/rx/rx.c (rx_compare_redundant): Remove.
21847         * config/rx/rx.md (cmpsi): Don't use it.
21848         * config/rx/rx-protos.h: Update.
21849
21850         * config/rx/rx-modes.def (CC_F): New mode.
21851         * config/rx/rx.c (rx_select_cc_mode): New.
21852         * config/rx/rx.h (SELECT_CC_MODE): Use it.
21853         * config/rx/rx-protos.h: Update.
21854
21855 2011-01-17  Richard Henderson  <rth@redhat.com>
21856
21857         * except.c (dump_eh_tree): Fix stray ; after for statement.
21858
21859 2011-01-17  Richard Guenther  <rguenther@suse.de>
21860
21861         PR tree-optimization/47313
21862         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
21863         handling before copying the body.  Properly deal with
21864         by-reference result in SSA form.
21865
21866 2011-01-17  Ian Lance Taylor  <iant@google.com>
21867
21868         PR target/47219
21869         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
21870         (struct_value_alias_set): Don't define.
21871         (sparc_option_override): Don't set sparc_sr_alias_set and
21872         struct_value_alias_set.
21873         (save_or_restore_regs): Use gen_frame_mem rather than calling
21874         set_mem_alias_set.
21875         (sparc_struct_value_rtx): Likewise.
21876
21877 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
21878
21879         PR target/47318
21880         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
21881         (_mm_maskstore_pd): Likewise.
21882         (_mm_maskload_ps): Likewise.
21883         (_mm_maskstore_ps): Likewise.
21884         (_mm256_maskload_pd): Change mask to __m256i.
21885         (_mm256_maskstore_pd): Likewise.
21886         (_mm256_maskload_ps): Likewise.
21887         (_mm256_maskstore_ps): Likewise.
21888
21889         * config/i386/i386-builtin-types.def: Updated.
21890         (ix86_expand_special_args_builtin): Likewise.
21891
21892         * config/i386/i386.c (bdesc_special_args): Update
21893         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
21894         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
21895         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
21896         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
21897
21898         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
21899         Use <avxpermvecmode> on mask register.
21900         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
21901
21902 2011-01-17  Olivier Hainque  <hainque@adacore.com>
21903             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
21904             Eric Botcazou  <ebotcazou@adacore.com>
21905
21906         PR target/46655
21907         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
21908         if <= USHRT_MAX in 32-bit mode.
21909
21910 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21911
21912         * doc/install.texi (Configuration, Specific): Wrap long
21913         lines in examples.  Allow line wrapping in long options
21914         and URLs where beneficial for PDF output.
21915
21916 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
21917
21918         * config/mips/mips.c (mips_classify_symbol): Don't return
21919         SYMBOL_PC_RELATIVE for nonlocal labels.
21920
21921 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
21922
21923         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
21924
21925 2011-01-15  Jan Hubicka  <jh@suse.cz>
21926
21927         PR tree-optimization/47276
21928         * ipa.c (function_and_variable_visibility): Do not try to mark alias
21929         declarations as needed.
21930
21931 2011-01-15  Martin Jambor  <mjambor@suse.cz>
21932
21933         * common.opt (fdevirtualize): New flag.
21934         * doc/invoke.texi (Option Summary): Document it.
21935         * opts.c (default_options_table): Add devirtualize flag.
21936         * ipa-prop.c (detect_type_change): Return immediately if
21937         devirtualize flag is not set.
21938         (detect_type_change_ssa): Likewise.
21939         (compute_known_type_jump_func): Likewise.
21940         (ipa_analyze_virtual_call_uses): Likewise.
21941
21942 2011-01-14  Martin Jambor  <mjambor@suse.cz>
21943
21944         PR tree-optimization/45934
21945         PR tree-optimization/46302
21946         * ipa-prop.c (type_change_info): New type.
21947         (stmt_may_be_vtbl_ptr_store): New function.
21948         (check_stmt_for_type_change): Likewise.
21949         (detect_type_change): Likewise.
21950         (detect_type_change_ssa): Likewise.
21951         (compute_complex_assign_jump_func): Check for dynamic type change.
21952         (compute_complex_ancestor_jump_func): Likewise.
21953         (compute_known_type_jump_func): Likewise.
21954         (compute_scalar_jump_functions): Likewise.
21955         (ipa_analyze_virtual_call_uses): Likewise.
21956         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
21957
21958 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
21959
21960         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
21961         * config/i386/i386.opt (msse5): New Alias.
21962
21963 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
21964
21965         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
21966         * config/sparc/linux64.h (CC1_SPEC): Likewise.
21967         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
21968         * config/sparc/sparc.h (CC1_SPEC): Likewise.
21969
21970 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
21971
21972         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
21973         -mcpu options.
21974         * config/sparc/linux64.h (CC1_SPEC): Likewise.
21975         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
21976         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
21977         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
21978         Likewise.
21979         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
21980
21981 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
21982
21983         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
21984
21985 2011-01-14  Mike Stump  <mikestump@comcast.net>
21986
21987         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
21988         * config/fr30/fr30.md: Likweise
21989         (movsi_push): Likewise.
21990         (movsi_pop): Likewise.
21991         (enter_func): Likewise.
21992         * config/moxie/moxie.md (movsi_push): Likewise.
21993         (movsi_pop): Likewise.
21994
21995 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
21996
21997         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
21998         %{no_archive} %{exact_version}.
21999         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
22000         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
22001         %{no_archive} %{exact_version}.
22002         * config/mips/openbsd.h (LINK_SPEC): Likewise.
22003         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
22004         * config/mips/vxworks.h: Likewise.
22005
22006 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22007
22008         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
22009
22010 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22011
22012         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
22013         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
22014
22015 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22016
22017         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
22018         -nodefaultlib.
22019
22020 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22021
22022         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
22023         for mcpu not cpu.
22024         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
22025         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
22026         not cpu.
22027         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
22028         Don't handle -shlib.
22029
22030 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22031
22032         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
22033         (CC1_SPEC): Don't handle -profile.
22034
22035 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22036
22037         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
22038         * config/mips/mips.h (CC1_SPEC): Likewise.
22039
22040 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22041
22042         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
22043         * config/mips/mips.h (CC1_SPEC): Likewise.
22044
22045 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22046
22047         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
22048         * config/m32r/linux.h (LINK_SPEC): Likewise.
22049         * config/mips/linux.h (LINK_SPEC): Likewise.
22050         * config/mips/linux64.h (LINK_SPEC): Likewise.
22051         * config/sparc/linux.h (LINK_SPEC): Likewise.
22052         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
22053         LINK_SPEC): Likewise.
22054         * config/xtensa/linux.h (LINK_SPEC): Likewise.
22055
22056 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22057
22058         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
22059         %{version:-v}.
22060         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
22061
22062 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22063
22064         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
22065         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22066
22067 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
22068
22069         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
22070
22071 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22072
22073         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
22074         supports -Bstatic/-Bdynamic.
22075         * configure: Regenerate.
22076
22077 2011-01-14  Jan Hubicka  <jh@suse.cz>
22078             Jack Howarth  <howarth@bromo.med.uc.edu>
22079
22080         PR target/46037
22081         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
22082         when checking debug_info_level. Test write_symbols instead of
22083         debug_hooks->var_location when setting flag_var_tracking_uninit.
22084
22085 2011-01-14  Richard Guenther  <rguenther@suse.de>
22086
22087         PR tree-optimization/47179
22088         * target.def (ref_may_alias_errno): New target hook.
22089         * targhooks.h (default_ref_may_alias_errno): Declare.
22090         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
22091         (default_ref_may_alias_errno): New function.
22092         * target.h (struct ao_ref_s): Declare.
22093         * tree-ssa-alias.c: Include target.h.
22094         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
22095         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
22096         (targhooks.o): Likewise.
22097         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
22098         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
22099
22100 2011-01-14  Richard Guenther  <rguenther@suse.de>
22101
22102         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
22103
22104 2011-01-14  Richard Guenther  <rguenther@suse.de>
22105
22106         PR tree-optimization/47280
22107         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
22108         return CFG changes.
22109         (tree_ssa_forward_propagate_single_use_vars): Deal with
22110         CFG changes from associate_plusminus.
22111
22112 2011-01-14  Richard Guenther  <rguenther@suse.de>
22113
22114         PR middle-end/47281
22115         Revert
22116         2011-01-11  Richard Guenther  <rguenther@suse.de>
22117
22118         PR tree-optimization/46076
22119         * tree-ssa.c (useless_type_conversion_p): Conversions from
22120         unprototyped to empty argument list function types are useless.
22121
22122 2011-01-14  Richard Guenther  <rguenther@suse.de>
22123
22124         PR tree-optimization/47286
22125         * tree-ssa-structalias.c (new_var_info): Register variables are global.
22126
22127 2011-01-14  Martin Jambor  <mjambor@suse.cz>
22128
22129         PR middle-end/46823
22130         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
22131
22132 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
22133
22134         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
22135         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22136         * config/xtensa/xtensa.c (xtensa_libcall_value,
22137         xtensa_function_value_regno_p): New functions.
22138         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22139
22140 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
22141
22142         PR c++/47213
22143         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
22144         PE specific hook.
22145         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
22146         New function prototype.
22147         * config/i386/winnt.c (i386_pe_assemble_visibility):
22148         Warn only if attribute was specified by user.
22149
22150 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
22151
22152         PR target/47251
22153         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
22154         floating point.
22155         (floatunsdidf2_fcfidu): Ditto.
22156
22157 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22158
22159         * config/s390/s390.c (print_operand_address): Replace 'error' with
22160         'output_operand_lossage'.
22161         (print_operand): Likewise.
22162
22163 2011-01-13  Jeff Law  <law@redhat.com>
22164
22165         PR rtl-optimization/39077
22166         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
22167         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
22168         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
22169         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
22170         * gcse.c (prune_insertions_deletions): New function.
22171         (compute_pre_data): Use it.
22172
22173 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
22174
22175         PR debug/PR46973
22176         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
22177         static function.
22178         (prune_unused_types_mark): Use it.
22179
22180 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
22181
22182         PR rtl-optimization/45352
22183         * sel-sched.c: Update copyright years.
22184         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
22185         in the advancing loop when we have issued issue_rate insns.
22186
22187 2011-01-12  Richard Henderson  <rth@redhat.com>
22188
22189         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
22190         (TARGET_MD_ASM_CLOBBERS): New.
22191
22192         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
22193         (TARGET_DELEGITIMIZE_ADDRESS): New.
22194
22195         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
22196         (clzsi2, *bsch): New patterns.
22197
22198         * config/mn10300/mn10300.md (INT): New mode iterator.
22199         (*mov<INT>_clr): New pattern, and peep2 to generate it.
22200
22201         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
22202         flag_split_wide_types.
22203
22204         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
22205         (mn10300_trampoline_init): Rewrite without a template, an immediate
22206         load and a direct branch.
22207         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
22208
22209 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
22210
22211         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22212         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
22213         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
22214         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22215
22216 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
22217
22218         PR debug/47209
22219         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
22220         of type.
22221
22222 2011-01-12  Jan Hubicka  <jh@suse.cz>
22223
22224         PR driver/47244
22225         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
22226         (PLUGIN_COND_CLOSE): New macro.
22227         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
22228
22229 2011-01-12  Richard Guenther  <rguenther@suse.de>
22230
22231         PR lto/47259
22232         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
22233         register variables in a MEM_REF.
22234
22235 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
22236
22237         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
22238         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
22239         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
22240         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
22241         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
22242         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
22243         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
22244         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
22245         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
22246         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
22247         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
22248         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
22249         * config/gnu-user.h: New.  Copied from linux.h.
22250         (LINUX_TARGET_STARTFILE_SPEC): Rename to
22251         GNU_USER_TARGET_STARTFILE_SPEC.
22252         (LINUX_TARGET_ENDFILE_SPEC): Rename to
22253         GNU_USER_TARGET_ENDFILE_SPEC.
22254         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
22255         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
22256         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
22257         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
22258         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
22259         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
22260         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
22261         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
22262         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
22263         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
22264         * config/arm/linux-eabi.h (CC1_SPEC): Use
22265         GNU_USER_TARGET_CC1_SPEC.
22266         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
22267         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
22268         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
22269         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
22270         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
22271         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
22272         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
22273         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
22274
22275 2011-01-12  Richard Guenther  <rguenther@suse.de>
22276
22277         PR other/46946
22278         * doc/invoke.texi (ffast-math): Document it is turned on
22279         with -Ofast.
22280
22281 2011-01-12  Jan Hubicka  <jh@suse.cz>
22282
22283         PR tree-optimization/47233
22284         * opts.c (common_handle_option): Disable ipa-reference with profile
22285         feedback.
22286
22287 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
22288
22289         * c-parser.c (c_parser_objc_at_property_declaration): Improved
22290         error message.
22291
22292 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
22293
22294         * c-parser.c (c_lex_one_token): Updated and reindented some
22295         comments.  No changes in code.
22296
22297 2011-01-11  Ian Lance Taylor  <iant@google.com>
22298
22299         * godump.c (go_output_var): Don't output the variable if there is
22300         already a type with the same name.
22301
22302 2011-01-11  Ian Lance Taylor  <iant@google.com>
22303
22304         * godump.c (go_format_type): Don't generate float80.
22305
22306 2011-01-11  Richard Henderson  <rth@redhat.com>
22307
22308         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
22309         declaration.  Rewrite for both speed and size.
22310         (mn10300_address_cost_1): Remove.
22311         (mn10300_register_move_cost): New.
22312         (mn10300_memory_move_cost): New.
22313         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
22314         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
22315         extensions, shifts, BSWAP, CLZ.
22316         (mn10300_wide_const_load_uses_clr): Remove.
22317         (TARGET_REGISTER_MOVE_COST): New.
22318         (TARGET_MEMORY_MOVE_COST): New.
22319         * config/mn10300/mn10300-protos.h: Update.
22320         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
22321
22322         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
22323         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
22324         * config/mn10300/mn10300-protos.h: Update.
22325         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
22326         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
22327         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
22328         (*test_int_bitfield, *test_byte_bitfield): Remove.
22329         (*bit_test, *subreg_bit_test): Remove.
22330         * config/mn10300/predicates.md (const_8bit_operand): Remove.
22331
22332         * config/mn10300/constraints.md ("c"): Rename from "A".
22333         ("A", "D"): New constraint letters.
22334         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
22335         (fmssf4, fnmasf4, fnmssf4): Likewise.
22336
22337         * config/mn10300/mn10300.md (isa): New attribute.
22338         (enabled): New attribute.
22339
22340         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
22341         (abssf2, negsf2): Define only for hardware fp.
22342         (sqrtsf2): Reformat.
22343         (addsf3, subsf3, mulsf3): Merge expander and insn.
22344
22345         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
22346         (DEBUGGER_AUTO_OFFSET): Remove.
22347         (DEBUGGER_ARG_OFFSET): Remove.
22348
22349         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
22350         Emit register stores with the same offsets as the hardware.
22351         (mn10300_store_multiple_operation): Don't check that the register
22352         save offsets are monotonic.
22353         * config/mn10300/mn10300-protos.h: Update.
22354
22355         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
22356
22357         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
22358         in terms of the value on the stack, not the MDR register.
22359
22360 2011-01-11  Jan Hubicka  <jh@suse.cz>
22361
22362         PR lto/45721
22363         PR lto/45375
22364         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
22365         (symbol_alias_set_destroy, symbol_alias_set_contains,
22366         propagate_aliases_backward): Declare.
22367         * lto-streamer-out.c (struct sets): New sturcture.
22368         (trivally_defined_alias): New function.
22369         (output_alias_pair_p): Rewrite.
22370         (output_unreferenced_globals): Fix output of alias pairs.
22371         (produce_symtab): Likewise.
22372         * ipa.c (function_and_variable_visibility): Set weak alias destination
22373         as needed in lto.
22374         * varasm.c (symbol_alias_set_t): Remove.
22375         (symbol_alias_set_destroy): Export.
22376         (propagate_aliases_forward, propagate_aliases_backward): New functions
22377         based on ...
22378         (compute_visible_aliases): ... this one; remove.
22379         (trivially_visible_alias): New
22380         (trivially_defined_alias): New.
22381         (remove_unreachable_alias_pairs): Rewrite.
22382         (finish_aliases_1): Reorganize code checking if alias is defined.
22383         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
22384         in LTO mode.
22385
22386 2011-01-11  Richard Guenther  <rguenther@suse.de>
22387
22388         PR tree-optimization/46076
22389         * tree-ssa.c (useless_type_conversion_p): Conversions from
22390         unprototyped to empty argument list function types are useless.
22391
22392 2011-01-11  Richard Guenther  <rguenther@suse.de>
22393
22394         PR middle-end/45235
22395         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
22396         volatile MEMs as MEM_READONLY_P.
22397
22398 2011-01-11  Richard Guenther  <rguenther@suse.de>
22399
22400         PR tree-optimization/47239
22401         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
22402
22403 2011-01-11  Jeff Law  <law@redhat.com>
22404
22405         PR tree-optimization/47086
22406         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
22407         IVs from statements that might throw.
22408
22409 2011-01-10  Jan Hubicka  <jh@suse.cz>
22410
22411         PR lto/45375
22412         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
22413
22414 2011-01-10  Jan Hubicka  <jh@suse.cz>
22415
22416         PR lto/45375
22417         * profile.c (read_profile_edge_counts): Ignore profile inconistency
22418         when correcting profile.
22419
22420 2011-01-10  Jan Hubicka  <jh@suse.cz>
22421
22422         PR lto/46083
22423         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
22424         DECL_FINI_PRIORITY.
22425         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
22426         Restore DECL_FINI_PRIORITY.
22427
22428 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22429
22430         * doc/gimple.texi: Fix quoting of multi-word return values in
22431         @deftypefn statements.  Ensure presence of return value.  Wrap
22432         overlong @deftypefn lines.
22433         (is_gimple_operand, is_gimple_min_invariant_address): Remove
22434         descriptions of removed functions.
22435         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
22436         of multi-word return value in @deftypefn statement.
22437
22438 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22439
22440         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
22441         (Conditional Expressions, Logical Operators)
22442         (Statement and operand traversals): Do not indent smallexample
22443         code.  Fix duplicate function argument in example.
22444
22445 2011-01-10  Jeff Law  <law@redhat.com>
22446
22447         PR tree-optimization/47141
22448         * ipa-split.c (split_function): Handle case where we are
22449         returning a value and the return block has a virtual operand phi.
22450
22451 2011-01-10  Jan Hubicka  <jh@suse.cz>
22452
22453         PR tree-optimization/47234
22454         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
22455         (pass_feedback_split_functions): Declare.
22456         * passes.c (init_optimization_passes): Add ipa-split as subpass of
22457         tree-profile.
22458         * ipa-split.c (gate_split_functions): Update comments; disable
22459         split-functions for profile_arc_flag and branch_probabilities.
22460         (gate_feedback_split_functions): New function.
22461         (execute_feedback_split_functions): New function.
22462         (pass_feedback_split_functions): New global var.
22463
22464 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
22465
22466         PR lto/46760
22467         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
22468         calling gimple_call_set_cannot_inline.
22469
22470 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
22471
22472         * config/darwin-sections.def: Remove unused section.
22473
22474 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
22475
22476         PR c++/47218
22477         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
22478
22479 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
22480
22481         PR objc/47232
22482         * c-parser.c (c_parser_declaration_or_fndef): Improved
22483         error message.
22484
22485 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
22486
22487         * config/i386/winnt.c (i386_pe_start_function): Make sure
22488         to switch back to function's section.
22489
22490 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
22491
22492         PR gcc/46902
22493         PR testsuite/46912
22494         * plugin.c: Move include of dlfcn.h from here...
22495         * system.h: ... to here.
22496
22497 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22498
22499         * doc/cpp.texi (C++ Named Operators): Fix markup for header
22500         file name.
22501         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
22502         two extra empty pages in PDF output.
22503
22504 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
22505
22506         PR objc/47078
22507         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
22508         for error recovery purposes behave as if it was not specified so
22509         that the default type is usd.
22510
22511 2011-01-07  Jan Hubicka  <jh@suse.cz>
22512
22513         PR tree-optmization/46469
22514         * ipa.c (function_and_variable_visibility): Clear needed flags on
22515         nodes with external decls; handle weakrefs merging correctly.
22516
22517 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
22518
22519         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
22520         not false.
22521
22522 2011-01-07  Jan Hubicka  <jh@suse.cz>
22523
22524         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
22525         and no longer claim that gold is required for linker plugin.
22526         * configure: Regenerate.
22527         * gcc.c (PLUGIN_COND): New macro.
22528         (LINK_COMMAND_SPEC): Use it.
22529         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
22530         * config.in (HAVE_LTO_PLUGIN): New.
22531         * configure.ac (--with-lto-plugin): New parameter; autodetect
22532         HAVE_LTO_PLUGIN.
22533
22534 2011-01-07  Jan Hubicka  <jh@suse.cz>
22535
22536         PR tree-optimization/46367
22537         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
22538         when we can update original.
22539         (cgraph_mark_inline_edge): Sanity check.
22540         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
22541
22542 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22543
22544         * config/spu/spu.h (ASM_COMMENT_START): Define.
22545
22546 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
22547
22548         PR driver/42445
22549         * gcc.c (%>S): New.
22550         (SWITCH_KEEP_FOR_GCC): Likewise.
22551         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
22552         (do_spec_1): Handle "%>".
22553
22554         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
22555
22556 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
22557
22558         PR target/47201
22559         * config/i386/i386.c (ix86_delegitimize_address): If
22560         simplify_gen_subreg fails, return orig_x.
22561
22562         PR bootstrap/47187
22563         * value-prof.c (gimple_stringop_fixed_value): Handle
22564         lhs of the call properly.
22565
22566 2011-01-07  Jan Hubicka  <jh@suse.cz>
22567
22568         PR lto/45375
22569         * lto-opt.c (lto_reissue_options): Set flag_shlib.
22570
22571 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
22572
22573         * target.def (function_switched_text_sections): New hook.
22574         * doc/tm.texi: Regenerated.
22575         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
22576         * final.c (default_function_switched_text_sections): New.
22577         (final_scan_insn): Call function_switched_text_sections when a
22578         mid-function section change occurs.
22579         * output.h (default_function_switched_text_sections): Declare.
22580         * config/darwin-protos.h (darwin_function_switched_text_sections):
22581         Likewise.
22582         * config/darwin.c (darwin_function_switched_text_sections): New.
22583         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
22584
22585 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
22586
22587         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
22588         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
22589         the secondary code fragment when outputting for DWARF == 2.
22590
22591 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
22592
22593         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22594         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
22595         Remove.
22596         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
22597         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22598
22599 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
22600
22601         PR debug/46704
22602         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
22603         when it is not empty.
22604
22605 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
22606
22607         Bobcat Enablement
22608         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
22609         (case ${target}): Add btver1.
22610         * config/i386/driver-i386.c (host_detect_local_cpu): Let
22611         -march=native recognize btver1 processors.
22612         * config/i386/i386-c.c (ix86_target_macros_internal): Add
22613         btver1 def_and_undef
22614         * config/i386/i386.c (struct processor_costs btver1_cost): New
22615         btver1 cost table.
22616         (m_BTVER1): New definition.
22617         (m_AMD_MULTIPLE): Includes m_BTVER1.
22618         (initial_ix86_tune_features): Add btver1 tune.
22619         (processor_target_table): Add btver1 entry.
22620         (static const char *const cpu_names): Add btver1 entry.
22621         (software_prefetching_beneficial_p): Add btver1.
22622         (ix86_option_override_internal): Add btver1 instruction sets.
22623         (ix86_issue_rate): Add btver1.
22624         (ix86_adjust_cost): Add btver1.
22625         * config/i386/i386.h (TARGET_BTVER1): New definition.
22626         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
22627         (enum processor_type): Add PROCESSOR_BTVER1.
22628         * config/i386/i386.md (define_attr "cpu"): Add btver1.
22629
22630 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22631
22632         PR target/43309
22633         * config/i386/i386.c (legitimize_tls_address)
22634         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
22635         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
22636         (tls_initial_exec_64_sun): New pattern.
22637
22638 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
22639
22640         * doc/invoke.texi (Overall Options): Improve wording and markup
22641         of the description of -wrapper.
22642
22643 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
22644
22645         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
22646         rdynamic, threads): New Driver options.
22647
22648 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22649
22650         PR target/38118
22651         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
22652         if coming from .tdata.
22653         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
22654
22655 2011-01-06  Jan Hubicka  <jh@suse.cz>
22656
22657         PR lto/47188
22658         * collect2.c (main): Do not enable LTOmode when plugin is active.
22659
22660 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22661
22662         PR other/45915
22663         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
22664         --version output if supported.
22665         * configure: Regenerate.
22666
22667 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
22668
22669         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
22670         Driver options.
22671
22672 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
22673
22674         PR c/47150
22675         * c-convert.c (convert): When converting a complex expression
22676         other than COMPLEX_EXPR to a different complex type, ensure
22677         c_save_expr is called instead of save_expr, unless in_late_binary_op.
22678         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
22679         when converting COMPLEX_TYPE.
22680
22681 2011-01-06  Ira Rosen  <irar@il.ibm.com>
22682
22683         PR tree-optimization/47139
22684         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
22685         only the last reduction value is used outside the loop.  Update
22686         documentation.
22687
22688 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
22689
22690         * config/rtems.opt: New.
22691         * config.gcc (*-*-rtems*): Use rtems.opt.
22692
22693 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
22694
22695         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
22696         processors do not support 3DNow instructions.
22697
22698 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22699
22700         * config/spu/spu.c (spu_option_override): Set parameter
22701         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
22702
22703 2011-01-05  Jan Hubicka  <jh@suse.cz>
22704
22705         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
22706         at the command line.
22707
22708 2011-01-05  Martin Jambor  <mjambor@suse.cz>
22709
22710         PR lto/47162
22711         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
22712         deltas on streamed outgoing edges.
22713         (output_node_opt_summary): Output info for outgoing edges only when
22714         the node is in new parameter set.
22715         (output_cgraph_opt_summary): New parameter set, passed to the two
22716         aforementioned functions.  Update its forward declaration and its
22717         callee too.
22718
22719 2011-01-05  Tom Tromey  <tromey@redhat.com>
22720
22721         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
22722         operator to c_finish_omp_atomic.
22723         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
22724         (build_unary_op): Update.
22725         (build_modify_expr): Update.
22726         (build_asm_expr): Update.
22727
22728 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22729
22730         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
22731         newly inserted insns.
22732         (pad_bb): Likewise.
22733         (spu_emit_branch_hint): Likewise.
22734         (insert_hbrp_for_ilb_runout): Likewise.
22735         (spu_machine_dependent_reorg): Call df_finish_pass after
22736         schedule_insns returns.
22737
22738 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22739
22740         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
22741
22742 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22743
22744         PR tree-optimization/47005
22745         * tree-sra.c (struct access): Add 'non_addressable' bit.
22746         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
22747         (decide_one_param_reduction): Return 0 if the parameter is passed by
22748         reference and one of the accesses in the group is non_addressable.
22749
22750 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
22751
22752         PR tree-optimization/47056
22753         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
22754         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
22755         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
22756
22757 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
22758
22759         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
22760         initializer.  Skip view conversions from aggregate types.
22761
22762 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
22763
22764         PR bootstrap/47055
22765         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
22766
22767 2011-01-04  Philipp Thomas  <pth@suse.de>
22768
22769         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
22770         obvious typo.
22771
22772 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22773
22774         * function.c (thread_prologue_and_epilogue_insns): Do not crash
22775         on empty epilogue sequences.
22776
22777 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
22778
22779         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
22780         non-static): New Driver options.
22781
22782 2011-01-04  Jie Zhang  <jie@codesourcery.com>
22783
22784         PR driver/47137
22785         * gcc.c (default_compilers[]): Set combinable field to 0
22786         for all assembly languages.
22787
22788 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
22789
22790         * config/mips/loongson3a.md: New file.
22791         * config/mips/mips.md: Include loongson3a.md.
22792         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
22793         TUNE_LOONGSON_3A.
22794
22795 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
22796
22797         PR middle-end/47017
22798         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
22799         instead of convert_memory_address_addr_space on the base expression.
22800
22801 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22802
22803         * config/spu/spu.c (spu_option_override): Update error text
22804         for bad -march= / -mtune= values.
22805
22806 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22807
22808         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
22809         if branch-hint optimization will be performed.
22810
22811 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
22812
22813         PR tree-optimization/47148
22814         * ipa-split.c (split_function): Convert arguments to
22815         DECL_ARG_TYPE if possible.
22816
22817         PR tree-optimization/47155
22818         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
22819         when computing uns.
22820
22821         PR rtl-optimization/47157
22822         * combine.c (try_combine): If undobuf.other_insn becomes
22823         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
22824         and set *new_direct_jump_p too.
22825
22826 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
22827
22828         PR tree-optimization/47021
22829         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
22830
22831 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
22832
22833         * gcc.c (process_command): Update copyright notice dates.
22834         * gcov.c (print_version): Likewise.
22835         * gcov-dump.c (print_version): Likewise.
22836         * mips-tfile.c (main): Likewise.
22837         * mips-tdump.c (main): Likewise.
22838
22839 2011-01-03  Martin Jambor  <mjambor@suse.cz>
22840
22841         PR tree-optimization/46801
22842         * tree-sra.c (type_internals_preclude_sra_p): Check whether
22843         aggregate fields start at byte boundary instead of the bit-field flag.
22844
22845 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
22846
22847         PR driver/47137
22848         * gcc.c (main): Revert revision 168407.
22849
22850 2011-01-03  Martin Jambor  <mjambor@suse.cz>
22851
22852         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
22853
22854 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22855
22856         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
22857         vector optab to expand vector/scalar shift, update gimple to vector.
22858
22859 2011-01-03  Martin Jambor  <mjambor@suse.cz>
22860
22861         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
22862         a thunk.
22863
22864 2011-01-03  Martin Jambor  <mjambor@suse.cz>
22865
22866         PR tree-optimization/46984
22867         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
22868         HOST_WIDE_INT.
22869         (cgraph_create_indirect_edge): Fixed line length.
22870         (cgraph_indirect_call_info): Declare.
22871         (cgraph_make_edge_direct) Update declaration.
22872         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
22873         (cgraph_create_indirect_edge): Use it.
22874         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
22875         callees.
22876         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
22877         the new thunk_delta representation.
22878         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
22879         HOST_WIDE_INT.
22880         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
22881         (ipa_read_indirect_edge_info): Likewise.
22882         * lto-cgraph.c (output_edge_opt_summary): New function.
22883         (output_node_opt_summary): Call it on all outgoing edges.
22884         (input_edge_opt_summary): New function.
22885         (input_node_opt_summary): Call it on all outgoing edges.
22886
22887 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
22888
22889         PR driver/47137
22890         * gcc.c (main): Don't check have_o when settting combine_inputs.
22891
22892 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
22893
22894         * regrename.c: Add general comment describing the pass.
22895         (struct du_head): Remove 'length' field.
22896         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
22897         (regrename_optimize): Do not sort chains.  Rework comments, add others.
22898         Force renaming to the preferred class (if any) in the first pass and do
22899         not consider registers that belong to it in the second pass.
22900         (create_new_chain): Do not set 'length' field.
22901         (scan_rtx_reg): Likewise.
22902
22903 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
22904
22905         PR tree-optimization/47140
22906         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
22907         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
22908         to bit_value_binop.
22909
22910         PR rtl-optimization/47028
22911         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
22912         parm_birth_insn instead of at the beginning of first bb.
22913
22914 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
22915
22916         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
22917         Remove the word "see" before "@pxref".
22918         * doc/rtl.texi: Remove the word "see" before "@pxref".
22919
22920 2011-01-01  Jan Hubicka  <jh@suse.cz>
22921
22922         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
22923         memory.
22924
22925 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
22926
22927         PR target/38662
22928         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
22929
22930 \f
22931 Copyright (C) 2011 Free Software Foundation, Inc.
22932
22933 Copying and distribution of this file, with or without modification,
22934 are permitted in any medium without royalty provided the copyright
22935 notice and this notice are preserved.